Commit graph

1104 commits

Author SHA1 Message Date
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
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
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
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
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
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
9d92ca0773 Add tests for appDefined functions 2020-03-16 12:51:14 +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
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
Martin Sumner
156e7b064d Compaction, retain and recovery
Change the penciller check so that it returns current/replaced/missing not just true/false.

Reduce unnecessary penciller checks for non-standard keys that will always be retained - and remove redunandt code.

Expand tests of retain and recover to make sure that compaction on delete is well covered.

Also move the SQN number laong during initial loads - to stop aggressive loop to find starting SQN every file.
2020-03-09 15:12:48 +00:00
Martin Sumner
60e29f2ff0 (slightly) less random reads on journal compaction 2020-03-06 11:29:25 +00:00
Martin Sumner
009abdd599 Build and test on OTP 22 2020-02-24 09:55:05 +00:00
Martin Sumner
02155558df
Tag for Riak 2.9.1 2020-02-12 09:26:53 +00:00
Martin Sumner
4d550ef2a1
Bump version for new release 2019-11-20 10:33:51 +00:00
Martin Sumner
bcf10c9709 Fixup comments 2019-11-19 16:36:57 +00:00
Martin Sumner
693defb6d3 Use the same file write/sync/rename path where needed
When we want to be sure a file has been written before proceeding - we need a safer (that `file:write_file/2`) mechanism to be sure that it is written before proceeding.

This will:
open, write, sync, rename and then optionally read-back.

Changed so that manifest writing uses the safest form (including read back), and that sst writing uses a slightly looser form (with no read back to avoid performance issues).
2019-11-19 15:50:59 +00:00
Martin Sumner
96779e667e Add specs and further tests
Prove corrupted blocks are handled as expected when detected from within check_blocks function.
2019-11-04 15:32:18 +00:00
Martin Sumner
843b28313d Handle when corrupted blocks creates empty list
So can't get nth or last.
2019-11-04 12:49:56 +00:00
Martin Sumner
78ef767a96 Merge branch 'master' into mas-i293-cachemonitor 2019-08-29 17:49:04 +01:00
Martin Sumner
d5c1d1e51e Log about cache ratio and object hit ratio
If not a snapshot.
2019-08-29 17:48:46 +01:00
Martin Sumner
ecda13872a Add logging of cache ratio
Two reasons for logging this:

- to assist in sizing the ledger cache;
- to resolve the mystery when there appear to be no fetches from the penciller (as the penciller does not report fetches from the ledger cache)
2019-08-29 11:26:29 +01:00
Martin Sumner
0966ce9929 Test improvements
Improve the speed of leveled_cdb tests by disabling sync on write.

Improve the strength of check of the correct behaviour when compacting with a reduced journal size.
2019-08-29 10:32:07 +01:00
Martin Sumner
8587686783 Add testing to ensure keydeltas are compacted in test 2019-07-26 21:43:00 +01:00
Martin Sumner
57d73fc548 Make page cache level configurable 2019-07-25 12:23:10 +01:00
Martin Sumner
6cd898b731
Update leveled.app.src 2019-07-25 11:12:35 +01:00
Martin Sumner
e7c8dd7a78 Typo round-up
Also reduce log noise when persisting new Journal files
2019-07-25 10:24:40 +01:00
Martin Sumner
dab9652f6c Add ability to control journal size by object count
This helps when there are files wiht large numbers of key deltas (and hence small values), where otherwise the object count may get out of control.
2019-07-25 09:45:23 +01:00
Martin Sumner
22e732841c Compaction of already compacted journals
Ensure that journals with a large volume of key deltas do not erroneously get repeatedly compacted.
2019-07-24 18:03:22 +01:00
Martin Sumner
5bef21d971 Add unit test to prove binary/copy issue
Need to understand why the binary:copy is necessary - unit test now shows this.
2019-07-22 10:35:55 +01:00
Martin Sumner
c9c577259e Need to binary copy the header
Otherwise the whole binary is kept in memory ... and the SST memory footprint is much bigger.
2019-07-19 13:37:27 +01:00