99 Commits

Author SHA1 Message Date
Ulf Wiger
34285da6d8
Merge pull request #55 from havelkadragan/master
Fix wrong index preparation in mrdb:index_read_/3
2024-08-13 18:21:32 +02:00
crossroad61
cb123ee28a
Merge pull request #1 from aeternity/uw-ix-plugin-tests
Improve tests (fail without Havelka's fix)
2024-08-13 12:45:56 +02:00
Ulf Wiger
996ae82717 Improve tests (fail without Havelka's fix) 2024-08-13 10:36:31 +02:00
dragan
d6b86524fd Fix wrong index preparation in mrdb:index_read_/3
In the case when index is of type {_}, index is returned as is
instead of putting it into a tuple {Ix, ordered}.

An example

Given the following index plugin implementation:
-module(key6).

-record(cgh, {key, val}).

-export([k6/3
        , add_index/0
        , create_table/0
        , tst_bad_type/0
    ]).

k6(_, _, #cgh{key = {Name, K8, _Cid, _Vn}}) ->
    [list_to_binary([atom_to_binary(Name),
     list_to_binary(lists:sublist(K8, 6))])].

add_index() ->
    mnesia_schema:add_index_plugin({k6}, key6, k6).

create_table() ->
    mnesia:create_table(cgh,
    [{attributes, record_info(fields, cgh)},
     {type, ordered_set},
     {index, [{k6}]},
     {rocksdb_copies, [node()]},
     {local_content, true}]).

tst_bad_type() ->
    E1 = #cgh{key = {n1, "u1vgrjkh",{ecgi,238,6,213020,50},3}, val = ok},
    mnesia:dirty_write(E1),
    Index1 = list_to_binary([atom_to_binary(n1),
                             list_to_binary(lists:sublist("u1vgrjkh", 6))]),
    mrdb:index_read(cgh, Index1, {k6}).

-- testing --
Eshell V14.2.2 (press Ctrl+G to abort, type help(). for help)
(rock@bang)2> mnesia:create_schema([node()]).
ok
(rock@bang)3> mnesia:start().
ok
(rock@bang)4> mnesia_rocksdb:register().
{ok,rocksdb_copies}
(rock@bang)5> l(key6).
{module,key6}
(rock@bang)6> key6:add_index().
{atomic,ok}
(rock@bang)7> key6:create_table().
{atomic,ok}
(rock@bang)8> key6:tst_bad_type().
** exception exit: {aborted,{bad_type,{cgh,index,{k6}}}}
     in function  mnesia:abort/1 (mnesia.erl, line 362)
     in call from mrdb:ensure_ref/1 (~/projects/erlang/github/mnesia_rocksdb/src/mrdb.erl, line 609)
     in call from mrdb:index_read_/3 (~/projects/erlang/github/mnesia_rocksdb/src/mrdb.erl, line 945)

-- after patch --

(rock@bang)9> c(mrdb).
Recompiling ~/projects/erlang/github/mnesia_rocksdb/src/mrdb.erl
{ok,mrdb}
(rock@bang)10> key6:tst_bad_type().
[{cgh,{n1,"u1vgrjkh",{ecgi,238,6,213020,50},3},ok}]
(rock@bang)11>
2024-08-12 14:32:20 +02:00
Thomas Arts
296813ef7b
Merge pull request #51 from aeternity/ta-rocksdb-1.8.0
Towards version 7.10.2 of rocksdb via version 1.8.0 or erlang_rocksdb
2024-03-19 14:41:50 +01:00
Thomas Arts
16d0533acf Fix dialyzer errors and warnings 2024-03-19 14:08:14 +01:00
Thomas Arts
1d6ae82c6d OTP24-26 2024-03-19 14:08:14 +01:00
Ulf Wiger
71ebaf2d66 New args for rocksdb:transaction_iterator() 2024-03-18 17:40:42 +01:00
Ulf Wiger
f2b6116d31
Merge pull request #47 from aeternity/uw-robustify-tx-test
Add retry for bleed-through check
2023-10-12 18:19:48 +02:00
Ulf Wiger
33ee7929d4
Merge pull request #44 from aeternity/uw-index-metadata
Adding/deleting indexes cleans up index metadata
2023-10-12 18:19:16 +02:00
Ulf Wiger
78669bb8bf
Merge pull request #42 from mariari/mariari/rebar3-compatible-otp-25
Update rebar3 bin to be compatible with OTP 25
2023-10-09 14:47:25 +02:00
Ulf Wiger
346decee6e
Merge pull request #49 from aeternity/ci_matrix
Add CI build matrix for OTP versions
2023-10-09 14:30:47 +02:00
Dincho Todorov
4da0fce567 Add CI build matrix for OTP versions 2023-10-09 13:22:13 +03:00
Ulf Wiger
e7d42f9500 Add retry for bleed-through check 2023-10-05 13:53:13 +02:00
Ulf Wiger
699a7d5920
Merge pull request #29 from aeternity/uw-bump-hut-dep
Change hut dep to 1.4.0
2023-10-05 11:00:53 +01:00
Ulf Wiger
57f02078bc Fix typo 2023-10-05 11:53:41 +02:00
Ulf Wiger
791cec41db Adding/deleting indexes cleans up index metadata 2023-10-05 11:53:41 +02:00
Ulf Wiger
6eff62df6d
Merge pull request #45 from aeternity/uw-ci-improvements
Run multiple OTP vsns in CI
2023-10-05 10:52:54 +01:00
Ulf Wiger
2e430fc5eb remove 'build' sublevel 2023-10-05 11:21:03 +02:00
Ulf Wiger
e76a01f8c4 add ci workflow 2023-10-05 11:12:32 +02:00
Ulf Wiger
4d0a78612a Fix ci config 2023-10-05 11:08:12 +02:00
Ulf Wiger
eeb6aff242 Run multiple OTP vsns in CI 2023-10-05 11:00:49 +02:00
mariari
f11e16e29f Update rebar3 bin to be compatible with OTP 25
This is the same OTP binary from

af2988a5a2
2023-08-31 03:12:12 +08:00
Ulf Wiger
0aecf5ef01
Merge pull request #35 from aeternity/uw-different-mutex
rewrite transaction retry mutex
2022-11-04 10:06:58 +01:00
Ulf Wiger
465a220bfe Update comment about mutex implementation 2022-11-03 13:37:52 +01:00
Ulf Wiger
19140c738b Don't warn for export_all in mrdb_bench 2022-11-03 12:57:54 +01:00
Ulf Wiger
bed66b2998 Remove html docs 2022-11-03 12:54:50 +01:00
Ulf Wiger
3635eac717 Test case for inner retries; add mrdb_stats.erl; update docs 2022-11-03 12:41:14 +01:00
Ulf Wiger
95abe4e36e Mutex server with fifo queues 2022-11-01 10:11:20 +01:00
Ulf Wiger
7c729bd932 Use a serializing mutex 2022-11-01 10:09:48 +01:00
Ulf Wiger
4489e5d743
Merge pull request #34 from aeternity/uw-batch-release
Don't try to release dummy batch ref
2022-10-31 17:01:15 +01:00
Ulf Wiger
d1a6bf22d5 Don't try to release dummy batch ref 2022-10-31 16:48:23 +01:00
Ulf Wiger
b65e82ed71
Merge pull request #33 from aeternity/uw-batch-on-demand
Begin dirty activity with batch ref dummy
2022-10-26 13:16:48 +02:00
Ulf Wiger
ee9e7eac67
Merge pull request #32 from aeternity/uw-push-pop-error
Tx push at retry before mutex instead of after
2022-10-26 13:16:28 +02:00
Ulf Wiger
ce2be519b4 Begin dirty activity with batch ref dummy 2022-10-24 15:15:01 +02:00
Ulf Wiger
8073a0daa5 Tx push at retry before mutex instead of after 2022-10-19 13:19:48 +02:00
Ulf Wiger
ab15b7f399
Merge pull request #30 from aeternity/otp23_builder
Switch to OTP23
2022-08-29 12:28:59 +02:00
Dincho Todorov
a75f6e0c43
Switch to OTP23 2022-08-29 12:40:50 +03:00
Ulf Wiger
1340bb2050 Change hut dep to 1.4.0 2022-08-15 17:16:29 +02:00
Ulf Wiger
d1177b6ad4
Merge pull request #27 from aeternity/uw-accept-repeated-create
Ignore certain mnesia_dumper close_table requests
2022-08-03 09:49:58 +02:00
Ulf Wiger
b908998e6b Check pdict for dumper state at close_table 2022-08-02 17:07:53 +02:00
Ulf Wiger
dfc0125800 More dets-like load/close behavior 2022-07-25 15:33:00 +02:00
Ulf Wiger
296abb23bb Fix double encoding of info data 2022-07-22 16:33:32 +02:00
Ulf Wiger
7057f4dcbd Remove rocksdb opts refault, safer index consistency check 2022-07-22 15:31:55 +02:00
Ulf Wiger
c4235be94a Be more lenient about mnesia asking more than once 2022-07-15 14:14:06 +02:00
Ulf Wiger
302aa1252b
Merge pull request #26 from aeternity/uw-fix-db-migration
Migration chunk handling was broken. Add progress reporting support
2.0.1
2022-07-13 12:50:38 +02:00
Ulf Wiger
fde2e1194e Fix type to satisfy Dialyzer 2022-07-13 11:35:40 +02:00
Ulf Wiger
c4f7b7ac02 Migration chunk handling was broken. Add progress reporting support 2022-07-13 11:19:47 +02:00
Ulf Wiger
226a3b8e91
Merge pull request #25 from shahryarjb/patch-1
Add Erlang flag for README block code
2022-07-11 16:15:13 +02:00
Shahryar Tavakkoli
73784fe765
Add Erlang flag for README block code 2022-07-11 18:35:45 +04:30