Github user aweisberg commented on a diff in the pull request:
https://github.com/apache/cassandra/pull/239#discussion_r202476142
--- Diff: src/java/org/apache/cassandra/db/DiskBoundaries.java ---
@@ -129,4 +129,19 @@ public int
getBoundariesFromSSTableDirectory(Descriptor descriptor)
{
return directories.get(getDiskIndex(sstable));
}
+
+ public Directories.DataDirectory getCorrectDiskForKey(DecoratedKey key)
+ {
+ if (positions == null)
+ return null;
+
+ return directories.get(getDiskIndex(key));
+ }
+
+ private int getDiskIndex(DecoratedKey key)
+ {
+ int pos = Collections.binarySearch(positions, key);
--- End diff --
OK so this is insertion point, and then -1 because the of 0 based indexing?
Can you unit test this just to make sure that it find the correct spot?
I'm just not following the -1 I guess because Collections.binarySearch says
insertion point -1 is what is returned. What if the key happens to be out of
range of the ranges this node owns? This would go out of bounds?
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]