Commit graph

28 commits

Author SHA1 Message Date
martinsumner
e66e326c2b Dialyzer help
Add specs and docs
2017-05-30 16:50:23 +01:00
martinsumner
684f1bcd99 Increase bloom size 2017-01-25 01:07:15 +00:00
martinsumner
10a64b86be Remove rogue timestamp 2017-01-24 21:53:43 +00:00
Martin Sumner
f8f2e02d92 Use bel for powers of two
D’oh.  That’s much much faster of course!
2017-01-24 18:09:51 +00:00
martinsumner
8c3d0fc493 Alternate implementation 2017-01-24 17:15:39 +00:00
martinsumner
9d95057518 Do it daft way - will it be faster? 2017-01-24 17:00:30 +00:00
martinsumner
93448b76ba Add some extra length checks 2017-01-24 15:49:19 +00:00
martinsumner
a8488663c7 Alternate tinybloom
Previously the code had used a tiny bloom - but this proved to be
expensive to build.  Looking at the alternative of a slot-size only tiny
bloom
2017-01-24 15:48:12 +00:00
Martin Sumner
58cda7d157 Switch to using skip lists from leveled_tree
Remove now unused leveled_skiplist and leveled_tinybloom
2017-01-21 22:34:56 +00:00
Martin Sumner
8289c3b783 full reversion 2017-01-04 00:26:52 +00:00
Martin Sumner
85aaccfe31 Revert to non-split tinybloom 2017-01-03 23:53:57 +00:00
Martin Sumner
be1d678d85 Revert to two hash tiny bloom 2017-01-03 23:43:43 +00:00
martinsumner
2f3eb18548 Re-add usort
Change one thing at a time
2017-01-03 18:26:54 +00:00
Martin Sumner
fba70edc94 Stop sort
sort probably doesn’t help
2017-01-03 17:08:40 +00:00
martinsumner
5b4c903d53 Check before update on bloom 2017-01-02 20:02:49 +00:00
martinsumner
baa644383d Make tinybloom size configurable
Allow the bloom size to vary depending on how many fetchable keys there
are - so ther eis no large bloom held if most of the keys are index
entries for example
2017-01-02 18:29:15 +00:00
martinsumner
972aa85012 Try three hash tinybloom
Improved fpr in three hash bloom - so examine performance
2017-01-02 18:09:36 +00:00
martinsumner
4784f8521a Entropy fiddle
Try and increase efefctiveness of bloom by combing Magic Hash with
phash2
2016-12-29 11:59:07 +00:00
martinsumner
cbad375373 Refactoring of skiplist ranges and support for sst ranges
the Skiplist range code was needlessly complicated.  It may be faster
than the new code, but the complexity delta cannot be support for such a
small change.

This was incovered whilst troubleshooting the initial kv range test.
2016-12-28 15:48:04 +00:00
martinsumner
58d8e60994 Some basic code layout work 2016-12-24 15:12:24 +00:00
martinsumner
b1a3b4ad13 Switch slot to gb_trees and size of 128 2016-12-24 00:02:06 +00:00
martinsumner
4466210ac8 Revert back to slot size of 256
Changing the slot size higher has a significant impact on the fetch
time, although it allows for more constant time on write.  i.e. doubling
the size means 5 x cost of read, if only a 10% increase at write time.
2016-12-23 17:07:05 +00:00
martinsumner
b1429a7330 Experiment with slot width of 512 2016-12-23 16:49:16 +00:00
martinsumner
60bddbc874 More timing - and changes slot width 2016-12-23 13:17:59 +00:00
martinsumner
90e587dcee Initial functions and unit tests
Try to replace SFT files with one that more natively supports features
already in use (e.g. skiplist, tinybloom and magic_hash)
2016-12-23 12:30:58 +00:00
martinsumner
f28c7e02bf Remove unnecessary clause
As the intention is to change the way the tiny bloom is called, the
unnecessary clause of handling an undefined bloom can be removed.
2016-12-11 21:24:04 +00:00
martinsumner
523716e8f2 Add tiny bloom to Penciller Manifest
This is an attempt to save on unnecessary message transfers, and
slightly more expensive GCS checks in the SFT file itself.
2016-12-11 04:48:50 +00:00
martinsumner
2d3a40e6f1 Magic Hash - and no L0 Index
Move to using the DJ Bernstein Magic Hash consistently, and trying to
make sure we only hash once for each operation (as the hash is more
expensive than phash2).

The improved lookup time for missing keys should allow for the L0 index
to be removed, and hence speed up the completion time for push_mem
operations.

It is expected there will be a second stage of creating a tinybloom as
part of the SFT creation process, and then adding that tinybloom to the
manifest.  This will then reduce the message passing required for a GET
not in the cache or higher levels
2016-12-11 01:02:56 +00:00