-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Feature
Add the ability to create an index database in lmdb for a given table. The meta data needs to be added to the dtable class and tracked in lmdb with other dtable info (_databases?).
For a given index, an insert, update, and delete function needs to be specified.
The system needs to perform the index updates at the same time as the data update in the same transaction
The system needs a mode to turn off index updates during commits
The system requires a mode to re-build indexes
Scope
This is only the internal api to make this happen. The user api will be a different task.
Technical
Indexing is achieved by creating an lmdb 'database' with dupsort turned on. The database is then filed with the "indexed value" (i.e. extracted content from the lmdb data column), and the original key is made the data. lmdb doesn't provide any mechanism for tracking the relationship between a table/database and an index/database, so we need to do that ourselves. There is an _databases database to track these things. we set that up when we create the new environment.