ieQu1
330a255c3b
chore: Add callback definitions to local_store
2023-05-15 12:05:18 +02:00
ieQu1
e7f773b6ae
chore: behavior -> behaviour
2023-05-15 11:39:48 +02:00
ieQu1
62c27677b2
chore: Change license to BSL
2023-05-15 11:21:57 +02:00
ieQu1
f79dd16672
refactor(replay): zone -> shard
...
Also bump erlang-rocksdb version
2023-05-15 11:21:57 +02:00
Andrew Mayorov
cfd23d76d3
test(replay): verify preserve / restore works with stored iterators
2023-04-10 15:27:49 +03:00
Andrew Mayorov
1f033f92b5
feat(replay): allow to preserve / restore iterators in the db
...
So that we could guarantee replay consistency / availability under
the assumption that nodes may be restarted or even lost occasionally.
2023-04-10 15:27:49 +03:00
Andrew Mayorov
3c13dd38f6
feat: make `create_generation` safer against bad input
2023-01-18 11:11:49 +03:00
Andrew Mayorov
418ecbcbbc
feat: make iteration fully generation-aware
2023-01-18 11:11:49 +03:00
Andrew Mayorov
e42f009d3f
chore: simplify iteration-related typespecs
2023-01-18 11:11:49 +03:00
Andrew Mayorov
4e36456843
feat: allow to create new storage generations
2023-01-18 11:11:46 +03:00
Andrew Mayorov
16736eca0f
fix: correct typespec
2023-01-16 20:18:23 +03:00
Andrew Mayorov
464db76a52
feat: wire iteration options up to the app config
2023-01-16 20:18:22 +03:00
Andrew Mayorov
d950efc9fa
test: split unit tests off into a full-fledged suite
2023-01-12 17:59:55 +03:00
Andrew Mayorov
b7566ab7e7
test: provide more general `keymapper_info/1`
2023-01-12 17:59:15 +03:00
Andrew Mayorov
0d495c97c8
chore: rename testsuite to reflect test subject better
2023-01-12 17:12:45 +03:00
Andrew Mayorov
d504d415e6
feat: enable periodic iterator refresh
...
This might be helpful during replays taking multiple tens of seconds so
that underlying iterators won't hold onto in-memory / on-disk data
structures for too long, preventing rocksdb from recycling them.
2023-01-12 16:03:39 +03:00
Andrew Mayorov
f338aeb3f2
refactor: use inline functions instead of macros where applicable
2023-01-11 18:45:21 +03:00
Andrew Mayorov
d65112eeac
fix: clear bitmask of topic filter tail containing wildcards
2023-01-06 13:58:39 +03:00
Andrew Mayorov
41bfebf9e0
test: proptest that iteration is exhaustive
...
Compare iteration results against what an extremely simplified model
produces.
2023-01-06 13:58:39 +03:00
Andrew Mayorov
5e633321db
test: scale up number of messages per topic in proptests
2023-01-06 13:58:39 +03:00
Andrew Mayorov
43225d20a6
test: use `_build/test/proper` as a scratch dir for testruns
2023-01-06 13:58:38 +03:00
Andrew Mayorov
aba48c488e
test: add a proptest on iterator preserve / restore
...
Which verifies that preservation and restoration of iterators does not
affect the outcome of an iteration (under the precondition that the
state of database is constant during an iteration).
2023-01-05 22:52:08 +03:00
Andrew Mayorov
7fd14fb404
feat: add an ability to preserve and restore iterators
...
This will allow to persist iteration state and to periodically recreate
iterators during long replays.
2023-01-05 22:48:10 +03:00
Andrew Mayorov
d6ee23e5b3
test: move proptests into a separate module
...
Following conventions. Also add few proptests on keyspace filters.
2023-01-04 22:05:09 +03:00
Andrew Mayorov
4b8dbca232
refactor: introduce keyspace filter concept
...
So we could conveniently test it separately.
2023-01-04 22:02:53 +03:00
Andrew Mayorov
d5941c568b
refactor: rename `compute_hash_*` → `compute_topic_*`
2023-01-03 18:53:19 +03:00
Andrew Mayorov
bea0dc22eb
chore: drop few unused macrodefinitions
2023-01-03 18:30:43 +03:00
Andrew Mayorov
e248a18fd4
chore: attempt to make `compute_next_seek`'s logic clearer
2023-01-03 18:29:06 +03:00
ieQu1
917c8635e1
fix(replay): Fix dialyzer warnings
2023-01-03 14:11:04 +03:00
ieQu1
cb97a9abd1
refactor(replay): tau -> epoch
2023-01-03 14:09:02 +03:00
ieQu1
a9c036b058
refactor(replay): Factor out configuration to a separate module
2023-01-03 14:08:55 +03:00
ieQu1
f5e2d2f66d
refactor(replay): Introduce bitwise_concat function
2023-01-03 14:08:47 +03:00
ieQu1
ff145ecc43
feat(replay): Add metadata storage and supervision tree
2023-01-03 14:08:40 +03:00
Andrew Mayorov
0cfeee0df7
feat: implement keyspace partitioning across time
2023-01-03 14:07:14 +03:00
Andrew Mayorov
83467e7174
feat: allow to specify message store options
...
* Keymapper
* Column family name + DB options
* DB write / read options
2023-01-03 14:07:12 +03:00
Andrew Mayorov
7e13753ea5
test: add basic property tests
2023-01-03 14:05:29 +03:00
Andrew Mayorov
fcc8a4bcce
refactor: rename function consistently
2023-01-03 14:05:29 +03:00
Andrew Mayorov
8707504245
feat(iter): wildcard smoke tests
2023-01-03 14:05:29 +03:00
Andrew Mayorov
5e612c910c
feat(iter): wip interator next
2023-01-03 14:05:29 +03:00
ieQu1
d99a347654
test(rocksdb): Add testcase
2023-01-03 14:05:29 +03:00
ieQu1
3248f396e0
feat(rocksdb): WIP
2023-01-03 14:05:29 +03:00
Andrew Mayorov
52964e2bfa
feat(replay): storage layer wip
2023-01-03 14:05:23 +03:00