Commit Graph

347 Commits

Author SHA1 Message Date
Michael Cahill
e83b5ba657 Note that LSM's chunk_size setting overrides memory_page_max. 2014-01-30 17:52:35 +11:00
Michael Cahill
19b4cb8ff9 Now that log syncing with fsync scales better than O_DSYNC, change the default.
refs #831
2014-01-08 17:16:21 +11:00
Michael Cahill
ec8415b162 Increase the default value for session_max to 100. This allocates more space in the connection handle, but otherwise should have minimal impact on performance, because we track the number of sessions in use.
This change was prompted by increasing the default number of LSM merge threads to 2, which means there is an overhead of 3 sessions per LSM tree (2 merge threads and a checkpoint thread).
2013-12-18 18:35:00 +11:00
Alex Gorrod
d0b7394970 Add automatic throttling for LSM based on merge speed. Update merge_threads.
The automatic throttling starts if there are too many chunks in an LSM tree
that have never been merged.

Increase the default number of LSM merge threads to 2 from 1. Since one
merge thread can now be pretty much dedicated to creating bloom filters.
2013-12-18 16:54:20 +11:00
Michael Cahill
ee67997251 whitespace 2013-12-18 09:20:25 +11:00
Alex Gorrod
4d4b5fd042 Add a WT_SESSION::create lsm=(merge_min=X) configuration option. 2013-12-17 17:19:11 +11:00
Keith Bostic
5c8c6e2ce9 Add the day-of-month as a decimal number, 01-31 to the statistics_log
path configuration string.  Closes #807.
2013-12-12 11:10:49 -05:00
Michael Cahill
b470a4ced3 Merge pull request #792 from wiredtiger/compact-lsm
Allow LSM trees to be compacted.
2013-12-10 20:47:25 -08:00
Keith Bostic
6bc9e908f0 Typo 2013-12-06 14:30:48 -05:00
Alex Gorrod
6d4ca8b0e0 Merge branch 'develop' into compact-lsm
Conflicts:
	src/lsm/lsm_merge.c
2013-12-06 16:47:36 +11:00
Alex Gorrod
7b6b95615a Implement compact for LSM trees. Add a new timeout compact configuration. 2013-12-06 16:40:56 +11:00
Michael Cahill
afd7c6cabb Make 10MB the default LSM chunk size, modify some wtperf jobs to use 10MB chunks and 2 merge threads. 2013-12-06 10:55:13 +11:00
Michael Cahill
77b29f0390 Increase the default Bloom filter parameters so the false positive rate is much lower.
refs #784
2013-12-04 16:20:06 +11:00
Keith Bostic
092b1fd125 typo in my last change. 2013-12-03 09:35:54 -05:00
Keith Bostic
b5c6bfcaac lines > 80 characters. 2013-12-03 09:33:05 -05:00
Alex Gorrod
53a4e5ee3e Merge branch 'develop' into lsm-config-group
Conflicts:
	dist/api_data.py
2013-12-03 20:01:55 +11:00
Michael Cahill
c4c0ce8cd3 whitespace 2013-12-03 18:33:26 +11:00
Alex Gorrod
79f6384814 Move LSM configuration options to be a group in WT_SESSION->create API.
Options used to be lsm_xxx are now lsm=(xxx,xxx,xxx)
2013-12-03 17:52:03 +11:00
Alex Gorrod
110e96b685 Respond to review comments for lsm_chunk_max configuration option. 2013-12-03 15:41:03 +11:00
Alex Gorrod
c26b5894f9 Add a new lsm_chunk_max configuration option to WT_SESSION->create. 2013-12-03 15:05:29 +11:00
Michael Cahill
5fef282275 Merge branch 'develop' into fine-grained-durability
Conflicts:
	dist/api_data.py
	src/config/config_def.c
	src/include/flags.h
	src/include/wiredtiger.in
2013-11-11 17:40:21 +11:00
Michael Cahill
b53a1748b5 Go back to "allocation_size" to avoid breaking the world. 2013-11-11 12:01:27 +11: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
Michael Cahill
a81ef11988 Merge branch 'develop' into fine-grained-durability
Conflicts:
	dist/api_data.py
	dist/flags.py
	src/include/flags.h
	src/include/txn.h
	src/include/txn.i
	test/thread/t.c
2013-11-08 10:20:16 +11:00
Keith Bostic
34d995b617 We can't default the cursor's statistics configuration to "fast", the
cursor default is whatever is configured for the database itself, and
setting the cursor's configuration to a default  hides that information.
2013-11-05 12:33:02 -05:00
Michael Cahill
aa6c1500b2 Check Python scripts for 80 column line wrapping, fix violations. 2013-11-05 09:47:42 +11:00
Michael Cahill
13ca7907d3 Merge branch 'develop' into fine-grained-durability
Conflicts:
	dist/s_define.list
2013-10-24 10:54:45 +11:00
Keith Bostic
a0cf5ba960 Don't say the statistics configuration of WT_SESSION.open_cursor
must "match" the database configuration, say they must "agree".

Re-order lists of statistics configuration to consistently be 'all',
'first', 'none', 'clear'.
2013-10-21 13:21:52 -04:00
Keith Bostic
6c7fe958eb Add clear to the connection statistics configuration and remove "clear"
from the statistics_log configuration.

Add error checking, if you specify something like "statistics=(fast,all)",
it should fail.

Write some more statistics documentation.
2013-10-21 10:12:55 -04:00
Keith Bostic
a1528aa2e3 Change the default statistics configuration from "fast" to "none". 2013-10-21 08:52:33 -04:00
Keith Bostic
30c726c774 API change: rework "run-time" and "tree-walk" statistics configuration.
Now, the database is configured for "none", "fast" or "all" statistics,
and each cursor is configured for "fast" or  "all" statistics, with the
additional flag "clear".  A cursor's statistics configuration must match
the database statistics cursor, defaulting to the current configuration.
The statistics_log configuration no longer defaults to "fast", it dumps
whatever the database is configured for.

Rename all of the macros from WT_RUNSTAT_XXX to WT_STAT_FAST_XXX.

Reference #715.
2013-10-19 16:29:08 -04:00
Michael Cahill
271f4e14b8 Merge branch 'develop' into fine-grained-durability
Conflicts:
	src/include/wt_internal.h
2013-10-17 11:16:15 +11:00
Michael Cahill
a5992f9b5d Merge branch 'develop' into fine-grained-durability
Conflicts:
	src/include/txn.i
	src/include/wiredtiger.in
	src/txn/txn_ckpt.c
2013-10-08 18:33:14 +11:00
Michael Cahill
cf6a7ae2c8 Create Bloom filters whenever waiting to do a merge. Remove the 'lsm_bloom_newest' configuration, since this change makes it redundant.
refs #591
2013-10-04 23:21:07 +10:00
Susan LoVerso
9a17ce2924 Change default for logging to be off. 2013-10-03 12:10:55 -04:00
Keith Bostic
2a353a5279 Change the default statistics_fast configuration from false to true. 2013-10-02 19:17:11 -04:00
Michael Cahill
9a182bfcb3 Merge branch 'develop' into fine-grained-durability 2013-09-16 14:45:09 +10:00
Keith Bostic
e0be111b20 it's vs. its 2013-09-14 12:16:57 -04:00
Michael Cahill
86838322ef Merge branch 'develop' into fine-grained-durability 2013-09-10 11:45:47 +10:00
Keith Bostic
7f7b69d9a3 The phrase "configured with" isn't as clear as I'd like it to be, be
explicit about whether we're talking about configured with "true" vs.
"false".
2013-09-07 13:16:25 -04:00
Michael Cahill
b4237ffb88 Merge branch 'develop' into fine-grained-durability
Conflicts:
	src/config/config_def.c
	src/conn/conn_api.c
	src/include/flags.h
	src/include/txn.h
	src/include/wiredtiger.in
2013-09-05 17:00:21 +10:00
Keith Bostic
5b272779db Add a new skiplist to the WT_PAGE_MODIFY structure and use it to track
overflow record reuse.

Add a new verbose flag "overflow", currently only used by the reuse
overflow list.

Reference #330.
2013-08-30 10:30:27 -04:00
Michael Cahill
acb146a352 Add a "recovery" verbose mode. 2013-08-29 10:36:01 +10:00
Michael Cahill
5708ef0a2d Scan through files before the main recovery loop, gathering checkpoint LSNs and file IDs. 2013-08-29 10:36:01 +10:00
Michael Cahill
5a155b8a04 Cherry pick Sue's sync configuration changes, so develop matches the fine-grained-durability branch. 2013-08-28 13:36:55 +10:00
Michael Cahill
fbe2919f85 Rename the wiredtiger_open config key 'transaction_sync', remove 'sync' from begin_transaction. 2013-08-28 12:13:58 +10:00
Susan LoVerso
bfd104798b Add transaction_log_sync support for config. 2013-08-27 14:37:39 -04:00
Michael Cahill
4835fc22c8 Save LSNs in files during checkpoint. 2013-08-26 16:33:29 +10:00
Michael Cahill
f7e258dff8 Merge branch 'develop' into fine-grained-durability
Conflicts:
	src/conn/conn_ckpt.c
	src/conn/conn_log.c
	src/conn/conn_stat.c
2013-08-16 16:50:08 +10:00
Keith Bostic
a1c6d58b67 Add the WT_SESSION.create prefix_compression_min string configuring the
number of bytes that must be gained before prefix compression activates,
with a default of 4.

Quit documenting the WT_SESSION.key_gap configuration string: it's only
used when instantiating keys as the result of a reverse cursor scan, I
don't think it's interesting enough to surface to applications, at this
point.

Ref: #622.
2013-08-14 13:59:53 -04:00