You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by do...@apache.org on 2023/11/13 15:17:52 UTC
(accumulo) branch main updated: Remove timestamp from LogEntry (#3942)
This is an automated email from the ASF dual-hosted git repository.
domgarguilo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/main by this push:
new 58b6e8b2c6 Remove timestamp from LogEntry (#3942)
58b6e8b2c6 is described below
commit 58b6e8b2c6edb39be8d4d9b40892496bc6c6183a
Author: Dom G <do...@apache.org>
AuthorDate: Mon Nov 13 10:17:47 2023 -0500
Remove timestamp from LogEntry (#3942)
---
.../accumulo/core/tabletserver/log/LogEntry.java | 17 +++++------------
.../core/metadata/schema/TabletMetadataTest.java | 14 ++++++--------
.../accumulo/core/tabletserver/log/LogEntryTest.java | 20 +++++++-------------
.../server/manager/state/MetaDataStateStore.java | 2 +-
.../server/manager/state/ZooTabletStateStore.java | 2 +-
.../org/apache/accumulo/tserver/TabletServer.java | 4 +---
.../test/MissingWalHeaderCompletesRecoveryIT.java | 4 ++--
.../apache/accumulo/test/manager/MergeStateIT.java | 6 +++---
8 files changed, 26 insertions(+), 43 deletions(-)
diff --git a/core/src/main/java/org/apache/accumulo/core/tabletserver/log/LogEntry.java b/core/src/main/java/org/apache/accumulo/core/tabletserver/log/LogEntry.java
index 70c10f4e4b..d3b6f5ac02 100644
--- a/core/src/main/java/org/apache/accumulo/core/tabletserver/log/LogEntry.java
+++ b/core/src/main/java/org/apache/accumulo/core/tabletserver/log/LogEntry.java
@@ -30,19 +30,13 @@ import com.google.common.net.HostAndPort;
public class LogEntry {
- private final long timestamp;
private final String filePath;
- public LogEntry(long timestamp, String filePath) {
+ public LogEntry(String filePath) {
validateFilePath(filePath);
- this.timestamp = timestamp;
this.filePath = filePath;
}
- public long getTimestamp() {
- return this.timestamp;
- }
-
public String getFilePath() {
return this.filePath;
}
@@ -87,7 +81,7 @@ public class LogEntry {
* @param filePath path to use
*/
public LogEntry switchFile(String filePath) {
- return new LogEntry(timestamp, filePath);
+ return new LogEntry(filePath);
}
@Override
@@ -104,23 +98,22 @@ public class LogEntry {
return false;
}
LogEntry logEntry = (LogEntry) other;
- return this.timestamp == logEntry.timestamp && this.filePath.equals(logEntry.filePath);
+ return this.filePath.equals(logEntry.filePath);
}
@Override
public int hashCode() {
- return Objects.hash(timestamp, filePath);
+ return Objects.hash(filePath);
}
public static LogEntry fromMetaWalEntry(Entry<Key,Value> entry) {
- final Key key = entry.getKey();
final Value value = entry.getValue();
String filePath = value.toString();
validateFilePath(filePath);
- return new LogEntry(key.getTimestamp(), filePath);
+ return new LogEntry(filePath);
}
public String getUniqueID() {
diff --git a/core/src/test/java/org/apache/accumulo/core/metadata/schema/TabletMetadataTest.java b/core/src/test/java/org/apache/accumulo/core/metadata/schema/TabletMetadataTest.java
index 4f1d99f755..a3a3d33a45 100644
--- a/core/src/test/java/org/apache/accumulo/core/metadata/schema/TabletMetadataTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/metadata/schema/TabletMetadataTest.java
@@ -101,12 +101,12 @@ public class TabletMetadataTest {
mutation.at().family(LastLocationColumnFamily.NAME).qualifier("s000").put("server2:8555");
- LogEntry le1 = new LogEntry(55, "localhost:8020/" + UUID.randomUUID());
+ LogEntry le1 = new LogEntry("localhost:8020/" + UUID.randomUUID());
mutation.at().family(LogColumnFamily.NAME).qualifier(le1.getColumnQualifier())
- .timestamp(le1.getTimestamp()).put(le1.getValue());
- LogEntry le2 = new LogEntry(57, "localhost:8020/" + UUID.randomUUID());
+ .put(le1.getValue());
+ LogEntry le2 = new LogEntry("localhost:8020/" + UUID.randomUUID());
mutation.at().family(LogColumnFamily.NAME).qualifier(le2.getColumnQualifier())
- .timestamp(le2.getTimestamp()).put(le2.getValue());
+ .put(le2.getValue());
StoredTabletFile sf1 = StoredTabletFile.of(new Path("hdfs://nn1/acc/tables/1/t-0001/sf1.rf"));
StoredTabletFile sf2 = StoredTabletFile.of(new Path("hdfs://nn1/acc/tables/1/t-0001/sf2.rf"));
@@ -136,10 +136,8 @@ public class TabletMetadataTest {
assertEquals(HostAndPort.fromParts("server2", 8555), tm.getLast().getHostAndPort());
assertEquals("s000", tm.getLast().getSession());
assertEquals(LocationType.LAST, tm.getLast().getType());
- assertEquals(
- Set.of(le1.getValue() + " " + le1.getTimestamp(),
- le2.getValue() + " " + le2.getTimestamp()),
- tm.getLogs().stream().map(le -> le.getValue() + " " + le.getTimestamp()).collect(toSet()));
+ assertEquals(Set.of(le1.getValue(), le2.getValue()),
+ tm.getLogs().stream().map(LogEntry::getValue).collect(toSet()));
assertEquals(extent.prevEndRow(), tm.getPrevEndRow());
assertEquals(extent.tableId(), tm.getTableId());
assertTrue(tm.sawPrevEndRow());
diff --git a/core/src/test/java/org/apache/accumulo/core/tabletserver/log/LogEntryTest.java b/core/src/test/java/org/apache/accumulo/core/tabletserver/log/LogEntryTest.java
index 9e4f17cd08..69ae830fc2 100644
--- a/core/src/test/java/org/apache/accumulo/core/tabletserver/log/LogEntryTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/tabletserver/log/LogEntryTest.java
@@ -47,19 +47,16 @@ public class LogEntryTest {
@Test
public void test() throws Exception {
- long ts = 12345678L;
String uuid = UUID.randomUUID().toString();
String filename = Path.of("default", uuid).toString();
- LogEntry entry = new LogEntry(ts, filename);
+ LogEntry entry = new LogEntry(filename);
assertEquals(filename, entry.getFilePath());
- assertEquals(ts, entry.getTimestamp());
assertEquals(filename, entry.toString());
assertEquals(new Text("log"), MetadataSchema.TabletsSection.LogColumnFamily.NAME);
assertEquals(new Text("-/" + filename), entry.getColumnQualifier());
Key key = new Key(new Text("1<"), new Text("log"), new Text("localhost:1234/default/foo"));
- key.setTimestamp(ts);
var mapEntry = new Entry<Key,Value>() {
@Override
public Key getKey() {
@@ -78,7 +75,6 @@ public class LogEntryTest {
};
LogEntry copy2 = LogEntry.fromMetaWalEntry(mapEntry);
assertEquals(entry.toString(), copy2.toString());
- assertEquals(entry.getTimestamp(), copy2.getTimestamp());
assertEquals(uuid, entry.getUniqueID());
assertEquals("-/" + filename, entry.getColumnQualifier().toString());
assertEquals(new Value(filename), entry.getValue());
@@ -86,10 +82,8 @@ public class LogEntryTest {
@Test
public void testEquals() {
- long ts = 123456L;
-
- LogEntry one = new LogEntry(ts, validFilename);
- LogEntry two = new LogEntry(ts, validFilename);
+ LogEntry one = new LogEntry(validFilename);
+ LogEntry two = new LogEntry(validFilename);
assertNotSame(one, two);
assertEquals(one.toString(), two.toString());
@@ -112,7 +106,7 @@ public class LogEntryTest {
Path validPath3 = Path.of("dir2", validPath2.toString());
Stream.of(validPath, validPath2, validPath3).map(Path::toString)
- .forEach(validFilePath -> assertDoesNotThrow(() -> new LogEntry(1L, validFilePath)));
+ .forEach(validFilePath -> assertDoesNotThrow(() -> new LogEntry(validFilePath)));
}
@Test
@@ -121,7 +115,7 @@ public class LogEntryTest {
for (String badFilePath : badFilePaths) {
IllegalArgumentException iae =
- assertThrows(IllegalArgumentException.class, () -> new LogEntry(1L, badFilePath));
+ assertThrows(IllegalArgumentException.class, () -> new LogEntry(badFilePath));
assertTrue(iae.getMessage().contains("The path should at least contain tserver/UUID."));
}
}
@@ -132,7 +126,7 @@ public class LogEntryTest {
final Path badFilepathHostPort = Path.of(badHostAndPort, validUUID.toString());
IllegalArgumentException iae = assertThrows(IllegalArgumentException.class,
- () -> new LogEntry(1L, badFilepathHostPort.toString()));
+ () -> new LogEntry(badFilepathHostPort.toString()));
assertTrue(
iae.getMessage().contains("Expected format: host:port. Found '" + badHostAndPort + "'"));
}
@@ -143,7 +137,7 @@ public class LogEntryTest {
String filePathWithBadUUID = Path.of(validHost.toString(), badUUID).toString();
IllegalArgumentException iae =
- assertThrows(IllegalArgumentException.class, () -> new LogEntry(1L, filePathWithBadUUID));
+ assertThrows(IllegalArgumentException.class, () -> new LogEntry(filePathWithBadUUID));
assertTrue(iae.getMessage().contains("Expected valid UUID. Found '" + badUUID + "'"));
}
}
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 9a4d166f83..7352eff601 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
@@ -123,7 +123,7 @@ class MetaDataStateStore implements TabletStateStore {
List<Path> logs = logsForDeadServers.get(tls.current.getServerInstance());
if (logs != null) {
for (Path log : logs) {
- LogEntry entry = new LogEntry(0, log.toString());
+ LogEntry entry = new LogEntry(log.toString());
tabletMutator.putWal(entry);
}
}
diff --git a/server/base/src/main/java/org/apache/accumulo/server/manager/state/ZooTabletStateStore.java b/server/base/src/main/java/org/apache/accumulo/server/manager/state/ZooTabletStateStore.java
index 5ea3e8ac15..c6bc4bef39 100644
--- a/server/base/src/main/java/org/apache/accumulo/server/manager/state/ZooTabletStateStore.java
+++ b/server/base/src/main/java/org/apache/accumulo/server/manager/state/ZooTabletStateStore.java
@@ -176,7 +176,7 @@ class ZooTabletStateStore implements TabletStateStore {
List<Path> logs = logsForDeadServers.get(futureOrCurrent);
if (logs != null) {
for (Path entry : logs) {
- LogEntry logEntry = new LogEntry(System.currentTimeMillis(), entry.toString());
+ LogEntry logEntry = new LogEntry(entry.toString());
tabletMutator.putWal(logEntry);
}
}
diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
index 08c6ca9caf..4b610d72ca 100644
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
@@ -1101,9 +1101,7 @@ public class TabletServer extends AbstractServer implements TabletHostingServer
public void recover(VolumeManager fs, KeyExtent extent, List<LogEntry> logEntries,
Set<String> tabletFiles, MutationReceiver mutationReceiver) throws IOException {
List<Path> recoveryDirs = new ArrayList<>();
- List<LogEntry> sorted = new ArrayList<>(logEntries);
- sorted.sort((e1, e2) -> (int) (e1.getTimestamp() - e2.getTimestamp()));
- for (LogEntry entry : sorted) {
+ for (LogEntry entry : logEntries) {
Path recovery = null;
Path finished = RecoveryPath.getRecoveryPath(new Path(entry.getFilePath()));
finished = SortedLogState.getFinishedMarkerPath(finished);
diff --git a/test/src/main/java/org/apache/accumulo/test/MissingWalHeaderCompletesRecoveryIT.java b/test/src/main/java/org/apache/accumulo/test/MissingWalHeaderCompletesRecoveryIT.java
index d89b77fb00..983f9217d8 100644
--- a/test/src/main/java/org/apache/accumulo/test/MissingWalHeaderCompletesRecoveryIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/MissingWalHeaderCompletesRecoveryIT.java
@@ -137,7 +137,7 @@ public class MissingWalHeaderCompletesRecoveryIT extends ConfigurableMacBase {
TableId tableId = TableId.of(client.tableOperations().tableIdMap().get(tableName));
assertNotNull(tableId, "Table ID was null");
- LogEntry logEntry = new LogEntry(0, emptyWalog.toURI().toString());
+ LogEntry logEntry = new LogEntry(emptyWalog.toURI().toString());
log.info("Taking {} offline", tableName);
client.tableOperations().offline(tableName, true);
@@ -196,7 +196,7 @@ public class MissingWalHeaderCompletesRecoveryIT extends ConfigurableMacBase {
TableId tableId = TableId.of(client.tableOperations().tableIdMap().get(tableName));
assertNotNull(tableId, "Table ID was null");
- LogEntry logEntry = new LogEntry(0, partialHeaderWalog.toURI().toString());
+ LogEntry logEntry = new LogEntry(partialHeaderWalog.toURI().toString());
log.info("Taking {} offline", tableName);
client.tableOperations().offline(tableName, true);
diff --git a/test/src/main/java/org/apache/accumulo/test/manager/MergeStateIT.java b/test/src/main/java/org/apache/accumulo/test/manager/MergeStateIT.java
index c5bb29710a..8d246c5c3c 100644
--- a/test/src/main/java/org/apache/accumulo/test/manager/MergeStateIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/manager/MergeStateIT.java
@@ -202,9 +202,9 @@ public class MergeStateIT extends ConfigurableMacBase {
// Add a walog which should keep the state from transitioning to MERGING
KeyExtent ke = new KeyExtent(tableId, new Text("t"), new Text("p"));
m = new Mutation(ke.toMetaRow());
- LogEntry logEntry = new LogEntry(100, "f1");
+ LogEntry logEntry = new LogEntry("f1");
m.at().family(LogColumnFamily.NAME).qualifier(logEntry.getColumnQualifier())
- .timestamp(logEntry.getTimestamp()).put(logEntry.getValue());
+ .put(logEntry.getValue());
update(accumuloClient, m);
// Verify state is still WAITING_FOR_OFFLINE
@@ -214,7 +214,7 @@ public class MergeStateIT extends ConfigurableMacBase {
// Delete the walog which will now allow a transition to MERGING
m = new Mutation(ke.toMetaRow());
- m.putDelete(LogColumnFamily.NAME, logEntry.getColumnQualifier(), logEntry.getTimestamp());
+ m.putDelete(LogColumnFamily.NAME, logEntry.getColumnQualifier());
update(accumuloClient, m);
// now we can split