Skip to content

Implement VSETATTR - #2001

Merged
kevin-montrose merged 11 commits into
mainfrom
users/kmontrose/vsetattr
Aug 4, 2026
Merged

Implement VSETATTR#2001
kevin-montrose merged 11 commits into
mainfrom
users/kmontrose/vsetattr

Conversation

@kevin-montrose

Copy link
Copy Markdown
Contributor

Implements VSETATTR.

Standard subtleties around these writes being modeled as reads, and one diskann-garnet defect fixed around attribute removal.

@kevin-montrose
kevin-montrose marked this pull request as ready for review August 4, 2026 14:20
Copilot AI lite review requested due to automatic review settings August 4, 2026 14:20

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds Redis-compatible VSETATTR support for Vector Sets, including the “read-modeled write” replication/AOF handling needed for DiskANN-backed indexes, and new standalone + cluster coverage.

Changes:

  • Implements Vector Set attribute updates via DiskANN, including synthetic replication RMW injection and AOF replay handling.
  • Extends storage-function handling to account for VSETATTR replication/CU paths and related command plumbing.
  • Adds standalone and cluster tests for VSETATTR, plus bumps the diskann-garnet dependency.

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
test/standalone/Garnet.test.vectorset/RespVectorSetTests.cs Adds VSETATTR async behavior test and hooks into interrupted-delete fault injection coverage.
test/cluster/Garnet.test.cluster.vectorsets/VectorSets/ClusterVectorSetTests.cs Adds a cluster replication test validating VSETATTR replays to a replica.
libs/server/Storage/Session/MainStore/VectorStoreOps.cs Implements VectorSetSetAttribute flow and triggers manual replication on success.
libs/server/Storage/Functions/MainStore/VarLenInputMethods.cs Updates vector CU sizing condition (but needs VSETATTR handling for correct sizing).
libs/server/Storage/Functions/MainStore/RMWMethods.cs Adds VSETATTR handling to in-place and copy-update paths for synthetic replication writes.
libs/server/Storage/Functions/MainStore/PrivateMethods.cs Includes VSETATTR in RESP copy paths for the main store functions.
libs/server/Resp/Vector/VectorManager.Replication.cs Adds synthetic replication injection + replica-side replay handler for VSETATTR.
libs/server/Resp/Vector/VectorManager.cs Adds replication-log arg sentinel and implements TrySetAttribute.
libs/server/Resp/Vector/DiskANNService.cs Adds managed wrapper calling native set_attribute.
libs/server/AOF/AofProcessor.cs Routes replayed VSETATTR synthetic RMW records through the VectorManager replica handler.
Directory.Packages.props Bumps diskann-garnet package version.

Comment thread test/standalone/Garnet.test.vectorset/RespVectorSetTests.cs Outdated
Comment thread libs/server/Resp/Vector/DiskANNService.cs
Comment thread libs/server/Storage/Functions/MainStore/VarLenInputMethods.cs
Comment thread libs/server/Resp/Vector/VectorManager.Replication.cs Outdated
@kevin-montrose
kevin-montrose merged commit 4c004e2 into main Aug 4, 2026
316 of 317 checks passed
@kevin-montrose
kevin-montrose deleted the users/kmontrose/vsetattr branch August 4, 2026 16:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants