hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anoop Sam John (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-17662) Disable in-memory flush when replaying from WAL
Date Mon, 27 Feb 2017 04:23:46 GMT

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

Anoop Sam John commented on HBASE-17662:
----------------------------------------

Sorry for the delay.
{code}
-  public static final long DEEP_OVERHEAD = AbstractMemStore.DEEP_OVERHEAD
-      + 6 * ClassSize.REFERENCE // Store, RegionServicesForStores, CompactionPipeline,
-                                // MemStoreCompactor, inMemoryFlushInProgress, allowCompaction
-      + Bytes.SIZEOF_LONG // inmemoryFlushSize
+
+  public static final long DEEP_OVERHEAD = ClassSize.align( AbstractMemStore.DEEP_OVERHEAD
+      + 4 * ClassSize.REFERENCE     // Store, RegionServicesForStores, CompactionPipeline,
+                                    // MemStoreCompactor
+      + Bytes.SIZEOF_LONG           // inmemoryFlushSize
+      + 2 * Bytes.SIZEOF_BOOLEAN    // compositeSnapshot and inWalReplay
       + 2 * ClassSize.ATOMIC_BOOLEAN// inMemoryFlushInProgress and allowCompaction
-      + CompactionPipeline.DEEP_OVERHEAD + MemStoreCompactor.DEEP_OVERHEAD;
+      + CompactionPipeline.DEEP_OVERHEAD + MemStoreCompactor.DEEP_OVERHEAD);
{code}
Why there is a change from 6 REFERENCEs to 4?   inMemoryFlushInProgress, allowCompaction -
These are AtomicBoolean fields means they have reference overhead.  So 6 is the correct value.
 Do we need any change in tests to change it back to 6 (existing code)?  Pls check and correct..
 


> Disable in-memory flush when replaying from WAL
> -----------------------------------------------
>
>                 Key: HBASE-17662
>                 URL: https://issues.apache.org/jira/browse/HBASE-17662
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Anastasia Braginsky
>            Assignee: Anastasia Braginsky
>         Attachments: HBASE-17662-V02.patch, HBASE-17662-V03.patch, HBASE-17662-V04.patch,
HBASE-17662-V05.patch, HBASE-17662-V06.patch
>
>
> When replaying the edits from WAL, the region's updateLock is not taken, because a single
threaded action is assumed. However, the thread-safeness of the in-memory flush of CompactingMemStore
is based on taking the region's updateLock. 
> The in-memory flush can be skipped in the replay time (anyway everything is flushed to
disk just after the replay). Therefore it is acceptable to just skip the in-memory flush action
while the updates come as part of replay from WAL.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message