MCPcopy Create free account
hub / github.com/e2wugui/zeze / locateMiddle

Method locateMiddle

ZezeJava/ZezeJava/src/main/java/Zeze/Dbh2/Dbh2.java:523–541  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

521 }
522
523 private RocksIterator locateMiddle() throws RocksDBException {
524 var bucket = stateMachine.getBucket();
525 var it = bucket.getData().iterator();
526 var keyNumbers = bucket.getData().getKeyNumbers();
527 var count = keyNumbers / 2;
528 if (count <= 0) // 这里可以考虑配置一个较大的值,即记录数很少的时候不分桶。
529 return null;
530 for (it.seekToFirst(); it.isValid() && count > 0; it.next(), --count) {
531 // searching middle
532 }
533 if (!it.isValid()) {
534 it.close();
535 throw new RocksDBException("middle key not found.");
536 }
537 logger.info("splitting start locateMiddle keyNumbers={} middle={} {}",
538 keyNumbers, new Binary(it.key()),
539 formatMeta(stateMachine.getBucket().getBucketMeta()));
540 return it;
541 }
542
543 private RocksIterator locateMiddle(Binary middleKey) {
544 var it = stateMachine.getBucket().getData().iterator();

Callers 1

startSplitMethod · 0.95

Calls 15

formatMetaMethod · 0.95
copyIfMethod · 0.95
getBucketMethod · 0.80
getKeyNumbersMethod · 0.80
isValidMethod · 0.80
getBucketMetaMethod · 0.80
bytesUnsafeMethod · 0.80
getDataMethod · 0.65
nextMethod · 0.65
closeMethod · 0.65
keyMethod · 0.65
getOffsetMethod · 0.65

Tested by

no test coverage detected