Skip to content

Commit 26af3b6

Browse files
committed
Adjust backports for #14157 & #14174
1 parent 29e681b commit 26af3b6

File tree

15 files changed

+80
-0
lines changed

15 files changed

+80
-0
lines changed

Diff for: lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/lucene90/Lucene90HnswVectorsReader.java

+5
Original file line numberDiff line numberDiff line change
@@ -488,6 +488,11 @@ public int entryNode() {
488488
throw new UnsupportedOperationException();
489489
}
490490

491+
@Override
492+
public int maxConn() {
493+
throw new UnsupportedOperationException();
494+
}
495+
491496
@Override
492497
public NodesIterator getNodesOnLevel(int level) {
493498
throw new UnsupportedOperationException();

Diff for: lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/lucene90/Lucene90OnHeapHnswGraph.java

+5
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,11 @@ public int entryNode() {
198198
throw new UnsupportedOperationException();
199199
}
200200

201+
@Override
202+
public int maxConn() {
203+
return maxConn;
204+
}
205+
201206
@Override
202207
public NodesIterator getNodesOnLevel(int level) {
203208
throw new UnsupportedOperationException();

Diff for: lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/lucene91/Lucene91HnswVectorsReader.java

+5
Original file line numberDiff line numberDiff line change
@@ -548,6 +548,11 @@ public int entryNode() {
548548
return entryNode;
549549
}
550550

551+
@Override
552+
public int maxConn() {
553+
return (int) bytesForConns / Integer.BYTES - 1;
554+
}
555+
551556
@Override
552557
public NodesIterator getNodesOnLevel(int level) {
553558
if (level == 0) {

Diff for: lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/lucene91/Lucene91OnHeapHnswGraph.java

+5
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,11 @@ public int entryNode() {
160160
return entryNode;
161161
}
162162

163+
@Override
164+
public int maxConn() {
165+
return maxConn;
166+
}
167+
163168
@Override
164169
public NodesIterator getNodesOnLevel(int level) {
165170
if (level == 0) {

Diff for: lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/lucene92/Lucene92HnswVectorsReader.java

+5
Original file line numberDiff line numberDiff line change
@@ -459,6 +459,11 @@ public int entryNode() {
459459
return entryNode;
460460
}
461461

462+
@Override
463+
public int maxConn() {
464+
return (int) bytesForConns / Integer.BYTES - 1;
465+
}
466+
462467
@Override
463468
public NodesIterator getNodesOnLevel(int level) {
464469
if (level == 0) {

Diff for: lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/lucene94/Lucene94HnswVectorsReader.java

+7
Original file line numberDiff line numberDiff line change
@@ -448,6 +448,7 @@ private static final class OffHeapHnswGraph extends HnswGraph {
448448
final int size;
449449
final long bytesForConns;
450450
final long bytesForConns0;
451+
final int maxConn;
451452

452453
int arcCount;
453454
int arcUpTo;
@@ -463,6 +464,7 @@ private static final class OffHeapHnswGraph extends HnswGraph {
463464
this.bytesForConns = Math.multiplyExact(Math.addExact(entry.M, 1L), Integer.BYTES);
464465
this.bytesForConns0 =
465466
Math.multiplyExact(Math.addExact(Math.multiplyExact(entry.M, 2L), 1), Integer.BYTES);
467+
maxConn = entry.M;
466468
}
467469

468470
@Override
@@ -501,6 +503,11 @@ public int numLevels() {
501503
return numLevels;
502504
}
503505

506+
@Override
507+
public int maxConn() {
508+
return maxConn;
509+
}
510+
504511
@Override
505512
public int entryNode() {
506513
return entryNode;

Diff for: lucene/backward-codecs/src/java/org/apache/lucene/backward_codecs/lucene95/Lucene95HnswVectorsReader.java

+5
Original file line numberDiff line numberDiff line change
@@ -537,6 +537,11 @@ public int entryNode() throws IOException {
537537
return entryNode;
538538
}
539539

540+
@Override
541+
public int maxConn() {
542+
return currentNeighborsBuffer.length / 2;
543+
}
544+
540545
@Override
541546
public NodesIterator getNodesOnLevel(int level) {
542547
if (level == 0) {

Diff for: lucene/backward-codecs/src/test/org/apache/lucene/backward_codecs/lucene94/Lucene94HnswVectorsWriter.java

+5
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,11 @@ public int numLevels() {
334334
return graph.numLevels();
335335
}
336336

337+
@Override
338+
public int maxConn() {
339+
return graph.maxConn();
340+
}
341+
337342
@Override
338343
public int entryNode() {
339344
throw new UnsupportedOperationException("Not supported on a mock graph");

Diff for: lucene/backward-codecs/src/test/org/apache/lucene/backward_codecs/lucene95/Lucene95HnswVectorsWriter.java

+5
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,11 @@ public int entryNode() {
366366
throw new UnsupportedOperationException("Not supported on a mock graph");
367367
}
368368

369+
@Override
370+
public int maxConn() {
371+
throw new UnsupportedOperationException("Not supported on a mock graph");
372+
}
373+
369374
@Override
370375
public NodesIterator getNodesOnLevel(int level) {
371376
if (level == 0) {

Diff for: lucene/core/src/java/org/apache/lucene/codecs/lucene99/Lucene99HnswVectorsReader.java

+5
Original file line numberDiff line numberDiff line change
@@ -526,6 +526,11 @@ public int numLevels() throws IOException {
526526
return numLevels;
527527
}
528528

529+
@Override
530+
public int maxConn() {
531+
return currentNeighborsBuffer.length >> 1;
532+
}
533+
529534
@Override
530535
public int entryNode() throws IOException {
531536
return entryNode;

Diff for: lucene/core/src/java/org/apache/lucene/codecs/lucene99/Lucene99HnswVectorsWriter.java

+5
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,11 @@ public int numLevels() {
294294
return graph.numLevels();
295295
}
296296

297+
@Override
298+
public int maxConn() {
299+
return graph.maxConn();
300+
}
301+
297302
@Override
298303
public int entryNode() {
299304
throw new UnsupportedOperationException("Not supported on a mock graph");

Diff for: lucene/core/src/java/org/apache/lucene/util/hnsw/HnswGraph.java

+8
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,9 @@ public int maxNodeId() {
8484
/** Returns the number of levels of the graph */
8585
public abstract int numLevels() throws IOException;
8686

87+
/** returns M, the maximum number of connections for a node. */
88+
public abstract int maxConn() throws IOException;
89+
8790
/** Returns graph's entry point on the top level * */
8891
public abstract int entryNode() throws IOException;
8992

@@ -118,6 +121,11 @@ public int numLevels() {
118121
return 0;
119122
}
120123

124+
@Override
125+
public int maxConn() {
126+
return 0;
127+
}
128+
121129
@Override
122130
public int entryNode() {
123131
return 0;

Diff for: lucene/core/src/java/org/apache/lucene/util/hnsw/OnHeapHnswGraph.java

+5
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,11 @@ public int entryNode() {
192192
return entryNode.get().node;
193193
}
194194

195+
@Override
196+
public int maxConn() {
197+
return nsize - 1;
198+
}
199+
195200
/**
196201
* Try to set the entry node if the graph does not have one
197202
*

Diff for: lucene/core/src/test/org/apache/lucene/util/hnsw/HnswGraphTestCase.java

+5
Original file line numberDiff line numberDiff line change
@@ -1337,6 +1337,11 @@ public int entryNode() throws IOException {
13371337
return delegate.entryNode();
13381338
}
13391339

1340+
@Override
1341+
public int maxConn() throws IOException {
1342+
return delegate.maxConn();
1343+
}
1344+
13401345
@Override
13411346
public NodesIterator getNodesOnLevel(int level) throws IOException {
13421347
return delegate.getNodesOnLevel(level);

Diff for: lucene/core/src/test/org/apache/lucene/util/hnsw/TestHnswUtil.java

+5
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,11 @@ public int entryNode() {
250250
return 0;
251251
}
252252

253+
@Override
254+
public int maxConn() {
255+
return 0;
256+
}
257+
253258
@Override
254259
public String toString() {
255260
StringBuilder buf = new StringBuilder();

0 commit comments

Comments
 (0)