cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Cassandra Wiki] Update of "JmxInterface" by RobertColi
Date Wed, 17 Feb 2010 20:34:05 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Cassandra Wiki" for change notification.

The "JmxInterface" page has been changed by RobertColi.
http://wiki.apache.org/cassandra/JmxInterface?action=diff&rev1=8&rev2=9

--------------------------------------------------

  ||Units ||Notes ||
  ||integer >=0, tasks ||The number of tasks waiting in the queue to be executed. ||
  
+ 
+ <<Anchor(org.apache.cassandra.concurrent.AE-SERVICE-STAGE)>>
  == org.apache.cassandra.concurrent.AE-SERVICE-STAGE ==
  Per src/java/org/apache/cassandra/service/AntiEntropyService.java,
  {{{
@@ -58, +60 @@

  
  Tree comparison and repair triggering occur in the single threaded AE_SERVICE_STAGE.
  }}}
- == org.apache.cassandra.concurrent.AE-SERVICE-STAGE ==
- <<Anchor(org.apache.cassandra.concurrent.AE-SERVICE-STAGE)>>
+ <<Anchor(org.apache.cassandra.concurrent.CONSISTENCY-MANAGER)>>
- == org.apache.cassandra.concurrent.COMMITLOG ==
- <<Anchor(org.apache.cassandra.concurrent.COMMITLOG)>>
  == org.apache.cassandra.concurrent.CONSISTENCY-MANAGER ==
+ Per src/java/org/apache/cassandra/service/StorageService.java,
+ {{{
+ /* This thread pool does consistency checks when the client doesn't care about consistency
*/
+ }}}
+ 
+ The CONSISTENCY-MANAGER executor is responsible for passive read repair, for example after
a read with ConsistencyLevel.ONE.
+ 
- <<Anchor(org.apache.cassandra.concurrent.CONSISTENCY-MANAGER)>>
+ <<Anchor(org.apache.cassandra.concurrent.FILEUTILS-DELETE-POOL)>>
  == org.apache.cassandra.concurrent.FILEUTILS-DELETE-POOL ==
+ Code is defined in src/java/org/apache/cassandra/io/DeletionService.java, but use cases
are not commented there. This executor is responsible for deleting files, such as obsolete
sstables and obsolete commitlog segments.
+ 
- <<Anchor(org.apache.cassandra.concurrent.FILEUTILS-DELETE-POOL)>>
+ <<Anchor(org.apache.cassandra.concurrent.FLUSH-SORTER-POOL)>>
  == org.apache.cassandra.concurrent.FLUSH-SORTER-POOL ==
+ See Also : [[#org.apache.cassandra.concurrent.FLUSH-WRITER-POOL|FLUSH-WRITER-POOL]]. Per
src/java/org/apache/cassandra/db/ColumnFamilyStore.java,
+ {{{
+      * submitFlush first puts [Binary]Memtable.getSortedContents on the flushSorter executor,
+      * which then puts the sorted results on the writer executor.  This is because sorting
is CPU-bound,
+      * and writing is disk-bound; we want to be able to do both at once.  When the write
is complete,
+      * we turn the writer into an SSTableReader and add it to ssTables_ where it is available
for reads.
+      *
+      * For BinaryMemtable that's about all that happens.  For live Memtables there are two
other things
+      * that switchMemtable does (which should be the only caller of submitFlush in this
case).
+      * First, it puts the Memtable into memtablesPendingFlush, where it stays until the
flush is complete
+      * and it's been added as an SSTableReader to ssTables_.  Second, it adds an entry to
commitLogUpdater
+      * that waits for the flush to complete, then calls onMemtableFlush.  This allows multiple
flushes
+      * to happen simultaneously on multicore systems, while still calling onMF in the correct
order,
+      * which is necessary for replay in case of a restart since CommitLog assumes that when
onMF is
+      * called, all data up to the given context has been persisted to SSTables.
+ }}}
+ 
- <<Anchor(org.apache.cassandra.concurrent.FLUSH-SORTER-POOL)>>
+ <<Anchor(org.apache.cassandra.concurrent.FLUSH-WRITER-POOL)>>
  == org.apache.cassandra.concurrent.FLUSH-WRITER-POOL ==
+ See Also : [[#org.apache.cassandra.concurrent.FLUSH-SORTER-POOL|FLUSH-SORTER-POOL]]. Per
src/java/org/apache/cassandra/db/ColumnFamilyStore.java,
+ {{{
+      * submitFlush first puts [Binary]Memtable.getSortedContents on the flushSorter executor,
+      * which then puts the sorted results on the writer executor.  This is because sorting
is CPU-bound,
+      * and writing is disk-bound; we want to be able to do both at once.  When the write
is complete,
+      * we turn the writer into an SSTableReader and add it to ssTables_ where it is available
for reads.
+      *
+      * For BinaryMemtable that's about all that happens.  For live Memtables there are two
other things
+      * that switchMemtable does (which should be the only caller of submitFlush in this
case).
+      * First, it puts the Memtable into memtablesPendingFlush, where it stays until the
flush is complete
+      * and it's been added as an SSTableReader to ssTables_.  Second, it adds an entry to
commitLogUpdater
+      * that waits for the flush to complete, then calls onMemtableFlush.  This allows multiple
flushes
+      * to happen simultaneously on multicore systems, while still calling onMF in the correct
order,
+      * which is necessary for replay in case of a restart since CommitLog assumes that when
onMF is
+      * called, all data up to the given context has been persisted to SSTables.
+ }}}
+ 
- <<Anchor(org.apache.cassandra.concurrent.FLUSH-WRITER-POOL)>>
+ <<Anchor(org.apache.cassandra.concurrent.GMFD)>>
  == org.apache.cassandra.concurrent.GMFD ==
+ The thread pool executor for the [[ArchitectureGossip|Gossiper]].
+ 
- <<Anchor(org.apache.cassandra.concurrent.GMFD)>>
+ <<Anchor(org.apache.cassandra.concurrent.HINTED-HANDOFF-POOL)>>
  == org.apache.cassandra.concurrent.HINTED-HANDOFF-POOL ==
+ Per src/java/org/apache/cassandra/db/HintedHandOffManager.java,
+ {{{
+  * For each table (keyspace), there is a row in the system hints CF.
+  * SuperColumns in that row are keys for which we have hinted data.
+  * Subcolumns names within that supercolumn are host IPs. Subcolumn values are always empty.
+  * Instead, we store the row data "normally" in the application table it belongs in.
+  *
+  * So when we deliver hints we look up endpoints that need data delivered
+  * on a per-key basis, then read that entire row out and send it over.
+ }}}
+ 
- <<Anchor(org.apache.cassandra.concurrent.HINTED-HANDOFF-POOL)>>
+ <<Anchor(org.apache.cassandra.concurrent.LB-OPERATIONS)>>
  == org.apache.cassandra.concurrent.LB-OPERATIONS ==
+ See Also : [[#org.apache.cassandra.concurrent.LB-TARGET|LB-TARGET]]. Per src/java/org/apache/cassandra/service/StorageLoadBalancer.java,
+ {{{
+ /* This thread pool is used for initiating load balancing operations */
+ }}}
+ 
- <<Anchor(org.apache.cassandra.concurrent.LB-OPERATIONS)>>
+ <<Anchor(org.apache.cassandra.concurrent.LB-TARGET)>>
  == org.apache.cassandra.concurrent.LB-TARGET ==
+ See Also : [[#org.apache.cassandra.concurrent.LB-OPERATIONS|LB-OPERATIONS]]. Per src/java/org/apache/cassandra/service/StorageLoadBalancer.java,
+ {{{
+ /* This thread pool is used by target node to leave the ring. */
+ }}}
+ 
- <<Anchor(org.apache.cassandra.concurrent.LB-TARGET)>>
+ <<Anchor(org.apache.cassandra.concurrent.LOAD-BALANCER-STAGE)>>
  == org.apache.cassandra.concurrent.LOAD-BALANCER-STAGE ==
+ Per src/java/org/apache/cassandra/service/
+ {{{
+ }}}
+ 
- <<Anchor(org.apache.cassandra.concurrent.LOAD-BALANCER-STAGE)>>
+ <<Anchor(org.apache.cassandra.concurrent.MEMTABLE-POST-FLUSHER)>>
  == org.apache.cassandra.concurrent.MEMTABLE-POST-FLUSHER ==
+ Per src/java/org/apache/cassandra/service/
+ {{{
+ }}}
+ 
- <<Anchor(org.apache.cassandra.concurrent.MEMTABLE-POST-FLUSHER)>>
+ <<Anchor(org.apache.cassandra.concurrent.MESSAGE-DESERIALIZER-POOL)>>
  == org.apache.cassandra.concurrent.MESSAGE-DESERIALIZER-POOL ==
+ Per src/java/org/apache/cassandra/service/
+ {{{
+ }}}
+ 
- <<Anchor(org.apache.cassandra.concurrent.MESSAGE-DESERIALIZER-POOL)>>
+ <<Anchor(org.apache.cassandra.concurrent.MESSAGE-STREAMING-POOL)>>
  == org.apache.cassandra.concurrent.MESSAGE-STREAMING-POOL ==
+ Per src/java/org/apache/cassandra/service/
+ {{{
+ }}}
+ 
- <<Anchor(org.apache.cassandra.concurrent.MESSAGE-STREAMING-POOL)>>
+ <<Anchor(org.apache.cassandra.concurrent.RESPONSE-STAGE)>>
  == org.apache.cassandra.concurrent.RESPONSE-STAGE ==
+ Per src/java/org/apache/cassandra/service/
+ {{{
+ }}}
+ 
- <<Anchor(org.apache.cassandra.concurrent.RESPONSE-STAGE)>>
+ <<Anchor(org.apache.cassandra.concurrent.ROW-MUTATION-STAGE)>>
  == org.apache.cassandra.concurrent.ROW-MUTATION-STAGE ==
+ Per src/java/org/apache/cassandra/service/
+ {{{
+ }}}
+ 
- <<Anchor(org.apache.cassandra.concurrent.ROW-MUTATION-STAGE)>>
+ <<Anchor(org.apache.cassandra.concurrent.ROW-READ-STAGE)>>
  == org.apache.cassandra.concurrent.ROW-READ-STAGE ==
+ Per src/java/org/apache/cassandra/service/
+ {{{
+ }}}
+ 
- <<Anchor(org.apache.cassandra.concurrent.ROW-READ-STAGE)>>
+ <<Anchor(org.apache.cassandra.concurrent.STREAM-STAGE)>>
  == org.apache.cassandra.concurrent.STREAM-STAGE ==
- <<Anchor(org.apache.cassandra.concurrent.STREAM-STAGE)>>
+ Per src/java/org/apache/cassandra/service/
+ {{{
+ }}}
  
  <<Anchor(org.apache.cassandra.db.CommitLog)>> <<Anchor(org.apache.cassandra.db.CommitLog.Attributes.ActiveCount)>>
<<Anchor(org.apache.cassandra.db.CommitLog.Attributes.CompletedTasks)>> <<Anchor(org.apache.cassandra.db.CommitLog.Attributes.PendingTasks)>>
<<Anchor(org.apache.cassandra.db.CompactionManager.Attributes.BytesCompacted)>>
<<Anchor(org.apache.cassandra.db.CompactionManager.Attributes.BytesTotalInProgress)>>
<<Anchor(org.apache.cassandra.db.CompactionManager.Attributes.ColumnFamilyInProgress)>>
<<Anchor(org.apache.cassandra.db.CompactionManager.Attributes.MaximumCompactionThreshold)>>
<<Anchor(org.apache.cassandra.db.CompactionManager.Attributes.MinmumCompactionThreshold)>>
<<Anchor(org.apache.cassandra.db.CompactionManager.Attributes.PendingTasks)>>
<<Anchor(org.apache.cassandra.db.CompactionManager)>> <<Anchor(org.apache.cassandra.gms)>>
<<Anchor(org.apache.cassandra.gms.FailureDetector.Operations.dumpInterArrivalTimes)>>
<<Anchor(org.apache.cassandra.service.StorageProxy)>> <<Anchor(org.apache.cassandra.service.StorageProxy.Attributes.RangeLatency)>>
<<Anchor(org.apache.cassandra.service.StorageProxy.Attributes.RangeOperations)>>
<<Anchor(org.apache.cassandra.service.StorageProxy.Attributes.ReadLatency)>> <<Anchor(org.apache.cassandra.service.StorageProxy.Attributes.WriteLatency)>>
<<Anchor(org.apache.cassandra.service.StorageProxy.Attributes.WriteOperations)>>
<<Anchor(org.apache.cassandra.service.StorageService)>> <<Anchor(org.apache.cassandra.service.StorageService.Attributes.CurrentGenerationNumber)>>
<<Anchor(org.apache.cassandra.service.StorageService.Attributes.LiveNodes)>> <<Anchor(org.apache.cassandra.service.StorageService.Attributes.LoadMap)>>
<<Anchor(org.apache.cassandra.service.StorageService.Attributes.LoadString)>>
<<Anchor(org.apache.cassandra.service.StorageService.Attributes.RangeToEndPointMap)>>
<<Anchor(org.apache.cassandra.service.StorageService.Attributes.Token)>> <<Anchor(org.apache.cassandra.service.StorageService.Attributes.UnreachableNodes)>>
<<Anchor(org.apache.cassandra.service.StorageService.Operations.clearSnapshot)>>
<<Anchor(org.apache.cassandra.service.StorageService.Operations.decommission)>>
<<Anchor(org.apache.cassandra.service.StorageService.Operations.forceTableCleanup)>>
<<Anchor(org.apache.cassandra.service.StorageService.Operations.forceTableCompaction)>>
<<Anchor(org.apache.cassandra.service.StorageService.Operations.forceTableFlush)>>
<<Anchor(org.apache.cassandra.service.StorageService.Operations.forceTableRepair)>>
<<Anchor(org.apache.cassandra.service.StorageService.Operations.getLiveNaturalEndpoints)>>
<<Anchor(org.apache.cassandra.service.StorageService.Operations.loadBalance)>>
<<Anchor(org.apache.cassandra.service.StorageService.Operations.move)>> <<Anchor(org.apache.cassandra.service.StorageService.Operations.removeToken)>>
<<Anchor(org.apache.cassandra.service.StorageService.Operations.setLog4jLevel)>>
<<Anchor(org.apache.cassandra.service.StorageService.Operations.takeAllSnapshot)>>
<<Anchor(org.apache.cassandra.service.StorageService.Operations.takeSnapshot)>>
  

Mime
View raw message