You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by dl...@apache.org on 2023/05/31 11:32:38 UTC
[accumulo] branch elasticity updated: Require prev end row when setting tablet location (#3442)
This is an automated email from the ASF dual-hosted git repository.
dlmarion pushed a commit to branch elasticity
in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/elasticity by this push:
new 4b291b9ee6 Require prev end row when setting tablet location (#3442)
4b291b9ee6 is described below
commit 4b291b9ee63059e7af27e8967fdb1af38b25661b
Author: Keith Turner <kt...@apache.org>
AuthorDate: Wed May 31 07:32:33 2023 -0400
Require prev end row when setting tablet location (#3442)
---
.../accumulo/server/manager/state/AbstractTabletStateStore.java | 8 +++++---
.../apache/accumulo/server/manager/state/MetaDataStateStore.java | 3 ++-
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/server/base/src/main/java/org/apache/accumulo/server/manager/state/AbstractTabletStateStore.java b/server/base/src/main/java/org/apache/accumulo/server/manager/state/AbstractTabletStateStore.java
index 2fa80a0750..a0ffa8bc28 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/manager/state/AbstractTabletStateStore.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/manager/state/AbstractTabletStateStore.java
@@ -52,6 +52,7 @@ public abstract class AbstractTabletStateStore implements TabletStateStore {
var conditionalMutator = tabletsMutator.mutateTablet(assignment.tablet)
.requireAbsentOperation()
.requireLocation(TabletMetadata.Location.future(assignment.server))
+ .requirePrevEndRow(assignment.tablet.prevEndRow())
.putLocation(TabletMetadata.Location.current(assignment.server))
.deleteLocation(TabletMetadata.Location.future(assignment.server)).deleteSuspension();
@@ -81,8 +82,8 @@ public abstract class AbstractTabletStateStore implements TabletStateStore {
try (var tabletsMutator = ample.conditionallyMutateTablets()) {
for (Assignment assignment : assignments) {
tabletsMutator.mutateTablet(assignment.tablet).requireAbsentOperation()
- .requireAbsentLocation().deleteSuspension()
- .putLocation(TabletMetadata.Location.future(assignment.server))
+ .requireAbsentLocation().requirePrevEndRow(assignment.tablet.prevEndRow())
+ .deleteSuspension().putLocation(TabletMetadata.Location.future(assignment.server))
.submit(tabletMetadata -> {
Preconditions.checkArgument(tabletMetadata.getExtent().equals(assignment.tablet));
return tabletMetadata.getLocation() != null && tabletMetadata.getLocation()
@@ -123,7 +124,8 @@ public abstract class AbstractTabletStateStore implements TabletStateStore {
throws DistributedStoreException {
try (var tabletsMutator = ample.conditionallyMutateTablets()) {
for (TabletMetadata tm : tablets) {
- var tabletMutator = tabletsMutator.mutateTablet(tm.getExtent()).requireAbsentOperation();
+ var tabletMutator = tabletsMutator.mutateTablet(tm.getExtent()).requireAbsentOperation()
+ .requirePrevEndRow(tm.getExtent().prevEndRow());
if (tm.hasCurrent()) {
tabletMutator.requireLocation(tm.getLocation());
diff --git a/server/base/src/main/java/org/apache/accumulo/server/manager/state/MetaDataStateStore.java b/server/base/src/main/java/org/apache/accumulo/server/manager/state/MetaDataStateStore.java
index 024751444f..9874928885 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/manager/state/MetaDataStateStore.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/manager/state/MetaDataStateStore.java
@@ -61,7 +61,8 @@ class MetaDataStateStore extends AbstractTabletStateStore implements TabletState
}
// ELASTICITY_TODO pending #3314, add conditional mutation check that tls.suspend exists
- tabletsMutator.mutateTablet(tm.getExtent()).requireAbsentOperation().deleteSuspension()
+ tabletsMutator.mutateTablet(tm.getExtent()).requireAbsentOperation()
+ .requirePrevEndRow(tm.getExtent().prevEndRow()).deleteSuspension()
.submit(tabletMetadata -> tabletMetadata.getSuspend() == null);
}