You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@solr.apache.org by Bruno Roustant <br...@gmail.com> on 2022/07/04 10:31:00 UTC

MoveReplicaCmd with concurrent updates

Hi all,
I'm playing with the MoveReplicaCmd. Internally it calls addReplica and
then deleteReplica. And it seems that, if there are concurrent updates, the
call to deleteReplica makes the concurrent updates fail because they do not
find the replica at the original host.
Details:
The test moves mytest_shard1_0_replica_n5 from 127.0.0.1:61086_solr to
127.0.0.1:61084_solr.
And it fails just after the MoveReplicaCmd deletes the source replica with
the error message:
Error 404 Can not find: /solr/mytest_shard1_0_replica_n5/update

Is there a way to first route requests to the replica from the original
host to the target host, before we can delete the original replica?

Best,
Bruno

Re: MoveReplicaCmd with concurrent updates

Posted by David Smiley <ds...@apache.org>.
On Tue, Jul 5, 2022 at 10:48 AM Houston Putman <ho...@apache.org> wrote:

> That, or maybe the distributed update processor checks the state of the
> cluster on a failure and if the replica no longer exists, it acts
> accordingly.
>

That is what we're exploring.

Re: MoveReplicaCmd with concurrent updates

Posted by Houston Putman <ho...@apache.org>.
I don't think so, but it would be a wonderful addition.

That, or maybe the distributed update processor checks the state of the
cluster on a failure and if the replica no longer exists, it acts
accordingly.

- Houston

On Mon, Jul 4, 2022 at 6:33 AM Bruno Roustant <br...@gmail.com>
wrote:

> Hi all,
> I'm playing with the MoveReplicaCmd. Internally it calls addReplica and
> then deleteReplica. And it seems that, if there are concurrent updates, the
> call to deleteReplica makes the concurrent updates fail because they do not
> find the replica at the original host.
> Details:
> The test moves mytest_shard1_0_replica_n5 from 127.0.0.1:61086_solr to
> 127.0.0.1:61084_solr.
> And it fails just after the MoveReplicaCmd deletes the source replica with
> the error message:
> Error 404 Can not find: /solr/mytest_shard1_0_replica_n5/update
>
> Is there a way to first route requests to the replica from the original
> host to the target host, before we can delete the original replica?
>
> Best,
> Bruno
>