hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eshcar Hillel (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-17434) New Synchronization Scheme for Compaction Pipeline
Date Sun, 08 Jan 2017 21:19:58 GMT

    [ https://issues.apache.org/jira/browse/HBASE-17434?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15810038#comment-15810038
] 

Eshcar Hillel commented on HBASE-17434:
---------------------------------------

Making a copy inside the building block methods and extracting them to a generic solution
is similar to using CopyOnWriteXXX instead of LinkedList. This would duplicate the level of
locks in use - one in the CopyOnWriteXXX to protect the creation of the read-only copy, and
one in the compaction pipeline to ensure atomic access of the linked-list and the version
number. 
For this reason we implement copy-on-write at this level and we keep the lines of taking the
lock and creating the copy next to each other at the high level public methods.

> 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
>            Assignee: Eshcar Hillel
>         Attachments: HBASE-17434-V01.patch, HBASE-17434-V02.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)

Mime
View raw message