You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
148423: vecindex: loosen RemoveFromPartition semantics r=drewkimball a=andy-kimball
#### cspann: do not retry search when deleting vector
Previously, if the search for a vector to delete fails, the index
would fetch a second batch of partitions to search. However, if a
vector cannot be found in the first batch, it's very unlikely to be
found at all, so better to abort at that point. This is important
for the case when a split or merge is in progress and the vector is
found in a draining partition and skipped. It's a waste to keep
searching in that case.
#### vecindex: loosen RemoveFromPartition semantics
Previously, vectors could not be removed from partitions that were
in a draining or deleting state. While this restriction is needed
for adding vectors to prevent "lost update" anomalies, it's not
needed for removing vectors. A future PR will be able to avoid extra
work if this restriction is loosened.
Even though it's OK to remove vectors from partitions in any state,
that doesn't mean it's *useful* to do so. For example, when deleting
a vector from the index, there's no point in deleting it from a
partition that is going to be cleared or deleted anyway.
Distinguish between these various cases by splitting AllowAddOrRemove
into AllowAdd, AllowRemove, and CanSkipRemove.
Co-authored-by: Andrew Kimball <[email protected]>
0 commit comments