U4-5667 - Examine Dashboard not rebuilding on distributed called servers

Created by Neil Tootell 20 Oct 2014, 11:58:46 Updated by Jeavon Leopold 22 Jun 2017, 17:53:53

Is duplicated by: U4-9350

Setup: On a load balanced environment with individual examine indexes for each node with one primary admin node. Problem: Using the Examine Dashboard to Optimise/Rebuild an index only affects the local node for the current Umbraco instance server and doesn't propagate across the distributed call list. But if actions are performed in the regular content tree, the Examine indexes across the distributed call list DO get updated. So there seems to be something missing in the Examine Dashboard that ties into the distributed call list.

Comments

Nicholas Westby 29 Oct 2015, 16:38:08

I would actually prefer it not use distributed calls for full Examine indexes initiated via the Examine dashboard. The reason being that it consumes a lot of resources (sometimes for several minutes), and I'd rather not have that occur on every server at once. Perhaps a checkbox for each operation would be useful (e.g., "Apply operation to distributed servers?").


Neil Tootell 29 Oct 2015, 17:17:36

Hi Nic - I agree, choosing whether or not to distribute call the updated indexes would be very useful.


Jeavon Leopold 15 Apr 2016, 18:55:47

@Shandem do you think this is going to be rescheduled soon? If not, I'll create a little dashboard package to do it...


Phil Dye 02 May 2017, 14:51:24

Any progress on this?

Looks like U4-7617, U4-9350 & U4-9572 are dupes of the same root issue


Pete Duncanson 02 May 2017, 16:01:10

How time flies, I've closed my case as it is as dupe as @phil.dye says. However I think this can easily be fixed by just changing the refresher to ping an entry into the Content Notification table (the same that gets used for publishing content on other nodes) and have the examine refresh code trigger when its sees that notification. Should be a straight forward one I'd hope.


Jeavon Leopold 24 May 2017, 15:24:46

A year has passed so I'm going to create a package for this :) I'm planning to use Redis Cache as a way of communicating between each server but may add a option to use a DB table for those that don't have Redis later.


Shannon Deminick 24 May 2017, 15:28:18

But all this really needs is some cache refresh instructions written, the same as how examine keeps everything else up to date.


Pete Duncanson 24 May 2017, 16:34:02

@Shandem write a few points of what the instructions are and roughly where they should go and maybe someone will crack on with it?

As it is its like Sean said in The Rock... "the plans are in my head" ;)


Jeavon Leopold 24 May 2017, 16:38:59

@Shandem yeah, it would be easy to do to rebuild indexes with cache refreshers but right now I really need to be able to access data from each server via the dashboard to see what state the indexes are in and how many records are in each one.

But thinking again, the Examine Blob storage solution you've been working would remove the need for this entirely...


Jeavon Leopold 02 Jun 2017, 16:21:18

FYI, I have pushed up code using cache refreshers for a simple dashboard to allows the rebuilding of a specific index on a specific server so that if a Index has become corrupt you can issue a rebuild request. It's not polished at all but it works https://github.com/CrumpledDog/ExamineDistributedDashboard

I will think about if this could/should be in Umbraco Core or not...


Phil Dye 22 Jun 2017, 16:51:30

Thanks @crumpled_jeavon ! I've deployed this into a split-backoffice site on Azure and it seems to work fine


Jeavon Leopold 22 Jun 2017, 17:53:53

@phil.dye great to hear, it is handy :)


Priority: Normal

Type: Bug

State: Open

Assignee: Shannon Deminick

Difficulty:

Category: Architecture

Backwards Compatible: True

Fix Submitted:

Affected versions: 6.2.2

Due in version:

Sprint:

Story Points:

Cycle: