HNSW Index: Multiple storages#25
Conversation
| char *error_msg, uint32_t error_msg_len); | ||
| }; | ||
|
|
||
| struct MultiColumnStore { |
There was a problem hiding this comment.
Why did we make this a multi-column store? Are there multi-column indexes we need to support? Not objecting to the flexibility, just wondering what the motivation was.
Oh sorry, I think I misunderstood now that i read more. I think this is to support multiple indexes against the same "store" - is that correct?
Looks like each would have its own root page (and there seems to be a primary root). Hopefully the layout comment is updated to explain. It is - good.
So is each one a "segment" or is it that orthogonal?
There was a problem hiding this comment.
Yes, that's correct. Each column store has its own root page and independent page management (data pages, free page lists, etc.). The primary root page holds references to the other root pages, allowing the entire multi-column store to be identified by a single storage reference.
The segment concept is orthogonal. A column store belongs to exactly one segment, but multiple column stores can be distributed across multiple segments depending on the storage layout.
The motivation here is to support storing the HNSW index. I'll elaborate more on the layout and the rationale in the upcoming PRs.
No description provided.