[
https://issues.apache.org/jira/browse/HBASE-24749?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17162022#comment-17162022
]
Sean Busbey commented on HBASE-24749:
-------------------------------------
excellent! it's worth a heads up to dev@hbase pointing folks here, I think.
{quote}
For recovery from region server crashes or region reload, we persist the
in-memory HFiles tracking in store file manager to a new HBase admin table,
‘hbase:storefile’. To prevent loading HFiles from incomplete flushes and
compactions, and reduce the number of expensive LIST files calls against the
file system, we will read directly from the hbase:storefile table. A write to
the storefile table is used as the commit mechanism for a HFile, removing the
rename from .tmp to the data directory.
{quote}
Could this be a part of meta instead? we just recently got through having
{{hbase:namespace}} move into meta to improve operational robustness, and this
proposed storefile lookup seems very likely to be an even greater tripping
point since all the RS need access.
{quote}
To avoid a circular dependency on the storefile table, the store file manager
for the meta and storefile tables will be persisted in ZooKeeper.
{quote}
no persistent state in zookeeper please. we could do this via a local region
controlled by whomever is handling meta. or at least I think that the feature
would work for this, what do you think [~zhangduo]?
> Direct insert HFiles and Persist in-memory HFile tracking
> ---------------------------------------------------------
>
> Key: HBASE-24749
> URL: https://issues.apache.org/jira/browse/HBASE-24749
> Project: HBase
> Issue Type: Umbrella
> Components: Compaction, HFile
> Affects Versions: 3.0.0-alpha-1
> Reporter: Tak-Lon (Stephen) Wu
> Priority: Major
> Labels: design, discussion, objectstore, storeFile, storeengine
> Attachments: 1B100m-25m25m-performance.pdf, Apache HBase - Direct
> insert HFiles and Persist in-memory HFile tracking.pdf
>
>
> We propose a new feature (a new store engine) to remove the {{.tmp}}
> directory used in the commit stage for common HFile operations such as flush
> and compaction to improve the write throughput and latency on object stores.
> Specifically for S3 filesystems, this will also mitigate read-after-write
> inconsistencies caused by immediate HFiles validation after moving the
> HFile(s) to data directory.
> Please see attached for this proposal and the initial result captured with
> 25m (25m operations) and 1B (100m operations) YCSB workload A LOAD and RUN,
> and workload C RUN result.
> The goal of this JIRA is to discuss with the community if the proposed
> improvement on the object stores use case makes senses and if we miss
> anything should be included.
> Improvement Highlights
> 1. Lower write latency, especially the p99+
> 2. Higher write throughput on flush and compaction
> 3. Lower MTTR on region (re)open or assignment
> 4. Remove consistent check dependencies (e.g. DynamoDB) supported by file
> system imple
--
This message was sent by Atlassian Jira
(v8.3.4#803005)