108 Commits

Author SHA1 Message Date
uwiger 8846963103 Merge pull request 'Produce stacktraces unless mnesia_compatible' (#3) from uw-stacktraces into emqx
Reviewed-on: #3
2025-06-16 03:42:37 +09:00
Ulf Wiger 56d78768d9 Produce stacktraces unless mnesia_compatible 2025-03-23 21:06:21 +01:00
zxq9 a768d8008f Merge remote-tracking branch 'ae/master' into emqx 2024-10-17 10:54:42 +09:00
Richard Carlsson 9cea41cb9a Merge pull request #57 from richcarl/use-fixed-emqx
Use latest version of emqx fork with compilation fix
2024-10-14 12:17:30 +02:00
Richard Carlsson d42055c7ac Update erlang-rocksdb to use latest patch fixing compilation issues 2024-10-13 14:30:56 +02:00
Richard Carlsson 0ae7ecd41d Use our patched version of the EMQX fork 2024-10-09 13:53:01 +02:00
Richard Carlsson ece9db2b09 Merge pull request #56 from richcarl/use-emqx-fork
Use emqx fork of erlang-rocksdb
2024-09-09 14:04:40 +02:00
Richard Carlsson 0e4382d5f7 Use emqx fork of erlang-rocksdb 2024-08-23 11:01:46 +02:00
Ulf Wiger d9d82d7ead Merge branch 'uw-catchup' into 'master'
Fix wrong index preparation in mrdb:index_read_/3

See merge request ioecs/mnesia_rocksdb!1
2024-08-14 09:24:16 +00:00
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

https://gitlab.com/vans/erlang-rocksdb/-/commit/af2988a5a27393646de1bb35cfc3644ba4b651b0
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