leveled/src
Martin Sumner f8485210ed
Mas i370 d31 sstmemory (#373)
* Don't use fetch_cache below the page_cache level

* Don't time fetches due to SQN checks

SQN checks are all background processes

* Hibernate on SQN check

SQN check in the penciller is used for journal (all object) folds, but mainly for journal compaction.  Use this to trigger hibernation where SST files stay quiet after the compaction check.

* Add catch for hibernate timeout

* Scale cache_size with level

Based on volume testing.  Relatively speaking, far higher value to be gained from caches at higher levels (lower numbered levels).  The cache at lower levels are proportionally much less efficient.  so cache more at higher levels, where there is value, and less at lower levels where there is more cost relative to value.

* OTP 24 fix to cherry-pick

* Make minimal change to previous setup

Making significant change appears to not have had the expected positive improvement - so a more minimal change is proposed.

The assumption is that the cache only really gets used for double reads in the write path (e.g. where the application reads before a write) - and so a large cache make minimal difference, but no cache still has a downside.

* Introduce new types

* Mas i370 d30 sstmemory (#374)


* Don't time fetches due to SQN checks

SQN checks are all background processes

* Hibernate on SQN check

SQN check in the penciller is used for journal (all object) folds, but mainly for journal compaction.  Use this to trigger hibernation where SST files stay quiet after the compaction check.

* Add catch for hibernate timeout

* Scale cache_size with level

Based on volume testing.  Relatively speaking, far higher value to be gained from caches at higher levels (lower numbered levels).  The cache at lower levels are proportionally much less efficient.  so cache more at higher levels, where there is value, and less at lower levels where there is more cost relative to value.

* Make minimal change to previous setup

Making significant change appears to not have had the expected positive improvement - so a more minimal change is proposed.

The assumption is that the cache only really gets used for double reads in the write path (e.g. where the application reads before a write) - and so a large cache make minimal difference, but no cache still has a downside.

* Introduce new types

* More memory management

Clear blockindex_cache on timeout, and manually GC on pclerk after work.

* Add further garbage collection prompt

After fetching level zero, significant change in references in the penciller memory, so prompt a garbage_collect() at this point.
2022-04-23 13:38:20 +01:00
..
leveled.app.src Add lz4 dep 2021-03-02 14:21:13 +00:00
leveled_bookie.erl Fix spec for book_hotbackup/1 2021-11-10 10:52:19 +00:00
leveled_cdb.erl Tidy up some undefined functions in dialyzer specs (#368) 2021-11-05 09:16:34 +00:00
leveled_codec.erl Mas i370 d31 sstmemory (#373) 2022-04-23 13:38:20 +01:00
leveled_ebloom.erl Mas i340 doublel3 d31 (#347) 2021-08-23 17:18:45 +01:00
leveled_head.erl Improve test 2020-03-16 18:53:40 +00:00
leveled_iclerk.erl Update src/leveled_iclerk.erl 2020-12-04 14:31:47 +00:00
leveled_imanifest.erl Fixup comments 2019-11-19 16:36:57 +00:00
leveled_inker.erl Tidy up some undefined functions in dialyzer specs (#368) 2021-11-05 09:16:34 +00:00
leveled_log.erl Reduce logging 2020-08-05 18:54:13 +01:00
leveled_math.erl log 2 compat 2018-10-24 15:42:21 +01:00
leveled_pclerk.erl Mas i370 d31 sstmemory (#373) 2022-04-23 13:38:20 +01:00
leveled_penciller.erl Mas i370 d31 sstmemory (#373) 2022-04-23 13:38:20 +01:00
leveled_pmanifest.erl Handle a Filename not being present in pending_deletes (#357) 2021-10-18 11:06:52 +01:00
leveled_pmem.erl Align cache with default 2019-02-25 23:35:12 +00:00
leveled_rand.erl Make tests compatible with OTP 16 2017-09-15 15:10:04 +01:00
leveled_runner.erl Develop 3.1 eqc (#339) 2021-05-26 17:40:09 +01:00
leveled_sst.erl Mas i370 d31 sstmemory (#373) 2022-04-23 13:38:20 +01:00
leveled_tictac.erl Mas i335 otp24 (#336) 2021-05-25 13:41:20 +01:00
leveled_tree.erl Remove use of string rather than straddle OTP version 2018-12-11 15:44:37 +00:00
leveled_util.erl Mas i335 otp24 (#336) 2021-05-25 13:41:20 +01:00