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)>>
