Also, I was referring to this wiki page:
http://wiki.apache.org/solr/UpdateJSON#Update_Commands
Thanks
Vinay


On Tue, Feb 19, 2013 at 6:12 PM, Vinay Pothnis <vinay.poth...@gmail.com>wrote:

> Thanks for the reply Eric.
>
> * I am not using SolrJ
> * I am using plain http (apache http client) to send a batch of commands.
> * As I mentioned below, the json payload I am sending is like this (some
> of the fields have been removed for brevity)
> * POST http://localhost:8983/solr/sample/update
> * POST BODY
>   {"add": {"doc":
> {"field-1":"1359591340025","field-2":1361301249330,"doc_id":"e.1.78"}
> },"add": {"doc":
> {"field-1":"1360089709282","field-2":1361301249377,"doc_id":"e.1.78"}
> },"delete": { "id": "e.1.78" }}
>
> The evidence is from the logs on the 2 shards.
>
> The following is the log on shard 1:
> *INFO: [sample] webapp=/solr path=/update params={} {add=[e.1.80, e.1.80,
> e.1.80, e.1.80, e.1.80, e.1.80, e.1.80],delete=[e.1.80]} 0 48*
> *
> *
> The following is the log on shard 2:
> *INFO: [sample] webapp=/solr path=/update
> params={update.distrib=TOLEADER&wt=javabin&version=2} {delete=[e.1.80
> (-1427453640312881152)]} 0 2*
> *Feb 19, 2013 6:04:34 PM
> org.apache.solr.update.processor.LogUpdateProcessor finish*
> *INFO: [sample] webapp=/solr path=/update params={distrib.from=
> http://10.10.76.23:8983/solr/ch-madden/&update.distrib=TOLEADER&wt=javabin&version=2}
> {add=[e.1*
> *.80 (1427453640314978304), e.1.80 (1427453640338046976), e.1.80
> (1427453640342241280), e.1.80 (1427453640346435584), e.1.80
> (1427453640349581312), e.1.80 (14274*
> *53640351678464), e.1.80 (1427453640353775616)]} 0 41*
>
> As you can see, shard 2 gets the "delete" command first and then the
> "add/update" commands.
> I am sure I have waited until the commit happens. And besides, I am also
> using the "softAutoCommit" at 1 second. So, the query results should be
> updated quite quickly.
>
> Any pointers would be very helpful.
>
> Thanks!
> Vinay
>
>
> On Tue, Feb 19, 2013 at 5:57 PM, Erick Erickson 
> <erickerick...@gmail.com>wrote:
>
>> Hmmm, this would surprise me unless the add and delete were going to
>> separate machines. how are you sending them? SolrJ? and in a single
>> server.add(doclist) format or with individual adds?
>>
>> Individual commands being sent can come 'round out of sequence, that's
>> what
>> the whole optimistic locking bit is about.
>>
>> I guess my other question is what's your evidence that this isn't working?
>> Are you just querying your index and looking at the results? If so, are
>> you
>> sure you're waiting until after any autocommit intervals?
>>
>> Best
>> Erick
>>
>>
>> On Tue, Feb 19, 2013 at 2:23 PM, Vinay Pothnis <vinay.poth...@gmail.com
>> >wrote:
>>
>> > Hello,
>> >
>> > I have the following set up:
>> >
>> > * solr cloud 4.1.0
>> > * 2 shards with embedded zookeeper
>> > * plain http to communicate with solr
>> >
>> > I am testing a scenario where i am batching multiple commands and
>> sending
>> > to solr. Since this is the solr cloud setup, I am always sending the
>> > updates to one of the nodes in the cloud.
>> >
>> > e.g.: http://localhost:8983/solr/sample/update
>> >
>> > *example set of commands:*
>> > {"add": {"doc":
>> > {"field-1":"1359591340025","field-2":1361301249330,"doc_id":"e.1.78"}
>> > },"add": {"doc":
>> > {"field-1":"1360089709282","field-2":1361301249377,"doc_id":"e.1.78"}
>> > },"delete": { "id": "e.1.78" }}
>> >
>> > When I include deletes and updates in the batch, sometimes, the order of
>> > the commands is not maintained.
>> >
>> > Specifically, if the document does not belong to the shard that I am
>> > communicating with (lets say shard-1), then shard-1 sends the commands
>> to
>> > "shard-2". In this case, the "deletes" are sent first and then the
>> updates.
>> > This changes the order that I originally sent.
>> >
>> > Any inputs on why the order is not maintained?
>> >
>> > Thanks!
>> > Vinay
>> >
>>
>
>

Reply via email to