Commit Graph

100 Commits

Author SHA1 Message Date
Keith Bostic
908671fc2f Remove the automake shared library magic around loading the bzip2 compressor
in raw-test mode, it's a lot simpler to load two compressors, the normal one
and a raw-test version.
2014-01-31 12:38:14 -05:00
Keith Bostic
51b6c7b2df Zlib compression does "raw" compression in all cases, rename the "raw"
configuration to bzip-raw.

Leave bzip raw in place, it deliberately tries to hit some of the edge
cases around raw compression, which can't hurt.
2014-01-31 12:11:04 -05:00
Michael Cahill
6844c40e5d Add support for zlib compression 2014-01-23 10:41:29 +11:00
Keith Bostic
e868998e1a move ext/test/helium to ext/datasources/helium, we're shipping Helium
support for the forseeable future.
2014-01-20 09:44:22 -05:00
Keith Bostic
e535469961 Merge branch 'develop' into helium 2014-01-20 09:03:38 -05:00
Keith Bostic
51dd5375de Add the "-H helium_mount" command-line option instead of hard-wiring the
Helium volume mount point.
2014-01-18 14:40:45 -05:00
Keith Bostic
4760aac2b2 Add a mmap configuration to test/format, run with mmap 90% of the time. 2014-01-16 14:42:15 -05:00
Keith Bostic
6063b1cc0e First version of the Levyx/Helium code, derived from the Memrata code.
It doesn't run yet, but it compiles and limps to a core dump.
2014-01-15 11:46:07 -05:00
Keith Bostic
5b509b7220 Update copyright notices for 2014.
Move lang/java and lang/python into the public domain.
2014-01-07 10:30:12 -05:00
Keith Bostic
9aa469e13e Better/fixed support for huge keys/values.
Change the WT_ITEM::size field from type uint32_t to size_t.

Change test/format configuration to support large key/value items.

Ref: #808 and #70.
2013-12-16 12:55:50 -05:00
Michael Cahill
41102ae2a8 Make LSM chunk size configurable in test/format. 2013-12-10 16:45:01 +11:00
Keith Bostic
6c9d61f771 Allow replay of threaded runs. 2013-12-07 10:48:52 -05:00
Keith Bostic
add06757e6 Add a bunch of the newer LSM configuration options, but leave turned off
for now.
2013-12-06 14:58:11 -05:00
Keith Bostic
f4efe847b8 Make bloom_oldest configurable for LSM runs. 2013-12-06 14:18:44 -05:00
Keith Bostic
decb4d8437 Make the random number config use consistent, 1-to-X everywhere instead of
0-to-(X-1) in a few places.
2013-12-06 14:11:06 -05:00
Keith Bostic
6b33f719e0 Add configuration support for categories of checksums (10% on, 10% off,
80% uncompressed, by default).

Only run single-threaded 10% of the time (previously, 25%).
2013-12-06 14:02:19 -05:00
Keith Bostic
bdb57e3df6 Add support for a -h home argument so can easily run in a target directory. 2013-12-06 11:54:43 -05:00
Keith Bostic
256af27d57 Add a compaction option, set compaction 10% of the time.
Switch first-fit allocation set from 20% to 10% of the time.
2013-12-05 09:26:59 -05:00
Keith Bostic
6ad2068cb7 Create a single thread that occasionally compacts the object -- compaction
is a long-running operation and we don't want every worker thread doing it.
2013-11-25 10:09:22 -05:00
Keith Bostic
157a4e86a7 Compression changes.
Change compaction to attempt compaction any time it looks likely we can
recover the last 10% of the file, and, for now, to only attempt to
recover that last 10% of the file.

Don't rewrite a block if there isn't a useful available block in the
first 90% of the file.  (Previously, compacting the whole file in one
pass could end up re-writing blocks to available blocks at the end of
the file which isn't useful, and, in some cases, even extending the
file.

The reason we're only compacting the last 10% of the file is that we
will need to checkpoint periodically otherwise re-written blocks, which
should be the new, available blocks for compaction, won't be considered
because they're still in use.  Doing that automatically will be the next
set of changes.

Change compaction to use first-fit allocation instead of best-fit so
we're always copying to the beginning of the file if at all possible.
Add WT_SESSION::create "block_allocation" configuration string, allows
applications to configure first-fit.  Change test/format to use the
first-fit algorithm 20% of the time.

Remove the WT_SESSION.compact "trigger" configuration string, it's no
longer used.

Rename WT_SESSION::create "allocation_size" configuration string to
"block_allocation_size" to match "block_allocation" and
"block_compressor" configuration strings.

Inline the block extension search functions, they get called a lot.

Add "compact" verbose debugging string.

Fix a bug where a spinlock could be left held by compaction.
2013-11-09 09:59:04 -05:00
Keith Bostic
9be66e1d26 Rework WT_UNUSED/WT_UNUSED_RET slightly: move GNUC macros out of misc.h
into their own include file "gcc.h", change the test programs to include
and use the definitions from that file.
2013-11-06 09:18:50 -05:00
Alex Gorrod
1e9c8b91d1 Fix compiler warnings with GCC 4.7.2 on Ubuntu. 2013-11-01 16:18:48 +11:00
Keith Bostic
546ede93a8 Add a way to configure statistics, turn on statistics gathering 20% of
the time, don't dump the statistics if we didn't configure them.
2013-09-04 09:22:03 -04:00
Keith Bostic
d3cdd3cb75 We have to clean out the table of appended keys after each run, otherwise
it eventually fills up and we never insert another record.  Rework append
table processing to be more resiliant, ignore the append table entirely in
the case of row-store objects.
2013-08-27 09:45:36 -04:00
Keith Bostic
a43448932e Fix a bug in test/format that prevented us from ever extending the
table by more than a single row.

Increase the distance we will potentially extend the table.
2013-08-23 14:57:44 -04:00
Keith Bostic
6de216b4e9 lint 2013-08-10 09:46:26 -04:00
Keith Bostic
4a1d255ae5 Rework the Memrata code to configure all of the KVS sources when the
shared library is loaded, rather than specifying a set of devices on
every call that takes a URI.
2013-08-10 09:23:58 -04:00
Keith Bostic
b7e0834c19 Handle deadlock returns from WiredTiger data operations. 2013-08-06 12:33:52 -04:00
Keith Bostic
3bd6465f3e Add simple transaction support to test/format. 2013-08-06 10:58:46 -04:00
Alex Gorrod
153d3d8c25 Fix a compiler warning in test/format. 2013-06-18 12:19:25 +10:00
Keith Bostic
af64467d36 Give up trying to create enough slots for extended records, don't let
the extended records get past 3 x the number of threads.
2013-06-03 22:39:11 -04:00
Keith Bostic
14d0eaaa79 If the record allocation code can race with other threads, we can't
just increment the total number of records when a record-allocating
cursor returns from the WiredTiger library, we have to do it one
record at a time.
2013-06-03 20:18:23 -04:00
Keith Bostic
66dbf8a575 Every WiredTiger API that takes a URI must now configure kvs_devices.
Specify kvs_open_o_truncate when opening the device, we're starting
fresh on every run.
2013-06-03 08:57:00 -04:00
Keith Bostic
135524bd6a Add support for periodic hot backups to test/format. 2013-05-25 14:38:14 -04:00
Keith Bostic
73a0c8a509 Change file_extend syntax from file_extend=(type=[data,log],size=XXX)
to file_extend=(data=XXX,log=XXX).

Add period testing of file_extend to test/format.
2013-05-14 08:48:24 -04:00
Alex Gorrod
cbfcd84ac2 Fix build warning in test/format:
../../../test/format/t.c: In function ‘startup’:
../../../test/format/t.c:204: warning: implicit declaration of function
‘mkdir’
../../../test/format/t.c:204: warning: nested extern declaration of
‘mkdir’
2013-04-23 19:42:03 +10:00
Keith Bostic
2b48ed30ab switch to "memrata" 2013-04-22 13:59:32 -04:00
Keith Bostic
dd90581563 Remove unnecessary include file. 2013-04-20 11:15:31 -04:00
Keith Bostic
39a12d4412 First cut at a non-transactional version of the STEC KVS shared library. 2013-04-19 16:47:10 -04:00
Keith Bostic
88999e02be Now that BDB KVS is a shared library, functions no longer needed. 2013-04-19 09:29:56 -04:00
Keith Bostic
28660c561f Changes to move the Berkeley DB KVS implementation out of test/format
and loaded as a shared library.

Note we're now passing the Berkeley DB library path as a command-line
argument to s_dumpcmp.
2013-04-18 12:35:29 -04:00
Keith Bostic
2a89a594b8 More changes to the extension API (this is only part-way there, but it
builds cleanly so I'm going to commit it).  Change the extension API
handle methods to take the handle as their first argument, get rid of
the WT_EXTENSION_API.default_session method, instead, store a reference
to the enclosing WT_CONNECTION in the extension handle.

This push also includes a few changes that are part of creating a STEC
data source.
2013-04-17 10:00:15 -04:00
Keith Bostic
03c75c0561 Remove the wiredtiger_XXX #defines for the extension API, always use the
WT_EXTENSION_API handle instead.
2013-04-10 10:34:50 -04:00
Keith Bostic
9889288775 Make WiredTiger extension functions available to linked-in modules via
a new function wiredtiger_extension_api(WT_EXTENSION_API **pp).

Write some WT_EXTENSION_API documentation.

Remove WT_SESSION::msg_printf, add a new msg_printf extension function
instead, convert test/format to use it.

Quit using __UNUSED in the extension code, use explicit (void) casting,
it's cleaner.
2013-04-09 13:12:36 -04:00
Keith Bostic
36dcad88b5 lint 2013-04-06 12:08:46 -04:00
Keith Bostic
ba82e01b49 First set of changes to make WT_DATA_SOURCE work better (row-store is
working, but column-store still isn't).

Create a new cursor type, the data-source cursor; it has a "child" cursor
that's "owned" by the data-source layer.  This means adding a new private
field to the WT_CURSOR structure for a data-source.  Implementation is in
cursor/cur_ds.c.

Store the data-source configuration (currently only the key/value_format
strings) in the meta-data file.

Pass simplified configuration strings to the underlying data-source methods
("key_format", "value_format" and "append", so far, probably needs "overwrite"
as well).

Don't pass "owner" to the WT_DATA_SOURCE.open_cursor method, owner is
intended for some of the internal cursor types, like dump.

Some general renaming, use "uri" instead of "name" in the data-source
methods and docs.
2013-04-03 09:23:19 -04:00
Keith Bostic
17bc2422d6 Add the hooks to make it easy to bring in an LZO handler. 2013-01-21 12:36:03 +00:00
Keith Bostic
963d37a4e6 Update copyright notice to 2013. 2013-01-01 09:45:50 +00:00
Keith Bostic
0dc5fd9440 Add a few additional configuration items knobs to test/format:
internal_key_truncation, key_gap and split_pct, weren't getting tested.
2012-12-08 11:32:12 +00:00
Michael Cahill
c917c1f524 Merge pull request #385 from wiredtiger/trickle
Track the percentage of cache that is dirty, trigger eviction to bound it.
refs #242
2012-11-29 21:03:19 -08:00