-
Notifications
You must be signed in to change notification settings - Fork 3.4k
HBASE-26265 Update ref guide to mention the new store file tracker im… #3942
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||
|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,175 @@ | ||||||||
| //// | ||||||||
| /** | ||||||||
| * | ||||||||
| * Licensed to the Apache Software Foundation (ASF) under one | ||||||||
| * or more contributor license agreements. See the NOTICE file | ||||||||
| * distributed with this work for additional information | ||||||||
| * regarding copyright ownership. The ASF licenses this file | ||||||||
| * to you under the Apache License, Version 2.0 (the | ||||||||
| * "License"); you may not use this file except in compliance | ||||||||
| * with the License. You may obtain a copy of the License at | ||||||||
| * | ||||||||
| * http://www.apache.org/licenses/LICENSE-2.0 | ||||||||
| * | ||||||||
| * Unless required by applicable law or agreed to in writing, software | ||||||||
| * distributed under the License is distributed on an "AS IS" BASIS, | ||||||||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||||
| * See the License for the specific language governing permissions and | ||||||||
| * limitations under the License. | ||||||||
| */ | ||||||||
| //// | ||||||||
|
|
||||||||
| [[storefiletracking]] | ||||||||
| = Store File Tracking | ||||||||
| :doctype: book | ||||||||
| :numbered: | ||||||||
| :toc: left | ||||||||
| :icons: font | ||||||||
| :experimental: | ||||||||
|
|
||||||||
| == Overview | ||||||||
|
|
||||||||
| This feature introduces an abstraction layer to track store files still used/needed by store | ||||||||
| engines, allowing for plugging different approaches of identifying store | ||||||||
| files required by the given store. | ||||||||
|
|
||||||||
| Historically, HBase internals have relied on creating hfiles on temporary directories first, renaming | ||||||||
| those files to the actual store directory at operation commit time. That's a simple and convenient | ||||||||
| way to separate transient from already finalised files that are ready to serve client reads with data. | ||||||||
| This approach works well with strong consistent file systems, but with the popularity of less consistent | ||||||||
| file systems, mainly Object Store file systems, dependency on rename operations starts to introduce | ||||||||
| performance penalties. Amazon S3 Object Store, in particular, has been the most affected deployment, | ||||||||
|
||||||||
| performance penalties. Amazon S3 Object Store, in particular, has been the most affected deployment, | |
| performance penalties. The Amazon S3 Object Store, in particular, has been the most affected deployment |
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| due to the its lack of atomic renames, requiring an additional locking layer implemented by HBOSS, | |
| due to the its lack of atomic renames. The HBase community temporarily bypassed this problem by building a distributed locking layer called HBOSS |
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| to guarantee consistency and integrity of operations. | |
| to guarantee atomicity of operations against S3. |
Maybe I'm being nit-picky here? I think it makes a confusing topic easier to understand if we just say "atomic renames", even though "consistency" and "integrity" would be things sacrificed when we have non-atomic renames :)
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| It can be set at individual Table or Column Family configurations, as well as in processes | |
| *hbase-site.xml* configuration file. | |
| The implementation can be set at the HBase service leve in *hbase-site.xml* or at the Table or Column Family via the TableDescriptor configuration. |
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| NOTE: When specified in *hbase_site.xml*, this configuration is also saved into tables configuration | |
| NOTE: When the store file tracking implementation is specified in *hbase_site.xml*, this configuration is also propagated into a table's configuration |
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| directories and renames. | |
| directories and renames. This is how all previous (implicit) implementation that HBase used to track store files. |
joshelser marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| For running clusters with tables already containing data, Store File Tracking implementation can | |
| For clusters with data that are upgraded to a version of HBase containing the store file tracking feature, the Store File Tracking implementation can |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.