Details
-
Task
-
Status: Open (View Workflow)
-
Minor
-
Resolution: Unresolved
-
None
-
None
-
None
Description
This tasks covers an alternative to MDEV-33404:
Defining a low-level interface for storage engines to allow for page allocation
The purpose of this interface is to support lower-level implementation of indexing strategies, should the subtable (high level interface) prove too slow.
High level overview
The index will ask the engine for a page in the table space and can store the index there in any arbitrary way it wants, the engine will treat it as opaque.
Benefits
- Faster and more flexible than MDEV-33404
Drawbacks
- The burden of ACID is on the index implementation, it handles undo/redo, recovery, isolation
- This has to be done for every supported engine separately
- Works only for very few selected engines, may be only InnoDB
- So not very engine independent
Interface questions to be answered:
What operations should this interface support?
- Alloc page(s) (implemented by SE)
- Free page(s) (implemented by SE)
- Register callback for row insert/update/delete (callback invoked by SE when event occurs)
- Register callback for transaction start/commit/rollback (callback invoked by SE when event occurs)
Does Engine query the Index or is it only for the upper SQL layer level to decide?
Attachments
Issue Links
- relates to
-
MDEV-32887 k-ANN indexes for vectors
-
- In Progress
-
-
MDEV-33414 benchmark vector indexes
-
- In Testing
-