> And I'm still getting UnavailableException and TimedOutException when there
> Cassandra daemon is doing either Compaction or Garbage collection...

Have you specifically correlated this? If so, which one, or both?

GC should not cause unavailable exceptions on a healthy cluster with
healthy nodes. If GC:s are causing nodes to not respond for so long
that they cause exceptions you may be swapping. Have you monitored to
see whether you are actively swapping in/out during GC:s (or at all
for that matter)? Excessive GC pause times should be logged by
Cassandra i the system log, regardless of JVM options. So, check your
cassandra log from messages from GCInspector about pause times.

I presume you are running with default JVM paramters?

WIth respect to compaction, I'm still interested, as in my original
response in this thread, what your data looks like and whether
compaction is CPU bound or I/O bound. It's quite possible that
compaction is having an adverse effect; if it is, I would suspect it
is due to disk I/O rather than CPU load (unless you are saturating
your cluster so that CPU load is the dominating factor). The primary
adverse effects expected by compaction, other than additional CPU
load, are:

* Generation of additional I/O which will directly affect normal traffic.
* Effects on the operating system buffer cache may increase the I/O
load resulting from normal traffic (thus making the preceding issue
even more significant).

Are the nodes that are slow to respond during compaction I/O bound?
Check with for example "iostat -x 1" (utilization value and average
queue size  being the most important columns).

There is some work planned/happening towards lessening the impact of
compactions, and it would be of interest to know the circumstances of
compaction problems that people do have.

-- 
/ Peter Schuller

Reply via email to