Revising SRFI-167: Ordered Key-Value Store
I am revising SRFI-167:
- Do not feature the ability to swap backing storage by mocking Scheme generics;
- Do support cursor interface, because it is easier to explore the database that way, and it is possible to implement on-top range queries;
- Do support transaction variables pseudo-parameters that were removed from SRFI-167 that is called
- Fix hooks;
- Do not support configurable semantic of transactions, and leave it unspecified;
- Do support sizing metadata: max key, max value, key range, and bytes count;
- Simplify specification by making okvs, transaction and cursor satisfy the predicate
okvs-handle?; all operation on the database specify that they take a database handle;
- Do neutralize the specification wording to be less enthusiastic.
The current spec is available at https://hyper.dev/p/okvs/
I improved SRFI-168 (nstore) by making use of the value part. On a related note, I figured some problems with my implementation of the versioned nstore that never made it into the SRFI process.
My plan is to re-implement LBST portably with Scheme, and demonstrate the use of the API before requesting another SRFI.
I copied the spec, and changed a few things at . There is the beginning of a new sample implementation that is memory-based at , also attached here, inspired from Log-Balanced Search Tree .
Deleting a branch is permanent. It CANNOT be undone. Continue?