16 Commits

Author SHA1 Message Date
Ulf Wiger
d5dafb5b7e Refactor to support column families, direct rocksdb access
Expose low-level helpers, fix dialyzer warnings

WIP column families and mrdb API

Basic functionality in place

started adding documentation

remove doc/ from .gitignore

add doc/* files

recognize pre-existing tabs at startup

wip: most of the functionality in place (not yet merge ops)

wip: adding transaction support

wip: add transaction test case (currently dumps core)

First draft, mnesia plugin user guide

Fix note formatting

WIP working on indexing

Index iterators, dialyzer, xref fixes

open db with optimistic transactions

Use rocksdb-1.7.0

Use seanhinde rocksdb patch, enable rollback

Call the right transaction_get() function

WIP add 'snap_tx' activity type

tx restart using mrdb_mutex

Fix test suite sync bugs

WIP instrumented for debugging

WIP working on migration test case

Add migration test suite

Migration works, subscribe to schema changes

WIP fix batch handling

Manage separate batches per db_ref

Add mrdb:fold/3

Add some docs, erlang_ls config

Use seanhinde's rocksdb vsn
2022-03-25 15:48:19 +01:00
Ulf Wiger
79d6467d26 Expose low-level helpers, fix dialyzer warnings 2020-12-22 10:36:24 +01:00
Ulf Wiger
35c79aaa32 WIP update deps, fix try-catch warning, for rocksdb 1.6.0 2020-10-19 10:46:02 +02:00
Tino Breddin
984d12479d Add test for error store support 2019-11-18 16:43:08 +01:00
Tino Breddin
a2f863804d Formatting improvements 2019-11-15 16:31:09 +01:00
Tino Breddin
63bae181e3 Add caller error store to error handling
During initialization of the backend the caller may provide a new
configuration to define a target ETS table for storing errors which the
backend encountered at runtime. These errors are written during handling
of write errors.
2019-11-15 16:28:39 +01:00
Ulf Wiger
6f41733461 Add tests for error handling
Document reason for breaking out update functions
2019-09-30 14:02:35 +02:00
Ulf Wiger
f93c1aba93 fix on_write_error options 2019-09-24 16:10:13 +02:00
Ulf Wiger
c8da9ce31b Check return values on update operations.
- put(), write() and delete() wrapped, checking for non-ok returns
- Option {on_write_error, verbose | warning | error | fatal}
  added to the rocksdb_opts user property. The corresponding function
  mnesia_lib:Op(Fmt, Args) will be called if an error return is spotted.
2019-09-24 15:45:07 +02:00
Ulf Wiger
dd23a80e27 use only normal iterator function 2018-03-06 22:11:41 +01:00
Ulf Wiger
0345e3558b On select, mnesia_rocksdb would only calculate a key prefix for the
first select clause in a multi-clause select pattern. This could give
erroneous results if the first pattern was more specific (on the key)
than following patterns. This change calculates a prefix for all clauses
and keeps the shortest common prefix.
2018-02-16 18:43:59 +01:00
Ulf Wiger
af4c6e8fd2 More renaming, ldb -> rdb 2018-02-06 20:03:01 +01:00
Ulf Wiger
d326daf251
Merge pull request #2 from aeternity/uw-use-official-sext
Use official sext instead of copy
2018-02-06 14:32:52 +01:00
Ulf Wiger
3fccd1cd4f Use official sext instead of copy 2018-02-06 14:30:17 +01:00
Ulf Wiger
a70f84f645 ensure rocksdb started at backend init 2018-02-06 13:58:17 +01:00
Ulf Wiger
6c9f5b565f first version, based on mnesia_eleveldb 2018-02-06 09:43:57 +01:00