HBASE-29081: Add HBase Read Replica Cluster feature#8044
Conversation
|
I have no idea what's wrong with CI builds. Code builds completely fine on my machine with the same JDK version and tests are also passing. |
|
That will be fixed in the next release of Yetus by apache/yetus#365 |
taklwu
left a comment
There was a problem hiding this comment.
[DISCUSS] I'm wondered if we should always use junit 5 when merging to master branch, if so, would it be possible to have it in this PR? or at least I want a follow up task on it.
I completely agree. I haven't actually noticed that we're still using JUnit 4 somewhere. I tried to migrate every test during the rebasing. I created a sub-task for it: https://issues.apache.org/jira/browse/HBASE-30085 |
Unfortunately we're not getting anywhere with that PR. Given that it's not a strict requirement to complete the feature, I'd like to go forward with this patch at the first place. |
|
@charlesconnell Any news about the Yetus release? |
|
No news about the Yetus release |
|
We have come across a bug where tables on the replica cluster are not getting new data post-refresh after the read-only flag has been flipped twice. This is being tracked in HBASE-30090, and we are working on a solution. |
|
hey @Apache9 - You might want to take a look at this patch sooner rather than later. Please share your thoughts when you get a chance. |
|
Hi @charlesconnell, PR #8115 addresses some of your comments and has been merged into this feature branch. Can you please mark the relevant comments as resolved? Thanks |
|
#8182 will help with Yetus failures once it's merged and you rebase |
Rebased. |
|
@charlesconnell Looks like Yetus is making progress with the builds this time. |
|
The yetus checks are failing for legit reasons, for example: and I am happy to review again when the build is fixed |
|
I'm pretty sure what you're seeing is an artifact of how Yetus applies each commit in your PR branch ( For ReadOnlyController.java, the apply log shows 9 stanzas:
Somehow it's not tracking changes to this file correctly across the entire history. Looks like this is a known issue in Yetus (YETUS-983) and has been around since 2020. My best recommendation for now is to squish your history a bit and see what comes of it. |
|
Trying a fix. apache/yetus#384 |
|
https://issues.apache.org/jira/browse/YETUS-983 is merged. Let's try it again. |
|
Thanks @ndimiduk for the quick help. I triggered another round of CI. |
|
Glad to help. FYI, last I looked, this commit history needs some cleanup before you land it on master. We still aim for one commit per JIRA issue. Not sure if you want to just squish it all down so that only the umbrella issue lands in the tree? In that case, be sure to update the fix version on all the subtasks appropriately (i.e., set to the feature branch release version, not the release version). |
Thanks @ndimiduk for the heads-up, I didn't think about it yet. I can certainly squash the patch is a single commit that's quite straightforward. However, squashing multiple commits of a single sub-task would be a bit more time-consuming, but I think it's still feasible. What do you recommend? |
|
I think that a single squished commit is easiest. |
|
I have one unresolved comment still, but other than that no new comments |
I think we have resolved all the outstanding comments. Please carry on with your review when you have a chance. |
charlesconnell
left a comment
There was a problem hiding this comment.
Yetus failures seem bogus. LGTM.
|
Thank you @charlesconnell ! Let me squash the commits. |
|
@ndimiduk Looks like squashing the commits doesn't make any difference. |
|
It's not yetus, the failures are legit -- your merge target is shifting under you. You need to rebase onto master. |
|
Click through into a failed check and look at the Summary document, https://github.com/apache/hbase/actions/runs/26121214670 . Click on the House and Summary at the top and you'll see an overview. |
|
Thanks @ndimiduk for looking. Let me do the rebase and fix the problems. |

Hi all,
We would like to propose merging the feature “Read Replica Cluster” into
the main branch.
Background
We’d like to implement the open source version of Amazon’s Read Replica
Cluster on S3 feature for Apache HBase. It adds the ability of running
another HBase cluster on the same cloud storage location in read-only mode,
allowing users to share the read workload between multiple clusters. Due
to the characteristics of the implementation and the lack of automated
synchronization between the active and read-replica clusters, read replicas
are eventually consistent, hence they’re not suitable for reading most
recent data. However we still believe that users of open source Apache HBase
could take advantage of this feature and there are use cases out there which
read replicas could help with. Please find more information about the
feature in the linked blog post.
Pros
entire workload,
which is cost and time efficient,
Cons
visible from read replicas,
refresh hfiles/meta on read replicas
A detailed description of the design and implementation can be found in the
following document.
Apache HBase Read Replica Cluster Feature
Please review and share your feedback or comments.
Best regards,
Andor