Commit graph

1557 commits

Author SHA1 Message Date
Martin Sumner
a210aa6846 Promote cache when scanning
When scanning over a leveled store with a helper (e.g. segment filter and last modified date range), applying the filter will speed up the query when the block index cache is available to get_slots.

If it is not available, previously the leveled_sst did not then promote the cache after it had accessed the underlying blocks.

Now the code does this, and also when the cache has all been added, it extracts the largest last modified date so that sst files older than the passed in date can be immediately dismissed
2020-12-02 13:29:50 +00:00
Martin Sumner
80e6920d6c Standardise retention decision
Use the same function to decide for both scoring and compaction - and avoid the situation where somethig is scored for cmpaction, but doesnt change (which was the case previously with tombstones that were still in the ledger).
2020-11-29 15:43:29 +00:00
Martin Sumner
00823584ec Improve the quality of score
Move the average towards the current score if not scoring each run.   Score from more keys to get a better score (as overheads of scoring are now better sorted by setting score_onein rather than by reducing the sample size).
2020-11-27 20:03:44 +00:00
Martin Sumner
bcc331da10 Set max limit of 24 hours on cached score 2020-11-27 13:56:47 +00:00
Martin Sumner
be562c85cb Don't hide option 2020-11-27 03:12:35 +00:00
Martin Sumner
0690136ab2 Clarify how the new option will be controlled in Riak 2020-11-27 03:01:38 +00:00
Martin Sumner
b4c79caf7a Allow for caching of compaction scores
Potentially reduce the overheads of scoring each file on every run.

The change also alters the default thresholds for compaction to favour longer runs (which will tend towards greater storage efficiency).
2020-11-27 02:35:27 +00:00
Martin Sumner
e3bcd7eaec Update rebar.config
Add support for OTP 24
2020-09-22 12:09:17 +01:00
Martin Sumner
bf591a5aa9 Merge branch 'develop-3.0' of https://github.com/martinsumner/leveled into develop-3.0 2020-08-18 14:16:33 +01:00
Martin Sumner
d5df808a91 Use tag for release 2020-08-18 14:16:28 +01:00
Martin Sumner
48aad689f4
Update FUTURE.md
Confirm previous list of needs for production readiness have now been met
2020-08-18 14:10:28 +01:00
Martin Sumner
5bc137e4ef
Merge pull request #317 from martinsumner/mas-i1765-reducelog
Reduce logging
2020-08-05 19:42:22 +01:00
Martin Sumner
dd5b22a71e Reduce logging
Otherwise erlang.log with default settings my cycle too fast for a long indexer
2020-08-05 18:54:13 +01:00
Martin Sumner
37f006bba1
Merge pull request #315 from martinsumner/mas-i1765-reducelog
Mas i1765 reducelog
2020-07-23 14:14:04 +01:00
Martin Sumner
a6bd151d58 Use git tag for version 2020-07-23 14:03:21 +01:00
Martin Sumner
5cc281b73a Drop P0039 log to debug
Logging 80 times per second in some Riak tests
2020-07-23 14:00:59 +01:00
Martin Sumner
963a921f9b OTP 23 support 2020-07-23 11:45:42 +01:00
Martin Sumner
5e32b1d085
Merge pull request #313 from martinsumner/mas-v922-bump
Update leveled.app.src
2020-06-18 13:40:49 +01:00
Martin Sumner
35167e3796
Update leveled.app.src
Bump version
2020-06-18 13:20:49 +01:00
Martin Sumner
4caefcf4aa Merge branch 'master' into develop-3.0 2020-04-09 12:23:42 +01:00
Martin Sumner
9412e7c9b0
Merge pull request #312 from martinsumner/mas-i311-mergeselector
Mas i311 mergeselector
2020-04-02 12:25:32 +01:00
Martin Sumner
312fc52832 Extend test to make it highly likely a "garbage" merge file choice is made 2020-03-31 09:33:50 +01:00
Martin Sumner
d05a5fdd46 Make grooming more accurate
Check more files to optimise grooming choices
2020-03-30 20:07:48 +01:00
Martin Sumner
9e56bfa947 Merge branch 'master' into mas-i311-mergeselector 2020-03-30 20:07:05 +01:00
Martin Sumner
febdac27f6
Merge pull request #310 from martinsumner/mas-i306-implementrecalc
Mas i306 implementrecalc
2020-03-30 20:06:48 +01:00
Martin Sumner
9838e255d2 Address review comments
More efficient traversal of list to score.
2020-03-29 20:02:21 +01:00
Martin Sumner
28c88ef8b8 Typo 2020-03-27 20:09:03 +00:00
Martin Sumner
42eb5f56bc Merge branch 'master' into mas-i311-mergeselector 2020-03-27 17:11:18 +00:00
Martin Sumner
da97d65a23 Add grooming compactions
Make half of LSM-tree compactions grooming compactions i.e. compactions biased towards merging files with large numbers of tombstones.
2020-03-27 15:09:48 +00:00
Martin Sumner
aca945a171 Add counting of tombstones to new SST files
.. and that old-style SST files cna still be created, and opened, with a return of 'not_counted'
2020-03-27 10:20:10 +00:00
Martin Sumner
4ec5a19db3
Merge pull request #308 from martinsumner/mas-i306-reviseretain
Mas i306 reviseretain
2020-03-27 09:25:23 +00:00
Martin Sumner
e175948378 Remove references ot 'skip' strategy
Now called `recovr`
2020-03-26 14:25:09 +00:00
Martin Sumner
4ef0f4006d Extend mergefile_selector for strategy
Strategy only applied below L1, and only random strategy supported
2020-03-26 14:18:57 +00:00
Martin Sumner
20a7a22571 Add documentation for recalc option 2020-03-24 20:21:44 +00:00
Martin Sumner
8a9db9e75e Add log of startegy when clerk starts compaction 2020-03-23 16:45:28 +00:00
Martin Sumner
50cb98ecdd Resolve intermittent test failure
the previous regex filter still allowed files with cdb in the body of the name (which can be true as filenames are guid based)
2020-03-17 17:29:59 +00:00
Martin Sumner
5b4edfebb6 Coverage cheat
Very rarely, this line in the tests this line is not covered - so cheating here to consistently pass coverage
2020-03-17 14:20:57 +00:00
Martin Sumner
808a858d09 Don't score a rolling file
In giving an empty file a score of 0, a race condition was exposed.  A file might not be active, but might still be rolling - and then cna get scored as 0, and immediately compacted.  It will then be removed from the journal manifest.

Check each file is not rolling before making it a candidate for rolling.
2020-03-16 21:41:47 +00:00
Martin Sumner
5f7d261a87 Improve test
Genuine overhang
2020-03-16 18:53:40 +00:00
Martin Sumner
b49a5ff53d Additional unit tests of MetaBin handling 2020-03-16 17:35:38 +00:00
Martin Sumner
dbceda876c Issue with tag order
https://github.com/martinsumner/leveled/issues/309

Resolve issue, and remove test log entries used when discovering issue.
2020-03-16 16:35:06 +00:00
Martin Sumner
6350302ea8 Uncomment test 2020-03-16 13:32:52 +00:00
Martin Sumner
9d92ca0773 Add tests for appDefined functions 2020-03-16 12:51:14 +00:00
Martin Sumner
706ba8a674 Resolve issues with passing specs around 2020-03-15 23:15:09 +00:00
Martin Sumner
694d2c39f8 Support for recalc
Initial test included for running with recallc, and also transition from retain to recalc.

Moves all logic for startup fold into leveled_bookie - avoid the Inker requiring any direct knowledge about implementation of the Penciller.
2020-03-15 22:14:42 +00:00
Martin Sumner
1242dd4991 Merge branch 'master' into mas-i306-reviseretain 2020-03-13 19:56:35 +00:00
Martin Sumner
aaf58dd343
Merge pull request #307 from martinsumner/mas-i306-lessrandomreads
Mas i306 lessrandomreads
2020-03-13 19:55:16 +00:00
Martin Sumner
444011ac64 Merge branch 'master' into mas-i306-reviseretain 2020-03-09 21:40:19 +00:00
Martin Sumner
207aeb8b99 Remove additional log 2020-03-09 20:42:48 +00:00
Martin Sumner
6b3328f4a3 Rationalise logging in commit
Also:

Sort the output from an 'all' fetch one loop at a time

Make sure the test of scoring na empty file  is scoring an empty file

If it is an emtpy file we want to compact the fragment away - in which case it should score 0.0 not 100.0
2020-03-09 17:45:06 +00:00