Skip to content

Commit

Permalink
Remove ZK compaction and compaction cancellation ids (apache#3963)
Browse files Browse the repository at this point in the history
Removed compact columns during upgrade and from code

Fixes apache#3584
  • Loading branch information
dlmarion authored Dec 1, 2023
1 parent 314e87c commit f1c3312
Show file tree
Hide file tree
Showing 17 changed files with 135 additions and 84 deletions.
5 changes: 0 additions & 5 deletions core/src/main/java/org/apache/accumulo/core/Constants.java
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,6 @@ public class Constants {
public static final String ZTABLE_STATE = "/state";
public static final String ZTABLE_FLUSH_ID = "/flush-id";

// ELASTICITY_TODO delete from code and remove from ZK in upgrade
public static final String ZTABLE_COMPACT_ID = "/compact-id";

// ELASTICITY_TODO delete from code and remove from ZK in upgrade
public static final String ZTABLE_COMPACT_CANCEL_ID = "/compact-cancel-id";
public static final String ZTABLE_NAMESPACE = "/namespace";

public static final String ZNAMESPACES = "/namespaces";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -357,8 +357,6 @@ interface TabletUpdates<T> {

T deleteScan(StoredTabletFile path);

T putCompactionId(long compactionId);

T putFlushId(long flushId);

T putLocation(Location location);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -242,9 +242,6 @@ public static void validateDirCol(String dirName) {
public static final String FLUSH_QUAL = "flush";
public static final ColumnFQ FLUSH_COLUMN = new ColumnFQ(NAME, new Text(FLUSH_QUAL));

// ELASTICITY_TODO remove this from code and remove it from metadata in upgrade
public static final String COMPACT_QUAL = "compact";
public static final ColumnFQ COMPACT_COLUMN = new ColumnFQ(NAME, new Text(COMPACT_QUAL));
/**
* Holds lock IDs to enable a sanity check to ensure that the TServer writing to the metadata
* tablet is not dead
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@

import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.HostingColumnFamily.GOAL_QUAL;
import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.HostingColumnFamily.REQUESTED_QUAL;
import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily.COMPACT_QUAL;
import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily.DIRECTORY_QUAL;
import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily.FLUSH_QUAL;
import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily.OPID_QUAL;
Expand Down Expand Up @@ -116,7 +115,6 @@ public class TabletMetadata {
private SortedMap<Key,Value> keyValues;
private OptionalLong flush = OptionalLong.empty();
private List<LogEntry> logs;
private OptionalLong compact = OptionalLong.empty();
private Double splitRatio = null;
private Map<ExternalCompactionId,ExternalCompactionMetadata> extCompactions;
private boolean merged;
Expand Down Expand Up @@ -147,7 +145,6 @@ public enum ColumnType {
CLONED,
FLUSH_ID,
LOGS,
COMPACT_ID,
SPLIT_RATIO,
SUSPEND,
ECOMP,
Expand Down Expand Up @@ -372,11 +369,6 @@ public OptionalLong getFlushId() {
return flush;
}

public OptionalLong getCompactId() {
ensureFetched(ColumnType.COMPACT_ID);
return compact;
}

public Double getSplitRatio() {
ensureFetched(ColumnType.SPLIT_RATIO);
return splitRatio;
Expand Down Expand Up @@ -411,9 +403,8 @@ public String toString() {
.append("fetchedCols", fetchedCols).append("extent", extent).append("last", last)
.append("suspend", suspend).append("dirName", dirName).append("time", time)
.append("cloned", cloned).append("flush", flush).append("logs", logs)
.append("compact", compact).append("splitRatio", splitRatio)
.append("extCompactions", extCompactions).append("goal", goal)
.append("onDemandHostingRequested", onDemandHostingRequested)
.append("splitRatio", splitRatio).append("extCompactions", extCompactions)
.append("goal", goal).append("onDemandHostingRequested", onDemandHostingRequested)
.append("operationId", operationId).append("selectedFiles", selectedFiles)
.append("futureAndCurrentLocationSet", futureAndCurrentLocationSet).toString();
}
Expand Down Expand Up @@ -514,9 +505,6 @@ public static <E extends Entry<Key,Value>> TabletMetadata convertRow(Iterator<E>
case FLUSH_QUAL:
te.flush = OptionalLong.of(Long.parseLong(val));
break;
case COMPACT_QUAL:
te.compact = OptionalLong.of(Long.parseLong(val));
break;
case OPID_QUAL:
te.setOperationIdOnce(val, suppressLocationError);
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
package org.apache.accumulo.core.metadata.schema;

import static org.apache.accumulo.core.metadata.schema.TabletMetadata.ColumnType.COMPACTED;
import static org.apache.accumulo.core.metadata.schema.TabletMetadata.ColumnType.COMPACT_ID;
import static org.apache.accumulo.core.metadata.schema.TabletMetadata.ColumnType.DIR;
import static org.apache.accumulo.core.metadata.schema.TabletMetadata.ColumnType.ECOMP;
import static org.apache.accumulo.core.metadata.schema.TabletMetadata.ColumnType.FILES;
Expand Down Expand Up @@ -115,13 +114,6 @@ public TabletMetadataBuilder deleteScan(StoredTabletFile path) {
throw new UnsupportedOperationException();
}

@Override
public TabletMetadataBuilder putCompactionId(long compactionId) {
fetched.add(COMPACT_ID);
internalBuilder.putCompactionId(compactionId);
return this;
}

@Override
public TabletMetadataBuilder putFlushId(long flushId) {
fetched.add(FLUSH_ID);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,13 +128,6 @@ public T deleteScan(StoredTabletFile path) {
return getThis();
}

@Override
public T putCompactionId(long compactionId) {
Preconditions.checkState(updatesEnabled, "Cannot make updates after calling mutate.");
ServerColumnFamily.COMPACT_COLUMN.put(mutation, new Value(Long.toString(compactionId)));
return getThis();
}

@Override
public T putFlushId(long flushId) {
Preconditions.checkState(updatesEnabled, "Cannot make updates after calling mutate.");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import static java.nio.charset.StandardCharsets.UTF_8;
import static java.util.stream.Collectors.groupingBy;
import static java.util.stream.Collectors.toList;
import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily.COMPACT_COLUMN;
import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily.DIRECTORY_COLUMN;
import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily.FLUSH_COLUMN;
import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily.OPID_COLUMN;
Expand Down Expand Up @@ -301,9 +300,6 @@ public Options fetch(ColumnType... colsToFetch) {
case CLONED:
families.add(ClonedColumnFamily.NAME);
break;
case COMPACT_ID:
qualifiers.add(COMPACT_COLUMN);
break;
case DIR:
qualifiers.add(DIRECTORY_COLUMN);
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
import static org.apache.accumulo.core.metadata.StoredTabletFile.serialize;
import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.MergedColumnFamily.MERGED_COLUMN;
import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.MergedColumnFamily.MERGED_VALUE;
import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily.COMPACT_COLUMN;
import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily.DIRECTORY_COLUMN;
import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily.FLUSH_COLUMN;
import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily.TIME_COLUMN;
Expand Down Expand Up @@ -91,7 +90,6 @@ public void testAllColumns() {

Mutation mutation = TabletColumnFamily.createPrevRowMutation(extent);

COMPACT_COLUMN.put(mutation, new Value("5"));
DIRECTORY_COLUMN.put(mutation, new Value("t-0001757"));
FLUSH_COLUMN.put(mutation, new Value("6"));
TIME_COLUMN.put(mutation, new Value("M123456789"));
Expand Down Expand Up @@ -134,7 +132,6 @@ public void testAllColumns() {
EnumSet.allOf(ColumnType.class), true, false);

assertEquals("OK", tm.getCloned());
assertEquals(5L, tm.getCompactId().getAsLong());
assertEquals("t-0001757", tm.getDirName());
assertEquals(extent.endRow(), tm.getEndRow());
assertEquals(extent, tm.getExtent());
Expand Down Expand Up @@ -351,14 +348,12 @@ public void testBuilder() {

TabletMetadata tm = TabletMetadata.builder(extent).putHostingGoal(TabletHostingGoal.NEVER)
.putLocation(Location.future(ser1)).putFile(sf1, dfv1).putFile(sf2, dfv2)
.putCompactionId(23).putBulkFile(rf1, 25).putBulkFile(rf2, 35).putFlushId(27)
.putDirName("dir1").putScan(sf3).putScan(sf4).putCompacted(17).putCompacted(23)
.build(ECOMP, HOSTING_REQUESTED, MERGED);
.putBulkFile(rf1, 25).putBulkFile(rf2, 35).putFlushId(27).putDirName("dir1").putScan(sf3)
.putScan(sf4).putCompacted(17).putCompacted(23).build(ECOMP, HOSTING_REQUESTED, MERGED);

assertEquals(extent, tm.getExtent());
assertEquals(TabletHostingGoal.NEVER, tm.getHostingGoal());
assertEquals(Location.future(ser1), tm.getLocation());
assertEquals(23L, tm.getCompactId().orElse(-1));
assertEquals(27L, tm.getFlushId().orElse(-1));
assertEquals(Map.of(sf1, dfv1, sf2, dfv2), tm.getFilesMap());
assertEquals(Map.of(rf1.insert(), 25L, rf2.insert(), 35L), tm.getLoaded());
Expand All @@ -380,7 +375,6 @@ public void testBuilder() {
assertNull(tm2.getLocation());
assertThrows(IllegalStateException.class, tm2::getFiles);
assertThrows(IllegalStateException.class, tm2::getHostingGoal);
assertThrows(IllegalStateException.class, tm2::getCompactId);
assertThrows(IllegalStateException.class, tm2::getFlushId);
assertThrows(IllegalStateException.class, tm2::getFiles);
assertThrows(IllegalStateException.class, tm2::getLogs);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,6 @@ public class MetadataConstraints implements Constraint {
ServerColumnFamily.TIME_COLUMN,
ServerColumnFamily.LOCK_COLUMN,
ServerColumnFamily.FLUSH_COLUMN,
ServerColumnFamily.COMPACT_COLUMN,
ServerColumnFamily.OPID_COLUMN,
HostingColumnFamily.GOAL_COLUMN,
HostingColumnFamily.REQUESTED_COLUMN,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,7 @@
package org.apache.accumulo.server.metadata;

import static java.nio.charset.StandardCharsets.UTF_8;
import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.LogColumnFamily;
import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.HostingColumnFamily.GOAL_COLUMN;
import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily.COMPACT_COLUMN;
import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily.FLUSH_COLUMN;
import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily.OPID_COLUMN;
import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily.SELECTED_COLUMN;
Expand All @@ -49,6 +47,7 @@
import org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.CompactedColumnFamily;
import org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.DataFileColumnFamily;
import org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ExternalCompactionColumnFamily;
import org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.LogColumnFamily;
import org.apache.accumulo.core.metadata.schema.TabletMetadata;
import org.apache.accumulo.core.metadata.schema.TabletMetadata.ColumnType;
import org.apache.accumulo.core.metadata.schema.TabletMetadata.Location;
Expand Down Expand Up @@ -163,15 +162,6 @@ private void requireSameSingle(TabletMetadata tabletMetadata, ColumnType type) {
switch (type) {
case PREV_ROW:
throw new IllegalStateException("PREV_ROW already set from Extent");
case COMPACT_ID: {
Condition c =
new Condition(COMPACT_COLUMN.getColumnFamily(), COMPACT_COLUMN.getColumnQualifier());
if (tabletMetadata.getCompactId().isPresent()) {
c = c.setValue(Long.toString(tabletMetadata.getCompactId().getAsLong()));
}
mutation.addCondition(c);
}
break;
case LOGS: {
Condition c = SetEqualityIterator.createCondition(new HashSet<>(tabletMetadata.getLogs()),
logEntry -> logEntry.getColumnQualifier().toString().getBytes(UTF_8),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,8 +104,6 @@ public static void prepareNewTableState(ZooReaderWriter zoo, PropStore propStore
zoo.putPersistentData(zTablePath + Constants.ZTABLE_NAME, tableName.getBytes(UTF_8),
existsPolicy);
zoo.putPersistentData(zTablePath + Constants.ZTABLE_FLUSH_ID, ZERO_BYTE, existsPolicy);
zoo.putPersistentData(zTablePath + Constants.ZTABLE_COMPACT_ID, ZERO_BYTE, existsPolicy);
zoo.putPersistentData(zTablePath + Constants.ZTABLE_COMPACT_CANCEL_ID, ZERO_BYTE, existsPolicy);
zoo.putPersistentData(zTablePath + Constants.ZTABLE_STATE, state.name().getBytes(UTF_8),
existsPolicy);
var propKey = TablePropKey.of(instanceId, tableId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public class ManagerMetadataUtil {
public static void addNewTablet(ServerContext context, KeyExtent extent, String dirName,
TServerInstance tServerInstance, Map<StoredTabletFile,DataFileValue> datafileSizes,
Map<Long,? extends Collection<ReferencedTabletFile>> bulkLoadedFiles, MetadataTime time,
long lastFlushID, long lastCompactID, ServiceLock zooLock) {
long lastFlushID, ServiceLock zooLock) {

// ELASTICITY_TODO intentionally not using conditional mutations for this code because its only
// called when tablets split. Tablet splitting will drastically change, so there is no need to
Expand All @@ -77,10 +77,6 @@ public static void addNewTablet(ServerContext context, KeyExtent extent, String
tablet.putFlushId(lastFlushID);
}

if (lastCompactID > 0) {
tablet.putCompactionId(lastCompactID);
}

if (tServerInstance != null) {
tablet.putLocation(Location.current(tServerInstance));
tablet.deleteLocation(Location.future(tServerInstance));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
*/
package org.apache.accumulo.server.manager.state;

import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily.COMPACT_COLUMN;
import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily.DIRECTORY_COLUMN;
import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily.FLUSH_COLUMN;
import static org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ServerColumnFamily.TIME_COLUMN;
Expand Down Expand Up @@ -73,7 +72,6 @@ private SortedMap<Key,Value> createMetadataEntryKV(KeyExtent extent) {

Mutation mutation = TabletColumnFamily.createPrevRowMutation(extent);

COMPACT_COLUMN.put(mutation, new Value("5"));
DIRECTORY_COLUMN.put(mutation, new Value("t-0001757"));
FLUSH_COLUMN.put(mutation, new Value("6"));
TIME_COLUMN.put(mutation, new Value("M123456789"));
Expand Down
Loading

0 comments on commit f1c3312

Please sign in to comment.