Skip to content

Commit 597d08b

Browse files
committed
removed efSearch from HNSW
1 parent 699fe11 commit 597d08b

File tree

2 files changed

+14
-24
lines changed
  • fdb-extensions/src

2 files changed

+14
-24
lines changed

fdb-extensions/src/main/java/com/apple/foundationdb/async/hnsw/HNSW.java

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,6 @@ public static class Config {
123123
private final int m;
124124
private final int mMax;
125125
private final int mMax0;
126-
private final int efSearch;
127126
private final int efConstruction;
128127
private final boolean extendCandidates;
129128
private final boolean keepPrunedConnections;
@@ -135,22 +134,20 @@ protected Config() {
135134
this.m = DEFAULT_M;
136135
this.mMax = DEFAULT_M_MAX;
137136
this.mMax0 = DEFAULT_M_MAX_0;
138-
this.efSearch = DEFAULT_EF_SEARCH;
139137
this.efConstruction = DEFAULT_EF_CONSTRUCTION;
140138
this.extendCandidates = DEFAULT_EXTEND_CANDIDATES;
141139
this.keepPrunedConnections = DEFAULT_KEEP_PRUNED_CONNECTIONS;
142140
}
143141

144142
protected Config(@Nonnull final Random random, @Nonnull final Metric metric, final boolean useInlining,
145-
final int m, final int mMax, final int mMax0, final int efSearch, final int efConstruction,
143+
final int m, final int mMax, final int mMax0, final int efConstruction,
146144
final boolean extendCandidates, final boolean keepPrunedConnections) {
147145
this.random = random;
148146
this.metric = metric;
149147
this.useInlining = useInlining;
150148
this.m = m;
151149
this.mMax = mMax;
152150
this.mMax0 = mMax0;
153-
this.efSearch = efSearch;
154151
this.efConstruction = efConstruction;
155152
this.extendCandidates = extendCandidates;
156153
this.keepPrunedConnections = keepPrunedConnections;
@@ -182,10 +179,6 @@ public int getMMax0() {
182179
return mMax0;
183180
}
184181

185-
public int getEfSearch() {
186-
return efSearch;
187-
}
188-
189182
public int getEfConstruction() {
190183
return efConstruction;
191184
}
@@ -201,15 +194,15 @@ public boolean isKeepPrunedConnections() {
201194
@Nonnull
202195
public ConfigBuilder toBuilder() {
203196
return new ConfigBuilder(getRandom(), getMetric(), isUseInlining(), getM(), getMMax(), getMMax0(),
204-
getEfSearch(), getEfConstruction(), isExtendCandidates(), isKeepPrunedConnections());
197+
getEfConstruction(), isExtendCandidates(), isKeepPrunedConnections());
205198
}
206199

207200
@Override
208201
@Nonnull
209202
public String toString() {
210203
return "Config[metric=" + getMetric() + "isUseInlining" + isUseInlining() + "M=" + getM() +
211-
" , MMax=" + getMMax() + " , MMax0=" + getMMax0() + ", efSearch=" + getEfSearch() +
212-
", efConstruction=" + getEfConstruction() + ", isExtendCandidates=" + isExtendCandidates() +
204+
" , MMax=" + getMMax() + " , MMax0=" + getMMax0() + ", efConstruction=" + getEfConstruction() +
205+
", isExtendCandidates=" + isExtendCandidates() +
213206
", isKeepPrunedConnections=" + isKeepPrunedConnections() + "]";
214207
}
215208
}
@@ -230,7 +223,6 @@ public static class ConfigBuilder {
230223
private int m = DEFAULT_M;
231224
private int mMax = DEFAULT_M_MAX;
232225
private int mMax0 = DEFAULT_M_MAX_0;
233-
private int efSearch = DEFAULT_EF_SEARCH;
234226
private int efConstruction = DEFAULT_EF_CONSTRUCTION;
235227
private boolean extendCandidates = DEFAULT_EXTEND_CANDIDATES;
236228
private boolean keepPrunedConnections = DEFAULT_KEEP_PRUNED_CONNECTIONS;
@@ -239,15 +231,14 @@ public ConfigBuilder() {
239231
}
240232

241233
public ConfigBuilder(@Nonnull final Random random, @Nonnull final Metric metric, final boolean useInlining,
242-
final int m, final int mMax, final int mMax0, final int efSearch, final int efConstruction,
234+
final int m, final int mMax, final int mMax0, final int efConstruction,
243235
final boolean extendCandidates, final boolean keepPrunedConnections) {
244236
this.random = random;
245237
this.metric = metric;
246238
this.useInlining = useInlining;
247239
this.m = m;
248240
this.mMax = mMax;
249241
this.mMax0 = mMax0;
250-
this.efSearch = efSearch;
251242
this.efConstruction = efConstruction;
252243
this.extendCandidates = extendCandidates;
253244
this.keepPrunedConnections = keepPrunedConnections;
@@ -314,15 +305,6 @@ public ConfigBuilder setMMax0(final int mMax0) {
314305
return this;
315306
}
316307

317-
public int getEfSearch() {
318-
return efSearch;
319-
}
320-
321-
public ConfigBuilder setEfSearch(final int efSearch) {
322-
this.efSearch = efSearch;
323-
return this;
324-
}
325-
326308
public int getEfConstruction() {
327309
return efConstruction;
328310
}
@@ -351,7 +333,7 @@ public ConfigBuilder setKeepPrunedConnections(final boolean keepPrunedConnection
351333
}
352334

353335
public Config build() {
354-
return new Config(getRandom(), getMetric(), isUseInlining(), getM(), getMMax(), getMMax0(), getEfSearch(),
336+
return new Config(getRandom(), getMetric(), isUseInlining(), getM(), getMMax(), getMMax0(),
355337
getEfConstruction(), isExtendCandidates(), isKeepPrunedConnections());
356338
}
357339
}

fdb-extensions/src/test/java/com/apple/foundationdb/async/hnsw/HNSWTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
import java.util.concurrent.TimeUnit;
6969
import java.util.concurrent.atomic.AtomicLong;
7070
import java.util.function.Function;
71+
import java.util.stream.Collectors;
7172
import java.util.stream.LongStream;
7273
import java.util.stream.Stream;
7374

@@ -255,6 +256,13 @@ public void testBasicInsert(final long seed, final boolean useInlining, final bo
255256
TimeUnit.NANOSECONDS.toMillis(endTs - beginTs),
256257
onReadListener.getNodeCountByLayer(), onReadListener.getBytesReadByLayer(),
257258
String.format(Locale.ROOT, "%.2f", recall * 100.0d));
259+
260+
final Set<Long> usedIds =
261+
LongStream.range(0, 1000)
262+
.boxed()
263+
.collect(Collectors.toSet());
264+
265+
hnsw.scanLayer(db, 0, 100, node -> Assertions.assertTrue(usedIds.remove(node.getPrimaryKey().getLong(0))));
258266
}
259267

260268
private int basicInsertBatch(final HNSW hnsw, final int batchSize,

0 commit comments

Comments
 (0)