One of the biggest "concerns" from potential "real-time" users of
Hypertable is write latency spike when some nodes are down and being
recovered. Read latency/availability are usually masked by the caching
layer.

Cassandra tries solve the problem by using "hinted handoff" (write
data tagged with a destination to an alternative node when the
destination node is down). Of course this mandates relaxing
consistency guarantee to "eventual", which is a trade-off many are
willing to make.

I just thought that it's not that hard to implement something similar
in Hypertable and give user a choice between immediate and eventual
consistency:

When a mutator is created with BEST_EFFORT/EVENTUAL_OK flag, instead
of keep retrying writes in the client when a destination node is down,
it tries to write to an alternative range server with a special update
flag, which persists the writes to a proxy log. The maintenance
threads on the alternative range server will try to to empty proxy log
by retry the writes. Alternative range servers can be picked using a
random (sort the server list by their md5 of their ip address and the
alternatives are the next n servers) or a location (data center/rack)
aware scheme. Note this approach works even when the alternative node
dies when proxy logs are not yet cleared.

Thoughts?

__Luke
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Hypertable Development" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/hypertable-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to