Kresten Krab Thorup
5facc3df18
Undo fancy-pancy sext key encoding
...
Sadly, this didn't work
Have to investigate more…
2012-04-16 21:51:01 -04:00
Kresten Krab Thorup
1cf4805da5
Utilize sext to optimize bucket range queries
...
Also re-fix the range arguments which were broken
in a previous commit.
2012-04-16 21:51:01 -04:00
Kresten Krab Thorup
e7a621e449
Handle exceptions inside sync_fold_range
...
Someone tried (tsk, tsk) to terminate a fold operation
by throwing an exception. Now we also should handle
such situations gracefully.
2012-04-16 21:49:15 -04:00
Steve Vinoski
4dab3a65e5
remove throw statements from fold functions
2012-04-16 21:42:04 -04:00
Kresten Krab Thorup
454a111ad7
Handle exceptions inside sync_fold_range
...
Someone tried (tsk, tsk) to terminate a fold operation
by throwing an exception. Now we also should handle
such situations gracefully.
2012-04-17 00:29:28 +02:00
Steve Vinoski
a911734134
lsm_btree:sync_fold_range/5 no longer exists, use /4 instead
2012-04-16 17:46:43 -04:00
Steve Vinoski
79872680da
rename temp_riak_kv_backend to lsm_btree_temp_riak_kv_backend
...
The module temp_riak_kv_backend is already used in another experimental
storage backend. Rename it to avoid collisions when trying to use both
backends in riak together.
2012-04-16 17:25:51 -04:00
Steve Vinoski
eefada16ac
restore lookup/2 function, for compatibility
2012-04-16 16:50:55 -04:00
Kresten Krab Thorup
5f9f5c18d6
Add #btree_range to all fold ops
...
lets you specify this for fold operations
#btree_range {
from_key :: binary(),
from_inclusive = true :: boolean(),
to_key :: binary() | undefined,
to_inclusive = false :: boolean(),
limit = undefined :: pos_integer() | undefined
}
2012-04-16 16:46:57 -04:00
Kresten Krab Thorup
9a7959ff4c
Simplify KEY_IN_RANGE macro
2012-04-16 16:45:25 -04:00
Gregory Burd
8409df447d
Another notfound -> not_found fix
2012-04-16 07:31:14 -04:00
Gregory Burd
5c5934549f
The nursery was far too small, increase it from 32 to 8192 objects.
2012-04-15 17:23:42 -04:00
Gregory Burd
e81a3480ab
Fix silly oversight with variable names, add better data dir prep.
2012-04-15 16:56:19 -04:00
Gregory Burd
4eaa02ac3f
Formatting
2012-04-15 16:55:12 -04:00
Gregory Burd
b4823d3e8f
Formatting
2012-04-15 16:54:27 -04:00
Gregory Burd
61d360550e
Use not_found uniformly (rather than notfound).
2012-04-15 15:34:42 -04:00
Gregory Burd
5338a07c54
Don't prefix vnode directories with the backend name
2012-04-15 14:36:05 -04:00
Gregory Burd
a04475b871
Add lsm_btree into the list of applications in riak_kv.app.src
2012-04-15 14:35:31 -04:00
Gregory Burd
b325f3e792
* Changed "lookup" to "get" just because
...
* Added copyright notices to files
* Added Apache 2.0 License file with permission from Kresten/Trifork
* Changed the handle from "Db" to "Tree" because... it made me feel better
* Other minor changes here and there
2012-04-15 10:35:39 -04:00
Gregory Burd
e6e3b55d23
Minor renaming
2012-04-15 07:24:26 -04:00
Gregory Burd
95d18b6cd5
Minor name change
2012-04-15 07:23:44 -04:00
Gregory Burd
38457ebc91
Minor rename
2012-04-15 07:20:19 -04:00
Gregory Burd
e581370242
Minor rename
2012-04-15 07:19:50 -04:00
Gregory Burd
771522d0a9
Use proper naming
2012-04-15 07:13:10 -04:00
Steve Vinoski
4bc1eb6e19
add riak kv backend
2012-04-14 20:49:56 -04:00
Kresten Krab Thorup
f0def8231b
Introduce btree_range record for range queries
...
This allows specifying ranges with from/to
being inclusive or not, and providing a result
limit (latter not implemented yet).
This change just makes all current tests pass.
2012-01-23 00:51:31 +01:00
Kresten Krab Thorup
afec223f03
Give range query test some more time...
2012-01-23 00:49:43 +01:00
Kresten Krab Thorup
42b353ecfd
Implement sequential/random reader API
2012-01-23 00:49:07 +01:00
Kresten Krab Thorup
739fd03715
Merge pull request #9 from jlouis/qc-sync-fold-range
...
Qc sync fold range
2012-01-22 04:57:51 -08:00
Jesper Louis Andersen
363e94c3cf
Implement sync_fold_range as part of the test.
2012-01-22 13:10:34 +01:00
Jesper Louis Andersen
e61f80f4e0
Do not clean up trees twice. Once is enough.
2012-01-22 13:10:33 +01:00
Kresten Krab Thorup
90ba15fca8
Merge pull request #8 from jlouis/qc-sync-range
...
Qc sync range
2012-01-21 13:42:17 -08:00
Jesper Louis Andersen
baa779ddaa
Fix a bug in lsm_tree:close/1.
...
There is a race condition based on the monitor set in a call. We might
get a normal exit from the monitor message deep inside gen_server.
This has to be handled. I've seen this race in my QC tests.
2012-01-21 21:17:33 +01:00
Jesper Louis Andersen
bb17564d9c
Make the sync_range call test work.
...
Currently, we are also synchronizing all the key collection in the
call. But in the future we might want to interleave that with other
operations.
2012-01-21 21:16:24 +01:00
Jesper Louis Andersen
e00378639b
Build a record for the trees.
...
This is a needed step to support range-queries since we may collect
range queries at a later time, interleaved with the normal operations.
2012-01-21 15:15:19 +01:00
Jesper Louis Andersen
6293ada2f4
Provide a target for an eunit_console.
2012-01-21 15:13:22 +01:00
Kresten Krab Thorup
fc024e95b6
Make proper range fold in nursery
2012-01-20 14:08:07 +01:00
Kresten Krab Thorup
ec2fe4ce8c
Make close/1 resilient to noproc
...
Getting noproc exceptions here is ok, we simply
ignore such errors.
2012-01-20 10:14:47 +01:00
Kresten Krab Thorup
30a0bd4b01
Use ?BTREE_SIZE macro everywhere
2012-01-20 10:09:54 +01:00
Kresten Krab Thorup
c26e0695c5
Finish renaming lsm_btree_merger2
2012-01-20 10:06:43 +01:00
Kresten Krab Thorup
07b6b17534
Rename merger2 -> merger
2012-01-20 10:05:08 +01:00
Kresten Krab Thorup
1ad7bb2158
Remove unused merger
2012-01-20 10:04:10 +01:00
Kresten Krab Thorup
30ad1f0794
Use ?TOMBSTONE macro everywhere
2012-01-19 15:19:22 +01:00
Kresten Krab Thorup
f56f530d7a
Add both sync and async range fold
...
Sync blocks insert/lookup while doing a range
query, but still buffers the results in a
per-range query process.
Async fold runs on a hard link copy of the
underlying tree data.
This commit and also fixes a number of bugs
related to folding; it was not taking nursery
data into account.
2012-01-19 14:25:47 +01:00
Kresten Krab Thorup
ead8d3a41d
Make lsm_btree:close/1 stop more processes
...
Closing a tree did not stop ongoing merge
processes beyond the current top level.
Now close synchronously calls down through all
levels and closes each one.
2012-01-19 14:19:16 +01:00
Kresten Krab Thorup
6e9ef1ee47
Update readme
2012-01-19 14:15:57 +01:00
Kresten Krab Thorup
3ddfd97aea
Close trees before cleanup
...
Problem is that we sometimes get errors resulting
from files being written as a result of pending
merges. Closing a tree should stop all such
file-level activity.
2012-01-19 14:15:46 +01:00
Kresten Krab Thorup
29d1493415
Rename lsm_btree:range/3 to lsm_btree:async_range/3
2012-01-16 15:13:47 +01:00
Erik Søe Sørensen
49c8d5b06f
Clarify level handling in writer.
2012-01-16 07:50:31 +08:00
Erik Søe Sørensen
fa39f85a00
README: Explain 'LSM' and provide link to paper.
2012-01-16 07:49:58 +08:00