Skip to content

Add indexing api #2

@RussellHaley

Description

@RussellHaley

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.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions