Remove ReftableNumbersNotIncreasingException
In a distributed setting, one can have multiple datacenters use reftables for serving, while the ground truth for the Ref database is administered centrally. In this setting, replication delays combined with compaction can cause update-index ranges to overlap. Such a setting is used at Google, and the JGit code already handles this correctly (modulo a bugfix that applied in change I8f8215b99a). Remove the restriction that was applied at FileReftableDatabase. Signed-off-by: Han-Wen Nienhuys <hanwen@google.com> Change-Id: I6f9ed0fbd7fbc5220083ab808b22a909215f13a9
This commit is contained in:
parent
f621c31f4c
commit
540b29bf42
|
@ -128,33 +128,6 @@ CompactionStats getStats() {
|
|||
return stats;
|
||||
}
|
||||
|
||||
/** Thrown if the update indices in the stack are not monotonic */
|
||||
public static class ReftableNumbersNotIncreasingException
|
||||
extends RuntimeException {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
String name;
|
||||
|
||||
long lastMax;
|
||||
|
||||
long min;
|
||||
|
||||
ReftableNumbersNotIncreasingException(String name, long lastMax,
|
||||
long min) {
|
||||
this.name = name;
|
||||
this.lastMax = lastMax;
|
||||
this.min = min;
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "nls", "boxing" })
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format(
|
||||
"ReftableNumbersNotIncreasingException %s: min %d, lastMax %d",
|
||||
name, min, lastMax);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reloads the stack, potentially reusing opened reftableReaders.
|
||||
*
|
||||
|
@ -173,7 +146,6 @@ private void reloadOnce(List<String> names)
|
|||
List<ReftableReader> newTables = new ArrayList<>();
|
||||
List<StackEntry> newStack = new ArrayList<>(stack.size() + 1);
|
||||
try {
|
||||
ReftableReader last = null;
|
||||
for (String name : names) {
|
||||
StackEntry entry = new StackEntry();
|
||||
entry.name = name;
|
||||
|
@ -191,15 +163,6 @@ private void reloadOnce(List<String> names)
|
|||
newTables.add(t);
|
||||
}
|
||||
|
||||
if (last != null) {
|
||||
// TODO: move this to MergedReftable
|
||||
if (last.maxUpdateIndex() >= t.minUpdateIndex()) {
|
||||
throw new ReftableNumbersNotIncreasingException(name,
|
||||
last.maxUpdateIndex(), t.minUpdateIndex());
|
||||
}
|
||||
}
|
||||
last = t;
|
||||
|
||||
entry.reftableReader = t;
|
||||
newStack.add(entry);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue