Details
-
Task
-
Status: Closed (View Workflow)
-
Minor
-
Resolution: Won't Fix
-
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 vector search
- Stalled
-
MDEV-33414 benchmark vector indexes
- Closed