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