Commit graph

1421 commits

Author SHA1 Message Date
Martin Sumner
041e86fed9
Merge pull request #181 from martinsumner/mas-i180-dollarkeyregex
Mas i180 dollarkeyregex
2018-09-21 13:27:53 +01:00
Martin Sumner
ba93ea149f Account for slower tests in older Erlang versions
Tests run slower in OTP16 - so do less work in this version.
2018-09-21 13:27:10 +01:00
Martin Sumner
1a3d3daa89 Add regex support to $key index
Regex to be applied to key only
2018-09-21 12:04:32 +01:00
Martin Sumner
d27be07f67
Merge pull request #179 from martinsumner/mas-i178-bookhead
Mas i178 bookhead
2018-09-20 14:24:17 +01:00
Martin Sumner
d999bc1e4a Merge branch 'master' into mas-i178-bookhead 2018-09-20 12:08:46 +01:00
Martin Sumner
c439e4144a Add new book_headonly/4 API
To address special situation of performing a head requets in head_only mode - where a sub-key is a required input.
2018-09-20 12:08:33 +01:00
Martin Sumner
9c15a39023
Merge pull request #177 from martinsumner/rdb/quviq-i13-startkey-doc
Update docs for start key
2018-09-20 12:02:08 +01:00
Russell Brown
f12d277875 Update docs for start key
Quviq/leveled/issues/13 shows the confusion around the purpose of
start key. Hopefully this commit clarifies that start key is a further
refinement to the range start. It's essentially and AND.
2018-09-20 11:21:55 +01:00
Martin Sumner
f4a7a729ae
Merge pull request #175 from martinsumner/rdb/quviq-i15-regex-doc
Update docs to clarify that regex cannot be run on integers
2018-09-19 18:31:39 +01:00
Martin Sumner
572befbcfa
Merge pull request #176 from martinsumner/mas-i174-refactorsaferead
Refactor safe_read
2018-09-19 18:30:15 +01:00
Russell Brown
bc35a7aa1e Update docs to clarify that regex cannot be run on integers 2018-09-19 16:28:28 +01:00
Martin Sumner
e02c6df3ed Refactor safe_read
Make safe_read a bit more flexible,and allow it to catch a wider number of errors.
2018-09-19 13:03:00 +01:00
Martin Sumner
d088a6baf0
Merge pull request #173 from martinsumner/rdb/quviq-bug-9-bucket-fold
Callers of bucket list expect the traversal to be in order
2018-09-18 16:02:52 +01:00
Russell Brown
5a95e82af0 Callers of bucket list expect the traversal to be in order
Due to the internal fold over buckets returning an un-reversed
accumulator, the API bucketlist code caller's fold fun traversed the
bucket list in reverse order. This lead to some inconsistencies when
comparing a buckelist of all buckets, vs, first bucket only. i.e. the
'first' bucket passed to the foldfun was in fact the last bucket read
from the ledger.
2018-09-18 15:40:44 +01:00
Martin Sumner
b34c0ff072
Merge pull request #172 from martinsumner/mas-iq6-rootpathundefined
Mas iq6 rootpathundefined
2018-09-17 12:02:50 +01:00
Martin Sumner
63f208cd5f Merge branch 'master' into mas-iq6-rootpathundefined 2018-09-17 10:19:35 +01:00
Martin Sumner
2633286ec6
Merge pull request #171 from martinsumner/rdb-pp-quviq/test-obj-gen
For quviq and TA, helper for eqc object generation
2018-09-17 10:19:16 +01:00
Martin Sumner
413b8af900 Confirm undefined root_path fails 2018-09-17 10:09:57 +01:00
Russell Brown
ad7a3e7593 For quviq and TA, helper for eqc object generation 2018-09-17 10:09:28 +01:00
Martin Sumner
4e61582edf
Merge pull request #170 from martinsumner/mas-iq5-mincachesize
Mas iq5 mincachesize
2018-09-14 19:47:39 +01:00
Martin Sumner
8ada5e78fa Max penciller cache change
Missed a bit
2018-09-14 17:22:25 +01:00
Martin Sumner
e18d681043 Need to support undefined max penciller cache size
Without first converting it to the minimum.  So catch the undefined, at set_default
2018-09-14 10:36:10 +01:00
Martin Sumner
534bf87a51 Set minimum cache sizes
This avoids a divide by zero (if the Bookie's memory cache size is smaller than 4).
2018-09-14 10:19:25 +01:00
Martin Sumner
80e5ff9b4e
Merge pull request #169 from martinsumner/rdb/max-journal-size-docs
Explain max_journalsize more fully
2018-09-10 16:52:07 +01:00
Russell Brown
77ade3b194 Explain max_journalsize more fully 2018-09-10 16:29:30 +01:00
Martin Sumner
8f8e393227
Merge pull request #168 from martinsumner/mas-i164-hotbackup
Mas i164 hotbackup
2018-09-09 19:47:06 +01:00
Martin Sumner
6a87f398f2 Reduce object count in simple backup
This test is almost entirely covered by `hot_backup_changes` now.
2018-09-09 18:19:25 +01:00
Martin Sumner
cd7e64712b Add description 2018-09-09 18:17:19 +01:00
Martin Sumner
0cfdcb1976 Remove double test
should now be covered by the _changes test
2018-09-07 21:03:09 +01:00
Martin Sumner
bbb667b09f Add test of repeated backups
Confirm that file counts in the backup folder rise and fall as expected
2018-09-07 17:24:27 +01:00
Martin Sumner
91f751ddc6 Garbage collect backups
If ther are backups made to the same folder, need to remove any files from that folder that are not included in this backup.

Some initial testing, needs more.
2018-09-07 14:21:01 +01:00
Martin Sumner
b99cde9599 Merge branch 'master' into mas-i164-hotbackup 2018-09-07 12:27:30 +01:00
Martin Sumner
faec45ad8e
Merge pull request #167 from russelldb/rdb/spec-folds-cp
Provide a top level API for folds
2018-09-07 11:18:23 +01:00
Martin Sumner
9a8ce88ed2 Add double-backup test
Added a test with back-to-back backups.  This caused issues with the empty CDB file it created (on opening, couldn't cope with last key of empty).

So now backup won't roll the active journal if it is empty.
2018-09-07 10:24:51 +01:00
Martin Sumner
daf0a1a607 Accumulate generated objects efficienty 2018-09-06 17:50:59 +01:00
Martin Sumner
0838ff34e5 Initial hot_backup
The idea being that a consistent inker manifest and set of journal files is guaranteed - with hard links to the actual manifest files.
2018-09-06 17:50:30 +01:00
Russell Brown
3a2d4aa496 Actually run the new test
DERP!
2018-09-06 16:38:49 +01:00
Russell Brown
b7bd65d11f Provide a top level API for folds
As the fold functions have been added to get_runner in an ad hoc way,
naturally, given the ongoing development of levelEd to support Riak,
it was difficult for a new user (in this case Quviq) to see what folds
are supported, and with what arguments, and expectations.

This PR is for discussion. It is one of many ways to group, spec, and
document the fold functions.

A test is also added for coverage of range queries.
2018-09-06 15:01:54 +01:00
Martin Sumner
3249cc8d3e
Merge pull request #166 from russelldb/rdb-pcl-stop-test
Add unit test for pclr snapshot closing
2018-09-06 14:13:41 +01:00
Russell Brown
4334e2d734 Add unit test for pclr snapshot closing
This was tested by the eqc, but we merged the fix without the
test. This eunit test fixes that. Coverage!
2018-09-06 14:08:09 +01:00
Martin Sumner
01c16edf1a
Merge pull request #165 from russelldb/rdb/stop-snapshot-cp
Stop snapshots when the bookie stops
2018-09-06 12:01:52 +01:00
Russell Brown
ef9ac672e5 Stop snapshots when the bookie stops
During EQC testing it was found that snapshots are still usable even
if the bookie process crashes. This change has snapshots monitor the
bookie and close when the bookie process dies.
2018-09-06 11:47:52 +01:00
Martin Sumner
a1269e5274
Merge pull request #163 from martinsumner/mas-i162-isempty
Mas i162 isempty
2018-09-03 17:00:55 +01:00
Martin Sumner
c64dc1df0d Change key() definition to not allow integer keys 2018-09-03 12:28:31 +01:00
Martin Sumner
402dd2a663 Remove integer() support for keys
As number < atom() and so integer() < null.

This causes potential issues where we assume null < then any key value
2018-09-03 10:50:28 +01:00
Martin Sumner
f400e8b46d Add test for string and binary buckets
Tried an integer bucket - and this didn't work!

Integers are < null - and so is_empty won't work as expected.
2018-09-03 10:38:19 +01:00
Martin Sumner
ca8aa051d7 Add head_only fold_keys test 2018-09-03 10:29:20 +01:00
Martin Sumner
499a30716b Head only mode 2018-09-03 09:54:45 +01:00
Martin Sumner
bde188e691 Constrain keys
Rather than supporting any() - constrain at least to binary()/integer() or string().
2018-09-01 12:10:56 +01:00
Martin Sumner
50967438d3 Switch from binary_bucketlist
Allow for bucket listing of non-binary buckets (integer buckets, buckets with ascii strings)
2018-09-01 10:39:23 +01:00