You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Duo Zhang (Jira)" <ji...@apache.org> on 2021/07/27 11:42:00 UTC
[jira] [Created] (HBASE-26144) The HStore.snapshot method is never
called in main code
Duo Zhang created HBASE-26144:
---------------------------------
Summary: The HStore.snapshot method is never called in main code
Key: HBASE-26144
URL: https://issues.apache.org/jira/browse/HBASE-26144
Project: HBase
Issue Type: Improvement
Components: regionserver
Reporter: Duo Zhang
Assignee: Duo Zhang
In the comment of HStore.flushCache, we say that HStore.snapshot method must be called first. But actually, we will call memstore.snapshot directly from StoreFlusherImpl.prepare, without holding the write lock. The reason we do not need to hold the write lock is that, we hold HRegion.updatesLock in the upper layer, so it is OK.
See HBASE-10087 for more discussion about this.
So in general, I think we could remove the snapshot method in HStore. And I do not think we need to hold the write lock when calling clearSnapshot then. As in the HRegion layer, we need to guarantee that there is only one ongoing flush of the region, so before we finish the region, it is already safe to operate on the snapshot of the memstore, especially that the clearSnapshot method itself is thread safe.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)