Consolidate NodeRecordTask and test ordinal holes - #2
Draft
jaipilot[bot] wants to merge 1 commit into
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
NodeRecordTask.java: extracted three blocks duplicated verbatim betweencallLegacy()andbuildFullRecord()into shared private helpers:writeOmittedFeaturesAndEmptyNeighbors,checkNodeExists,writeNeighborSection.Grid.java: collapsed theuseParallelConstructionif/else inbuilderWithSuppliers()(two branches differing only in which concreteBuildersubtype is constructed) into a single ternary-selected variable, removing 3 duplicated statements.Why
Both duplications were introduced by this PR's NodeRecordTask/ParallelGraphWriter rewrite, which had no dedicated unit test coverage anywhere in the repository. Extracting the duplicated logic reduces the surface that future edits to validation/hole/neighbor-writing semantics would otherwise have to keep in sync by hand across two call sites.
Behavior preservation
testOrdinalHolesOnePhase/testOrdinalHolesTwoPhaseto the existingTestRandomAccessOnDiskGraphIndexWriter(which already covered the batched vs. legacy paths for non-hole ordinals) to lock the OMITTED-ordinal branch touched by the cleanup, using anOrdinalMapper.MapMapperwith gaps.NodeRecordTaskwrite timings (batched and legacy paths) before/after the extract-method refactor across 5 iterations each: medians differ by <3ms (noise level) -- no performance regression.Limitations
builderWithSupplierschange was verified by full-module compile and the existing (unrelated) jvector-examples test suite; there is no dedicated unit test for this example/benchmark helper in the repository, before or after this change.Generated by JAIPilot Cloud for #1 from Anthropic session
sesn_01YAcXgx4HvDqXkVBdQ6xwaX.