summaryrefslogtreecommitdiff
path: root/src/config
diff options
context:
space:
mode:
Diffstat (limited to 'src/config')
-rw-r--r--src/config/config_api.c31
-rw-r--r--src/config/config_collapse.c1
-rw-r--r--src/config/config_def.c122
3 files changed, 91 insertions, 63 deletions
diff --git a/src/config/config_api.c b/src/config/config_api.c
index 76a51903588..05c5c1287a7 100644
--- a/src/config/config_api.c
+++ b/src/config/config_api.c
@@ -158,24 +158,25 @@ wiredtiger_config_validate(WT_SESSION *wt_session,
}
/*
- * __conn_foc_add --
+ * __wt_conn_foc_add --
* Add a new entry into the connection's free-on-close list.
*/
-static int
-__conn_foc_add(WT_SESSION_IMPL *session, const void *p)
+void
+__wt_conn_foc_add(WT_SESSION_IMPL *session, const void *p)
{
WT_CONNECTION_IMPL *conn;
conn = S2C(session);
/*
- * Our caller is expected to be holding any locks we need.
+ * Callers of this function are expected to be holding the connection's
+ * api_lock.
+ *
+ * All callers of this function currently ignore errors.
*/
- WT_RET(__wt_realloc_def(
- session, &conn->foc_size, conn->foc_cnt + 1, &conn->foc));
-
- conn->foc[conn->foc_cnt++] = (void *)p;
- return (0);
+ if (__wt_realloc_def(
+ session, &conn->foc_size, conn->foc_cnt + 1, &conn->foc) == 0)
+ conn->foc[conn->foc_cnt++] = (void *)p;
}
/*
@@ -328,12 +329,12 @@ __wt_configure_method(WT_SESSION_IMPL *session,
* order to avoid freeing chunks of memory twice. Again, this isn't a
* commonly used API and it shouldn't ever happen, just leak it.
*/
- (void)__conn_foc_add(session, entry->base);
- (void)__conn_foc_add(session, entry);
- (void)__conn_foc_add(session, checks);
- (void)__conn_foc_add(session, newcheck->type);
- (void)__conn_foc_add(session, newcheck->checks);
- (void)__conn_foc_add(session, newcheck_name);
+ __wt_conn_foc_add(session, entry->base);
+ __wt_conn_foc_add(session, entry);
+ __wt_conn_foc_add(session, checks);
+ __wt_conn_foc_add(session, newcheck->type);
+ __wt_conn_foc_add(session, newcheck->checks);
+ __wt_conn_foc_add(session, newcheck_name);
/*
* Instead of using locks to protect configuration information, assume
diff --git a/src/config/config_collapse.c b/src/config/config_collapse.c
index 7fe78d06ba7..5abe7556a03 100644
--- a/src/config/config_collapse.c
+++ b/src/config/config_collapse.c
@@ -372,6 +372,7 @@ __config_merge_cmp(const void *a, const void *b)
int
__wt_config_merge(WT_SESSION_IMPL *session,
const char **cfg, const char *cfg_strip, const char **config_ret)
+ WT_GCC_FUNC_ATTRIBUTE((visibility("default")))
{
WT_CONFIG_MERGE merge;
WT_DECL_RET;
diff --git a/src/config/config_def.c b/src/config/config_def.c
index 35fea16b1a5..e4fd7937a40 100644
--- a/src/config/config_def.c
+++ b/src/config/config_def.c
@@ -162,6 +162,14 @@ static const WT_CONFIG_CHECK confchk_WT_CURSOR_reconfigure[] = {
{ NULL, NULL, NULL, NULL, NULL, 0 }
};
+static const WT_CONFIG_CHECK confchk_WT_SESSION_alter[] = {
+ { "access_pattern_hint", "string",
+ NULL, "choices=[\"none\",\"random\",\"sequential\"]",
+ NULL, 0 },
+ { "cache_resident", "boolean", NULL, NULL, NULL, 0 },
+ { NULL, NULL, NULL, NULL, NULL, 0 }
+};
+
static const WT_CONFIG_CHECK confchk_WT_SESSION_begin_transaction[] = {
{ "isolation", "string",
NULL, "choices=[\"read-uncommitted\",\"read-committed\","
@@ -224,6 +232,9 @@ static const WT_CONFIG_CHECK
};
static const WT_CONFIG_CHECK confchk_WT_SESSION_create[] = {
+ { "access_pattern_hint", "string",
+ NULL, "choices=[\"none\",\"random\",\"sequential\"]",
+ NULL, 0 },
{ "allocation_size", "int",
NULL, "min=512B,max=128MB",
NULL, 0 },
@@ -371,6 +382,7 @@ static const WT_CONFIG_CHECK confchk_WT_SESSION_snapshot[] = {
{ "drop", "category",
NULL, NULL,
confchk_WT_SESSION_snapshot_drop_subconfigs, 4 },
+ { "include_updates", "boolean", NULL, NULL, NULL, 0 },
{ "name", "string", NULL, NULL, NULL, 0 },
{ NULL, NULL, NULL, NULL, NULL, 0 }
};
@@ -400,6 +412,9 @@ static const WT_CONFIG_CHECK confchk_colgroup_meta[] = {
};
static const WT_CONFIG_CHECK confchk_file_config[] = {
+ { "access_pattern_hint", "string",
+ NULL, "choices=[\"none\",\"random\",\"sequential\"]",
+ NULL, 0 },
{ "allocation_size", "int",
NULL, "min=512B,max=128MB",
NULL, 0 },
@@ -458,6 +473,9 @@ static const WT_CONFIG_CHECK confchk_file_config[] = {
};
static const WT_CONFIG_CHECK confchk_file_meta[] = {
+ { "access_pattern_hint", "string",
+ NULL, "choices=[\"none\",\"random\",\"sequential\"]",
+ NULL, 0 },
{ "allocation_size", "int",
NULL, "min=512B,max=128MB",
NULL, 0 },
@@ -536,6 +554,9 @@ static const WT_CONFIG_CHECK confchk_index_meta[] = {
};
static const WT_CONFIG_CHECK confchk_lsm_meta[] = {
+ { "access_pattern_hint", "string",
+ NULL, "choices=[\"none\",\"random\",\"sequential\"]",
+ NULL, 0 },
{ "allocation_size", "int",
NULL, "min=512B,max=128MB",
NULL, 0 },
@@ -1053,6 +1074,10 @@ static const WT_CONFIG_ENTRY config_entries[] = {
"append=false,overwrite=true",
confchk_WT_CURSOR_reconfigure, 2
},
+ { "WT_SESSION.alter",
+ "access_pattern_hint=none,cache_resident=false",
+ confchk_WT_SESSION_alter, 2
+ },
{ "WT_SESSION.begin_transaction",
"isolation=,name=,priority=0,snapshot=,sync=",
confchk_WT_SESSION_begin_transaction, 5
@@ -1074,12 +1099,13 @@ static const WT_CONFIG_ENTRY config_entries[] = {
confchk_WT_SESSION_compact, 1
},
{ "WT_SESSION.create",
- "allocation_size=4KB,app_metadata=,block_allocation=best,"
- "block_compressor=,cache_resident=false,checksum=uncompressed,"
- "colgroups=,collator=,columns=,dictionary=0,encryption=(keyid=,"
- "name=),exclusive=false,extractor=,format=btree,huffman_key=,"
- "huffman_value=,ignore_in_memory_cache_size=false,immutable=false"
- ",internal_item_max=0,internal_key_max=0,"
+ "access_pattern_hint=none,allocation_size=4KB,app_metadata=,"
+ "block_allocation=best,block_compressor=,cache_resident=false,"
+ "checksum=uncompressed,colgroups=,collator=,columns=,dictionary=0"
+ ",encryption=(keyid=,name=),exclusive=false,extractor=,"
+ "format=btree,huffman_key=,huffman_value=,"
+ "ignore_in_memory_cache_size=false,immutable=false,"
+ "internal_item_max=0,internal_key_max=0,"
"internal_key_truncate=true,internal_page_max=4KB,key_format=u,"
"key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=32KB,"
"leaf_value_max=0,log=(enabled=true),lsm=(auto_throttle=true,"
@@ -1089,7 +1115,7 @@ static const WT_CONFIG_ENTRY config_entries[] = {
"os_cache_dirty_max=0,os_cache_max=0,prefix_compression=false,"
"prefix_compression_min=4,source=,split_deepen_min_child=0,"
"split_deepen_per_child=0,split_pct=75,type=file,value_format=u",
- confchk_WT_SESSION_create, 41
+ confchk_WT_SESSION_create, 42
},
{ "WT_SESSION.drop",
"checkpoint_wait=true,force=false,lock_wait=true,"
@@ -1142,8 +1168,8 @@ static const WT_CONFIG_ENTRY config_entries[] = {
confchk_WT_SESSION_salvage, 1
},
{ "WT_SESSION.snapshot",
- "drop=(all=false,before=,names=,to=),name=",
- confchk_WT_SESSION_snapshot, 2
+ "drop=(all=false,before=,names=,to=),include_updates=false,name=",
+ confchk_WT_SESSION_snapshot, 3
},
{ "WT_SESSION.strerror",
"",
@@ -1171,10 +1197,26 @@ static const WT_CONFIG_ENTRY config_entries[] = {
confchk_colgroup_meta, 5
},
{ "file.config",
- "allocation_size=4KB,app_metadata=,block_allocation=best,"
- "block_compressor=,cache_resident=false,checksum=uncompressed,"
- "collator=,columns=,dictionary=0,encryption=(keyid=,name=),"
- "format=btree,huffman_key=,huffman_value=,"
+ "access_pattern_hint=none,allocation_size=4KB,app_metadata=,"
+ "block_allocation=best,block_compressor=,cache_resident=false,"
+ "checksum=uncompressed,collator=,columns=,dictionary=0,"
+ "encryption=(keyid=,name=),format=btree,huffman_key=,"
+ "huffman_value=,ignore_in_memory_cache_size=false,"
+ "internal_item_max=0,internal_key_max=0,"
+ "internal_key_truncate=true,internal_page_max=4KB,key_format=u,"
+ "key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=32KB,"
+ "leaf_value_max=0,log=(enabled=true),memory_page_max=5MB,"
+ "os_cache_dirty_max=0,os_cache_max=0,prefix_compression=false,"
+ "prefix_compression_min=4,split_deepen_min_child=0,"
+ "split_deepen_per_child=0,split_pct=75,value_format=u",
+ confchk_file_config, 35
+ },
+ { "file.meta",
+ "access_pattern_hint=none,allocation_size=4KB,app_metadata=,"
+ "block_allocation=best,block_compressor=,cache_resident=false,"
+ "checkpoint=,checkpoint_lsn=,checksum=uncompressed,collator=,"
+ "columns=,dictionary=0,encryption=(keyid=,name=),format=btree,"
+ "huffman_key=,huffman_value=,id=,"
"ignore_in_memory_cache_size=false,internal_item_max=0,"
"internal_key_max=0,internal_key_truncate=true,"
"internal_page_max=4KB,key_format=u,key_gap=10,leaf_item_max=0,"
@@ -1182,24 +1224,8 @@ static const WT_CONFIG_ENTRY config_entries[] = {
"log=(enabled=true),memory_page_max=5MB,os_cache_dirty_max=0,"
"os_cache_max=0,prefix_compression=false,prefix_compression_min=4"
",split_deepen_min_child=0,split_deepen_per_child=0,split_pct=75,"
- "value_format=u",
- confchk_file_config, 34
- },
- { "file.meta",
- "allocation_size=4KB,app_metadata=,block_allocation=best,"
- "block_compressor=,cache_resident=false,checkpoint=,"
- "checkpoint_lsn=,checksum=uncompressed,collator=,columns=,"
- "dictionary=0,encryption=(keyid=,name=),format=btree,huffman_key="
- ",huffman_value=,id=,ignore_in_memory_cache_size=false,"
- "internal_item_max=0,internal_key_max=0,"
- "internal_key_truncate=true,internal_page_max=4KB,key_format=u,"
- "key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=32KB,"
- "leaf_value_max=0,log=(enabled=true),memory_page_max=5MB,"
- "os_cache_dirty_max=0,os_cache_max=0,prefix_compression=false,"
- "prefix_compression_min=4,split_deepen_min_child=0,"
- "split_deepen_per_child=0,split_pct=75,value_format=u,"
- "version=(major=0,minor=0)",
- confchk_file_meta, 38
+ "value_format=u,version=(major=0,minor=0)",
+ confchk_file_meta, 39
},
{ "index.meta",
"app_metadata=,collator=,columns=,extractor=,immutable=false,"
@@ -1207,23 +1233,23 @@ static const WT_CONFIG_ENTRY config_entries[] = {
confchk_index_meta, 10
},
{ "lsm.meta",
- "allocation_size=4KB,app_metadata=,block_allocation=best,"
- "block_compressor=,cache_resident=false,checksum=uncompressed,"
- "chunks=,collator=,columns=,dictionary=0,encryption=(keyid=,"
- "name=),format=btree,huffman_key=,huffman_value=,"
- "ignore_in_memory_cache_size=false,internal_item_max=0,"
- "internal_key_max=0,internal_key_truncate=true,"
- "internal_page_max=4KB,key_format=u,key_gap=10,last=,"
- "leaf_item_max=0,leaf_key_max=0,leaf_page_max=32KB,"
- "leaf_value_max=0,log=(enabled=true),lsm=(auto_throttle=true,"
- "bloom=true,bloom_bit_count=16,bloom_config=,bloom_hash_count=8,"
- "bloom_oldest=false,chunk_count_limit=0,chunk_max=5GB,"
- "chunk_size=10MB,merge_max=15,merge_min=0),memory_page_max=5MB,"
- "old_chunks=,os_cache_dirty_max=0,os_cache_max=0,"
- "prefix_compression=false,prefix_compression_min=4,"
- "split_deepen_min_child=0,split_deepen_per_child=0,split_pct=75,"
- "value_format=u",
- confchk_lsm_meta, 38
+ "access_pattern_hint=none,allocation_size=4KB,app_metadata=,"
+ "block_allocation=best,block_compressor=,cache_resident=false,"
+ "checksum=uncompressed,chunks=,collator=,columns=,dictionary=0,"
+ "encryption=(keyid=,name=),format=btree,huffman_key=,"
+ "huffman_value=,ignore_in_memory_cache_size=false,"
+ "internal_item_max=0,internal_key_max=0,"
+ "internal_key_truncate=true,internal_page_max=4KB,key_format=u,"
+ "key_gap=10,last=,leaf_item_max=0,leaf_key_max=0,"
+ "leaf_page_max=32KB,leaf_value_max=0,log=(enabled=true),"
+ "lsm=(auto_throttle=true,bloom=true,bloom_bit_count=16,"
+ "bloom_config=,bloom_hash_count=8,bloom_oldest=false,"
+ "chunk_count_limit=0,chunk_max=5GB,chunk_size=10MB,merge_max=15,"
+ "merge_min=0),memory_page_max=5MB,old_chunks=,"
+ "os_cache_dirty_max=0,os_cache_max=0,prefix_compression=false,"
+ "prefix_compression_min=4,split_deepen_min_child=0,"
+ "split_deepen_per_child=0,split_pct=75,value_format=u",
+ confchk_lsm_meta, 39
},
{ "table.meta",
"app_metadata=,colgroups=,collator=,columns=,key_format=u,"