[ https://issues.apache.org/jira/browse/HBASE-17434?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15805638#comment-15805638 ]
Ted Yu commented on HBASE-17434: -------------------------------- bq. it does not use any CopyOnWrite data structures bq. It does not add any synchronization. Latest patch on HBASE-17379 satisfies the above as well. bq. It removes the synchronization from getSegments() This is a corollary of the copy on write semantics. I incorporated this change in patch v31 for HBASE-17379. So far TestHRegionWithInMemoryFlush has passed 8 iterations and is still running. > New Synchronization Scheme for Compaction Pipeline > -------------------------------------------------- > > Key: HBASE-17434 > URL: https://issues.apache.org/jira/browse/HBASE-17434 > Project: HBase > Issue Type: Bug > Reporter: Eshcar Hillel > Attachments: HBASE-17434-V01.patch > > > A new copyOnWrite synchronization scheme is introduced for the compaction > pipeline. > The new scheme is better since it removes the lock from getSegments() which > is invoked in every get and scan operation, and it reduces the number of > LinkedList objects that are created at runtime, thus can reduce GC (not by > much, but still...). > In addition, it fixes the method getTailSize() in compaction pipeline. This > method creates a MemstoreSize object which comprises the data size and the > overhead size of the segment and needs to be atomic. -- This message was sent by Atlassian JIRA (v6.3.4#6332)