2011/1/23 Edward Capriolo <edlinuxg...@gmail.com>

> On Sun, Jan 23, 2011 at 11:23 AM, ruslan usifov <ruslan.usi...@gmail.com>
> wrote:
> >
> >
> >
> >> On Sun, Jan 23, 2011 at 6:30 AM, ruslan usifov <ruslan.usi...@gmail.com
> >
> >> wrote:
> >>
> >> Right. The difference is that the gossip process builds a topology of
> >> UP/DOWN hosts so Unavailable is thrown quickly. If you need ALL and
> >> one replica is known down -> Unavailable.
> >>
> >
> > Is it possible to detect that write doesn't happen anywhere? Or it is
> only
> > possible detect consistency failure?
> >
>
> Regardless of what Exception is thrown you should retry the write from
> your client.
>
> If the method threw UnavailableException the write operation did not
> happen on any node. As the coordinator judged that it would have not
> succeeded.
>
> If the method threw TimedOutException the write could have succeeded
> on some nodes but it was not acknowledged on enough to meet the CL
> your requested.
>
> It would be nice if the exception could be populated more information such
> as
> TimedOutException:
>  requested: 3
>  succeeded: 1
>  succeededList: 127.0.0.1
>  requestedList: 127.0.0.1,127.0.0.2,127.0.0.3
>
> This would make the explanations more self explanatory, and would give
> more transparency to the clients.
>
> (knowing my luck thrift probably does not allow complex exception types)
>

Thanks for very  useful explanations, i have a last question about
batch_mutate method, does it guarantee that if any mutation in mutations
list will throw UnavailableException, all batch will throw
UnavailableException, and nothing is writing to cluster?

Reply via email to