Commit graph

110 commits

Author SHA1 Message Date
Steve Vinoski
86955b0aef modify enable-wterl to avoid adding wterl repeatedly
Before modifying files to add wterl, check to make sure the addition hasn't
already been made. Also change to do a stagedevrel build instead of a
devrel build.
2012-10-26 10:22:59 -04:00
Steve Vinoski
1de84ff8c3 update rebar and rebar.config 2012-10-26 09:25:35 -04:00
Steve Vinoski
f8454b11e1 update to WiredTiger 1.3.5 2012-10-26 09:19:47 -04:00
Steve Vinoski
62252ee6ba update to WiredTiger 1.3.4 2012-10-19 08:17:19 -04:00
Steve Vinoski
99b096caf3 check return value of wterl:session_create
Versions of WiredTiger prior to 1.3.3 had trouble handling riak restarts,
returning errors from wterl:session_create that would prevent riak from
restarting if it was not cleanly shut down on the previous run. We
previously avoided checking the return value of wterl:session_create to
avoid this problem. WT 1.3.3 fixes this, so reinstate the check of the
wterl:session_create return value.
2012-10-14 13:43:21 -04:00
Steve Vinoski
4f17de26d4 fix wterl git url in enable-wterl script 2012-10-14 13:35:19 -04:00
Steve Vinoski
d7127b03e2 update to WiredTiger 1.3.3 2012-10-11 13:33:37 -04:00
Steve Vinoski
b2807e2c14 upgrade to WiredTiger version 1.3.0
Since 1.3.0 folded the session sync function into the session checkpoint
function, the wterl:sync/(2,3) functions are now renamed
wterl:checkpoint/(1,2). See
http://source.wiredtiger.com/1.3.0/upgrading.html for details.
2012-09-17 10:58:48 -04:00
Steve Vinoski
6c808da7af update to WiredTiger 1.2.2 2012-06-20 15:24:16 -04:00
Steve Vinoski
d766ca1790 update to WiredTiger 1.2.1 2012-06-15 08:54:13 -04:00
Gregory Burd
efc0b3e82c Make sure wterl is started 2012-06-07 13:20:28 +01:00
Gregory Burd
57a70dc331 Merge branch 'master' of github.com:basho/wterl
Conflicts:
	c_src/build_deps.sh
2012-06-04 09:18:15 +01:00
Gregory Burd
d14e171f4b WIP: Update to WiredTiger 1.2.0 release 2012-06-04 09:16:35 +01:00
Steve Vinoski
3e676f82ad update to WiredTiger 1.1.5 2012-04-26 10:16:52 -04:00
Steve Vinoski
36d6c3bbad fix tests to use temp_riak_kv_backend module 2012-04-16 19:55:41 -04:00
Steve Vinoski
7ca3bb4385 update to WiredTiger 1.1.4 2012-04-16 19:55:12 -04:00
Steve Vinoski
793c5c7338 allow WiredTiger config to be set in application env
WiredTiger connection options can be set in the wterl application
environment. If not set, appropriate defaults are used instead.
2012-04-09 16:50:01 -04:00
Steve Vinoski
509cc92cfc fix copyright dates 2012-04-09 16:49:26 -04:00
Steve Vinoski
cd8a563aa4 apply evict-fixes patch to wiredtiger 1.1.3 2012-04-07 09:49:00 -04:00
Steve Vinoski
145810d5b0 add wterl_ets to hold ets table for wterl_conn 2012-04-05 16:10:50 -04:00
Steve Vinoski
2e37fc1bd1 avoid using cursor-fetched values after closing cursor
The wterl:session_get function was fetching a value using a cursor, then
closing the cursor, and then trying to use the fetched value to create the
return binary. According to the WiredTiger documentation, this is a no-no
-- a value is good only until the next operation on the cursor used to
fetch it. We've been seeing occasional segmentation violations in the
memcpy for the fetched value, and this might explain it.
2012-04-04 20:13:58 -04:00
Steve Vinoski
2618ba24e7 wterl:session_create still fails, keep ignoring return value 2012-04-04 15:57:38 -04:00
Steve Vinoski
fbc6f9b440 update to WiredTiger 1.1.3
Update to WiredTiger 1.1.3 and also reinstate checking that
wterl:session_create returns ok.
2012-04-04 15:20:08 -04:00
Steve Vinoski
ca36db5709 NIF code cleanup
Use camel case for type names, make brace placement consistent.
2012-04-02 18:01:02 -04:00
Steve Vinoski
6945ab230b add QuickCheck tests for wterl
Borrow QuickCheck tests from eleveldb and adapt them for WiredTiger.
2012-04-02 16:24:46 -04:00
Steve Vinoski
1105a9fed5 no longer need to set wterl in riak_kv.app.src file 2012-03-31 19:41:07 -04:00
Steve Vinoski
29acf9df7a make riak_kv_wterl_backend start the wterl app 2012-03-30 21:01:24 -04:00
Steve Vinoski
ea3e73c0d7 update to WiredTiger 1.1.2 2012-03-28 10:20:42 -04:00
Steve Vinoski
dc3d674d62 add README 2012-03-27 22:27:50 -04:00
Steve Vinoski
2c9557e394 add helper script to enable wterl
Add a helper script to enable wterl in a riak devrel build. The script is
meant to be temporary, to be used during wterl development.
2012-03-26 20:13:13 -04:00
Steve Vinoski
ae10343179 change riak_kv_wterl_backend unit tests
Make the unit tests call riak_kv_backend:standard_test like other
backends do for their unit tests. This is a little awkward at the
moment because riak_kv_backend.erl doesn't live in this repository, so
it requires temporarily copying it into src to run "rebar eunit".
2012-03-15 19:27:36 -04:00
Steve Vinoski
9c9075e70d add fold/3 to wterl.erl and fix dialyzer warnings
The backend fold_objects was failing because it was trying to use
wterl:fold_keys/3, which doesn't fold over values. Add fold/3 to
wterl.erl to fix this.

Also clean up a few dialyzer warnings.
2012-03-15 19:26:02 -04:00
Steve Vinoski
221df5337d update to WiredTiger 1.1.1 2012-03-12 10:22:22 -04:00
Steve Vinoski
91a6acc2a4 add type specs 2012-03-11 20:18:59 -04:00
Steve Vinoski
7219281b31 increase session count and ignore table creation errors
WiredTiger session count defaults to 50, but we need at least one per
vnode, so for now hard-code it to 100. Also ignore table creation
results in the kv backend because WiredTiger is currently producing a
strange error if the table already exists.
2012-03-11 11:48:22 -04:00
Steve Vinoski
99a51980eb store session as kv backend state
In order to reduce the number of wiredtiger session open/close calls,
open a session at startup and keep it in the kv backend state. This is
safe as far as using these sessions on scheduler threads goes because
the riak_kv_vnode fsm serializes all calls through the backend, so
we'll never have a case of multiple scheduler threads concurrently
trying to use the same session.
2012-03-10 13:02:52 -05:00
Steve Vinoski
dc01981be8 add temp copy of riak_kv_backend
Add a temporary copy of riak_kv_backend, renamed to
temp_riak_kv_backend, to allow wterl to build on its own. This file
must be deleted when riak_kv_wterl_backend is moved to its proper
place in riak_kv.
2012-02-28 13:16:57 -05:00
Steve Vinoski
869efc46df add unit tests to wterl_conn 2012-02-27 22:01:27 -05:00
Steve Vinoski
8dcbe6c396 remove experimental test for now 2012-02-27 22:01:27 -05:00
Steve Vinoski
9177bd5c10 initial version of riak_kv_wterl_backend
The riak_kv_wterl_backend really belongs in riak_kv, but we're putting
it here for now to keep it private.
2012-02-27 22:01:27 -05:00
Keith Bostic
cddaf8e1d9 Replace enif_alloc_binary/enif_make_binary call pairs with a single
enif_make_new_binary call.
2012-02-20 13:30:09 -05:00
Steve Vinoski
6c0f14da6e add fold_keys, and funs for getting keys and values via cursors
Change cursor_{next,prev} to return {ok, Key, Value}. Add
cursor_{next,prev}_{key,value} functions to allow cursor movement
followed by fetch of either key or value. Add fold_keys function. Add
unit tests for these changes. Also specify "inorder" on the unit test
generator functions, since the tests they specified are intended to be
run that way.
2012-02-19 20:20:38 -05:00
Steve Vinoski
085e703a32 revised wterl tests to take advantage of eunit
Break the single wterl unit test into a series of tests separated by
function. Use eunit assert macros and add test setup and teardown
functions. Add descriptive messages for the tests for display under
"rebar -v eunit".
2012-02-17 23:16:00 -05:00
Keith Bostic
3323cf5844 I messed up some minor style/indentation, ignore all calls to cursor->close
(that's not correct, but it will do for now).
2012-02-17 09:07:25 -05:00
Steve Vinoski
7e6d947765 make wterl an app, cache the WT connection
Add app, supervisor, and worker to open and cache the database
connection. Revert to using binaries for WT config in order to allow
wterl callers to use proplists for configuration. Change {error,
not_found} to not_found return values from wterl.
2012-02-17 00:42:22 -05:00
Keith Bostic
c89d6deaea minor stylistic updates. 2012-02-16 19:24:18 -05:00
Keith Bostic
212a735339 Implement the rest of the interesting cursor operations (insert, update, remove). 2012-02-16 19:06:56 -05:00
Keith Bostic
33b8ea60cf Implement the rest of the session methods.
Format pass, naming pass.
2012-02-16 18:44:28 -05:00
Keith Bostic
7a19859ede Rename table_{create,drop} session_{create,drop}, they operate on things
other than tables, and we no longer hardcode the object type.
2012-02-16 15:07:44 -05:00
Keith Bostic
6f0357b4c5 Fix cursor.{open,close}, it now works.
Add support for cursor.{next,prev,search,search_near,reset}.

Change table_create to no longer pass back the table name, WiredTiger's
model is that you pass in the object name each time (and the current
model means we can't drop the table before we run the tests).

Upgrade to the WiredTiger 1.0 release, there's a bug where static
libraries aren't created correctly, for now create shared libraries
for wterl.
2012-02-16 14:57:28 -05:00