Multi-tenant retrieval where two tenants want different encoders #150
The constraints
The questionOne index with a tenant predicate, or an index per tenant?
Proposed design: neither, exactlyTiered. The 38 small tenants share one index with an ACL predicate pushed into the query. The 2 What I am least sure aboutTwo code paths that must stay behaviourally identical — and the shared one is exercised constantly |
Replies: 3 comments 3 replies
The tiering is right, and the isolation argument for it is stronger than the cost argument you led A shared index with a predicate is one query-construction bug from a cross-tenant leak. In a But do not let that argue you into 40 indexes. The right frame is: which tenants have a |
What will actually hurt is neither of those. It is that you now have two code paths and one eval The shared path is exercised by 38 tenants continuously. The dedicated path holds your two largest Before this ships:
The last is the aggregate-hides-minority-failures problem with tenants as the slice. |
|
Marking Dana's, because two-paths-one-eval-set is the defect that would cause the outage; the other Accepted: three tiers on two orthogonal axes, not two tiers on a conflated one. CI runs the Stands: the router behind a common Open: what happens when a small tenant grows into the encoder-divergent tier — a migration |
What will actually hurt is neither of those. It is that you now have two code paths and one eval
set.
The shared path is exercised by 38 tenants continuously. The dedicated path holds your two largest
accounts and is exercised rarely. That is backwards from where you want coverage, and it is the
shape of every "it worked in staging" incident I have seen.
Before this ships:
find out from the largest customer you have
and that failure is the point