On Tue, Jun 15, 2010 at 4:58 PM, Jonathan Shook <jsh...@gmail.com> wrote:
> If there aren't enough resources on the server side to service the
> clients, the expectation should be that the servers have a graceful
> performance degradation, or in the worst case throw an error specific
> to resource exhaustion or explicit resource throttling. The fact that
> Cassandra does some background processing complicates this a bit.

This is actually one of the most significant complications: graceful
performance degradation can quickly lead to GC pauses long enough for
a node to be marked down by the rest of the cluster.  You could try to
trade a lot of CPU for limited memory by tuning GC parameters to be
_really_ aggressive, I suppose, but that doesn't strike me as a great
strategy.  The nature of distributed systems like this presents
challenges simply not present (or even uglier) in centralized
databases.

I agree completely with the need to have the server engage in
self-preserving activity should it start nearing limits, and to signal
that change to clients and in logs.  Definitely room for improvement,
regardless of state of tune.


b

Reply via email to