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 <[email protected]>
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);
}