We're using ES 0.19.2 at the moment, in a 3-node configuration.
I have an odd case I can't explain. We have an item in an ES index that
comes back, depending on what host/shard/replica receives the query. We
tracked down this issue to a particular ID for a given type, and when one
does a simple GET request against this ID, ala :
curl -XGET http://localhost:9200/au1/task/168802590
we get alternating-ish views, some showing it doesn't exist, and some
showing it does:
{
_index: au1
_type: task
_id: 168802590
exists: false
}
then do it again, and we get something like this (redacted):
{
_index: au1
_type: task
_id: 168802590
_version: 1359072320783
exists: true
_source: {
id: 168802590
type: awaitingreview
description: BLAH BLAH
creationDate: 1359068463727
projectId: 30979
projectName: BLAH BLAH
stepName: BLAH BLAH
assignedBy: BLAH BLAH
mailId: null
dueDate: 1359154862937
referenceLabel: BLAH BLAH
aggregateCount: 1
featureId: 2
startDate: null
aggregateId: 134736434
assignedToUser: BLAH BLAH
aggregated: true
pertinent: true
assignedByUser: BLAH BLAH
assignedByUserId: 415818
assignedToUserId: 415818
dueDateIso: 20130126
}
}
If I then modify this get to use the ...?preference=_primary to hit only
the primary shard, I get 100% consistent results that exists=false (as in,
the item is deleted on the primary shard).
If I then change preference=_local, and walk over the each node guessing
which node might hold the replica for this item (I don't know what the
routing value would be for this, so don't know which shard it would go to?)
I get consistent results with the full results above. I can't seem to
prove which shard replica that is affected here....?
This leads me to think that the replica for a given shard does not have a
correct view of the deleted items for each segment.
I think I have 2 options:
-
use _optimize to properly expunge the deletes (maybe with just the
expunge deletes only option, though I still have to use max_num_segments=1
to force the optimize to happen. -
Set Replicas to 0, and then rebuild the replica set again by setting it
back to 1. This is not my preferred, given the small-ish window of
vulnerability of having no redundancy.
Before I do any of the above, is there any other ideas out there on what I
can, or things I can do to collect more info to help work out why? Is
there other ways to force removal of deleted items?
cheers,
Paul Smith
--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.