Commit graph

375 commits

Author SHA1 Message Date
Kresten Krab Thorup
4e82d5f81a Add license for vbisect 2014-11-28 16:25:48 +01:00
Kresten Krab Thorup
875459dcd2 Improve tests/dialyzing. 2014-11-28 16:22:20 +01:00
Kresten Krab Thorup
198da5ef5f Use new on-disk page format
This updates moves from kvlist to on-disk bisect
format (https://github.com/krestenkrab/vbisect)
which means that tree pages are not deserialised
when read form disk.  This improves performance
of GETs by ~20% and improves top-level latencies
significantly.

CRC32 checks are now on the page level.
2014-11-28 16:21:59 +01:00
Kresten Krab Thorup
f4feca27e5 Use ebloom by default
This commit changes the default bloom filter to
be basho’s bloom, which is significantly more
stable w.r.t. performance.  The code can still
read the old bloom filters; new files are written
with the new filters.

The default is controlled in src/hanoidb.hrl
using the USE_EBLOOM macro.
2014-11-28 16:15:20 +01:00
Kresten Krab Thorup
a1bbadfb34 Update travis to include 17 2014-11-26 14:00:22 +01:00
Kresten Krab Thorup
810d183770 Fix crash in recovery code 2014-11-26 13:59:36 +01:00
Kresten Krab Thorup
1715c29364 Remove some lock contention when fsync’ing 2014-11-26 13:57:47 +01:00
Kresten Krab Thorup
0fa8ab4a02 Fix up the ensure_started code 2014-11-26 13:21:53 +01:00
Kresten Krab Thorup
752f9f5b62 Fix min/max level for recovery
Previous commit f0d24894c5
introduced a bug in recovery code.
2014-11-26 12:51:01 +01:00
Kresten Krab Thorup
71c4243701 Don’t open exclusive when re-opening a merge file 2014-11-26 12:44:50 +01:00
Kresten Krab Thorup
3b6b0ce197 Support sys messages in hanoidb_merger processes 2014-11-26 11:52:53 +01:00
Kresten Krab Thorup
f0d24894c5 Make the top_level parameter configurable. 2014-11-21 00:41:40 +01:00
Kresten Krab Thorup
4ba712512d Add travis build status button 2014-11-20 23:11:51 +01:00
Kresten Krab Thorup
70936cd51f Make tests run again
We had a bad regression with #31 due to the
tests not being run automatically.
2014-11-20 23:08:14 +01:00
Kresten Krab Thorup
74c9bf6154 Swap arguments. Fixes issue #31 2014-11-20 22:42:14 +01:00
Kresten Krab Thorup
ea88b32d4e Merge pull request #30 from brigadier/patch-2
add plain_fsm app in the 'applications' section of .app.src
2014-11-20 12:49:53 +01:00
Evgeny M.
7595560572 add plain_fsm app in the 'applications' section of .app.src
plain_fsm must be started prior to hanoidb
2014-11-20 14:01:13 +03:00
Kresten Krab Thorup
bac8a8620f Leave the tests out as per @essen’s comments
resolves issue #29
2014-11-19 00:07:33 +01:00
Kresten Krab Thorup
d0620f241f Make default “all” target really do all.
This fixes issue #29
2014-11-18 22:04:28 +01:00
Kresten Krab Thorup
2b95bfcf49 Merge branch 'master' of github.com:krestenkrab/hanoidb 2014-11-17 11:03:23 +01:00
Kresten Krab Thorup
5acd8cbc7a Add travis build file 2014-11-17 10:57:25 +01:00
Kresten Krab Thorup
3b776a7bf1 Merge pull request #28 from brigadier/patch-1
Update Makefile
2014-11-14 19:34:22 +01:00
Evgeny M.
59c6d47bf7 Update Makefile
update makefile to make it compatible with erlang.mk
2014-11-14 20:47:38 +03:00
Kresten Krab Thorup
697683240d Make ebloom / scalable bloom a compile-time option
bloom (from basho) uses a NIF implementation which
may be faster and use less memory; test before use.

The “old” bloom, a.k.a. “scalable bloom” 
is pure erlang, which also has nice properties. 

Note!  Switching to ebloom changes the file format
so the default is still to use ‘scalable bloom’.
2014-10-21 15:03:53 +01:00
Kresten Krab Thorup
813863c9c3 Merge pull request #27 from eryx67/master
fix memory leak
2014-08-11 12:36:58 +02:00
eryx67
b97de217ed fix memory leak 2014-08-11 16:17:17 +06:00
Kresten Krab Thorup
e58d2577a0 Update dependency for snappy 1.0 -> 1.1 2014-04-03 00:00:33 +02:00
Kresten Krab Thorup
6bde50dd73 Trying to build the build representation fails.
More specifically

   encode(decode(encode(...)))

fails for dense (small) bloom filter sizes.
2014-04-02 23:57:23 +02:00
Kresten Krab Thorup
ce3a7049f2 Fix plain bug 2014-04-02 22:39:43 +02:00
Kresten Krab Thorup
e37623a84c Fix argument order for plain_fsm:handle_system_msg
plain_fsm documentation was wrong https://github.com/uwiger/plain_fsm/pull/4, so now it should be able to send sys messages
to hanoi.
2014-02-14 08:25:26 -05:00
Kresten Krab Thorup
e3689c3d87 Merge pull request #18 from eriksoe/bloom-sparse-representation
Bloom filter: make "don't set if already set" logic more fine-grained.
2012-09-27 04:53:44 -07:00
Erik Søe Sørensen
e1fddd6633 Bloom filter: make "don't set if already set" logic more fine-grained.
This results in a minor "bloom add" performance gain of ~10%.
2012-09-27 13:17:32 +02:00
Kresten Krab Thorup
35de7a3300 Enable lz4 compression 2012-09-26 16:05:51 +02:00
Kresten Krab Thorup
923dbe3852 Fix typing for bit array representation
For now we keep the bit array representation code
around in case someone has bloom filters
persisted that use this representation. Going
forward we should remove this from the code.
2012-09-26 15:27:56 +02:00
Kresten Krab Thorup
c439b510f9 Merge branch 'master' of github.com:krestenkrab/hanoidb 2012-09-26 15:12:19 +02:00
Kresten Krab Thorup
0449e442f7 Remove most dialyzer warnings
This is a large change set, which adds type specs
needed for dialyzer to be happy.  We likely
need even more type specs as we move forward.
2012-09-26 15:11:55 +02:00
Kresten Krab Thorup
5ee9ff4a42 Merge pull request #17 from eriksoe/bloom-sparse-representation
Bloom sparse representation
2012-09-25 10:59:37 -07:00
Erik Søe Sørensen
ed65b5a468 Bloom filter: replace array with faster custom representation. 2012-09-25 17:12:10 +02:00
Erik Søe Sørensen
1c6e0df15c Bloom filter: Handle hibernate situation in dense_bitmap. 2012-09-25 15:17:24 +02:00
Erik Søe Sørensen
12148a7af9 Bloom filter: Add faster, ETS-based build representation for dense bitmaps. 2012-09-25 15:05:43 +02:00
Erik Søe Sørensen
d727be2fa7 Bloom filter: remove double-testing introduced in dispatch. 2012-09-25 14:51:45 +02:00
Erik Søe Sørensen
a475b5f5be Bloom filter: Introduce dispatch for handling multiple representations. 2012-09-25 14:28:31 +02:00
Erik Søe Sørensen
5e69a0ca04 Bloom filter: Prepare for having other representations. 2012-09-25 14:15:59 +02:00
Kresten Krab Thorup
4592bc000b Merge pull request #14 from eriksoe/bloom-performance-fix
Bloom filter: Have only one level when using large sparse array.
2012-09-25 04:52:31 -07:00
Erik Søe Sørensen
f978f5652c Bloom filter: Have only one level when using large sparse array. 2012-09-25 12:59:28 +02:00
Kresten Krab Thorup
adab9556db Update contributors 2012-09-25 11:31:27 +02:00
Kresten Krab Thorup
5733075cda Make tests compile with Triq again 2012-09-25 11:31:13 +02:00
Joseph Wayne Norton
4023ecf013 Add spawn_opt option for open and open_link.
Typically used to specify non-default, garbage collection options.
2012-09-25 15:15:37 +09:00
Joseph Wayne Norton
1bbea4b87d Fix case clause error.
This is a fix for commit dce62a8 originally targeted for
https://github.com/krestenkrab/hanoidb/issues/12 where an old file
descriptor is used when storing 2i (transact data) causes the tx log
to roll.
2012-09-25 12:15:54 +09:00
Kresten Krab Thorup
b254a5e345 Remove some compiler warnings
Add type information to the nursery structure
2012-09-24 17:50:08 +02:00