Skip to content

Implement VSETATTR command for vector set attribute updates#1531

Closed
Copilot wants to merge 1 commit intotiagonapoli/add-vsetattrfrom
copilot/sub-pr-1476
Closed

Implement VSETATTR command for vector set attribute updates#1531
Copilot wants to merge 1 commit intotiagonapoli/add-vsetattrfrom
copilot/sub-pr-1476

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Feb 2, 2026

Implements VSETATTR command to update attributes on existing vector elements without modifying the vector data itself.

Implementation Details

  • Command handler: Added VectorSetUpdateAttributes() in VectorStoreOps.cs that acquires read lock on the vector index and calls VectorManager.TryUpdateElementAttributes()
  • Native integration: Calls NativeDiskANNMethods.set_attribute() to update attributes in the DiskANN index
  • Replication support: Triggers manual replication via ReplicateVectorUpdateAttributes() on successful updates
  • RMW handlers: Added cases in InitialUpdater, InPlaceUpdater, and CopyUpdater for replication path (assertions ensure only replication triggers these paths)

Usage

VSETATTR key element '{"category": "updated", "score": 95}'

Architecture Note

VSETATTR and VADD use separate native methods for attribute writes:

  • VADDinsert() - writes attributes during element insertion
  • VSETATTRset_attribute() - updates attributes on existing elements

No shared attribute write path exists between the commands.


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI mentioned this pull request Feb 2, 2026
Copilot AI changed the title [WIP] Implement VSETATTR functionality Implement VSETATTR command for vector set attribute updates Feb 2, 2026
Copilot AI requested a review from hailangx February 2, 2026 23:57
@hailangx hailangx closed this Feb 20, 2026
@github-actions github-actions Bot locked and limited conversation to collaborators Apr 21, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants