Is your feature request related to a problem? Please describe.
The Fastener CAGRA merge procedure introduced in #2352 provides a faster method for merging CAGRA graphs than the alternate rebuilding approach. However, it does not support the row_filter arg, and the AUTO merge strategy currently falls back to rebuilding if a filter is provided. Compaction is a natural time to remove tombstoned points in a LSM tree, so this is likely a priority for usability in this setting.
Describe the solution you'd like
Adapting Fastener to support functionally point deletion is not trivial for the same reason deleting points in a search graph isn't: removed points can break the connectivity of the graph. However, the merge being done by Fastener is already over disjoint graphs, and the process of adding the scaffold, if minorly adjusted to allow intra-input scaffold edges, would likely repair most minor deletions. Above a certain fraction of points deleted, say 10 or 25%, rebuilding would again be necessary, but this seems like it would be uncommon, especially in large merges where rebuilding would be expensive.
Describe alternatives you've considered
It's possible that no logic needs to change for filters to be supported effectively, and this is largely a benchmarking issue. Regardless, solid benchmarks of post-merge graph quality need to be done before filters are enabled for Fastener.
Is your feature request related to a problem? Please describe.
The Fastener CAGRA merge procedure introduced in #2352 provides a faster method for merging CAGRA graphs than the alternate rebuilding approach. However, it does not support the
row_filterarg, and theAUTOmerge strategy currently falls back to rebuilding if a filter is provided. Compaction is a natural time to remove tombstoned points in a LSM tree, so this is likely a priority for usability in this setting.Describe the solution you'd like
Adapting Fastener to support functionally point deletion is not trivial for the same reason deleting points in a search graph isn't: removed points can break the connectivity of the graph. However, the merge being done by Fastener is already over disjoint graphs, and the process of adding the scaffold, if minorly adjusted to allow intra-input scaffold edges, would likely repair most minor deletions. Above a certain fraction of points deleted, say 10 or 25%, rebuilding would again be necessary, but this seems like it would be uncommon, especially in large merges where rebuilding would be expensive.
Describe alternatives you've considered
It's possible that no logic needs to change for filters to be supported effectively, and this is largely a benchmarking issue. Regardless, solid benchmarks of post-merge graph quality need to be done before filters are enabled for Fastener.