summaryrefslogtreecommitdiff
path: root/src/block
diff options
context:
space:
mode:
authorDavid Hows <david.hows@mongodb.com>2017-01-06 12:12:50 +1100
committerDavid Hows <david.hows@mongodb.com>2017-01-06 12:12:50 +1100
commitd48181f6f4db08761ed7b80b0332908b272ad0d0 (patch)
tree38929fdcc5415ee7b001b6f1a406bd5bd777b737 /src/block
parent040e3d6f764c0fb626cb47fede54469f57d0c6e0 (diff)
parent8d2324943364286056ae399043f70b8a937de312 (diff)
Merge branch 'mongodb-3.6' into mongodb-3.2mongodb-3.2.12
Diffstat (limited to 'src/block')
-rw-r--r--src/block/block_addr.c1
-rw-r--r--src/block/block_compact.c22
-rw-r--r--src/block/block_open.c6
3 files changed, 15 insertions, 14 deletions
diff --git a/src/block/block_addr.c b/src/block/block_addr.c
index dadd17de4a6..580316bdfc6 100644
--- a/src/block/block_addr.c
+++ b/src/block/block_addr.c
@@ -192,6 +192,7 @@ __wt_block_buffer_to_ckpt(WT_SESSION_IMPL *session,
int
__wt_block_ckpt_decode(WT_SESSION *wt_session,
size_t allocsize, const uint8_t *p, WT_BLOCK_CKPT *ci)
+ WT_GCC_FUNC_ATTRIBUTE((visibility("default")))
{
WT_SESSION_IMPL *session;
diff --git a/src/block/block_compact.c b/src/block/block_compact.c
index 6d5d48bdb22..eb6647dd03c 100644
--- a/src/block/block_compact.c
+++ b/src/block/block_compact.c
@@ -22,6 +22,12 @@ __wt_block_compact_start(WT_SESSION_IMPL *session, WT_BLOCK *block)
/* Switch to first-fit allocation. */
__wt_block_configure_first_fit(block, true);
+ /* Reset the compaction state information. */
+ block->compact_pct_tenths = 0;
+ block->compact_pages_reviewed = 0;
+ block->compact_pages_skipped = 0;
+ block->compact_pages_written = 0;
+
return (0);
}
@@ -55,7 +61,6 @@ __wt_block_compact_end(WT_SESSION_IMPL *session, WT_BLOCK *block)
int
__wt_block_compact_skip(WT_SESSION_IMPL *session, WT_BLOCK *block, bool *skipp)
{
- WT_DECL_RET;
WT_EXT *ext;
WT_EXTLIST *el;
wt_off_t avail_eighty, avail_ninety, eighty, ninety;
@@ -71,16 +76,6 @@ __wt_block_compact_skip(WT_SESSION_IMPL *session, WT_BLOCK *block, bool *skipp)
if (block->size <= WT_MEGABYTE)
return (0);
- /*
- * Reset the compaction state information. This is done here, not in the
- * compaction "start" routine, because this function is called first to
- * determine if compaction is useful.
- */
- block->compact_pct_tenths = 0;
- block->compact_pages_reviewed = 0;
- block->compact_pages_skipped = 0;
- block->compact_pages_written = 0;
-
__wt_spin_lock(session, &block->live_lock);
/* Dump the current state of the file. */
@@ -142,7 +137,7 @@ __wt_block_compact_skip(WT_SESSION_IMPL *session, WT_BLOCK *block, bool *skipp)
__wt_spin_unlock(session, &block->live_lock);
- return (ret);
+ return (0);
}
/*
@@ -153,7 +148,6 @@ int
__wt_block_compact_page_skip(WT_SESSION_IMPL *session,
WT_BLOCK *block, const uint8_t *addr, size_t addr_size, bool *skipp)
{
- WT_DECL_RET;
WT_EXT *ext;
WT_EXTLIST *el;
wt_off_t limit, offset;
@@ -198,7 +192,7 @@ __wt_block_compact_page_skip(WT_SESSION_IMPL *session,
}
#endif
- return (ret);
+ return (0);
}
/*
diff --git a/src/block/block_open.c b/src/block/block_open.c
index 4d15942709a..07ceb4c8159 100644
--- a/src/block/block_open.c
+++ b/src/block/block_open.c
@@ -201,6 +201,12 @@ __wt_block_open(WT_SESSION_IMPL *session,
* "direct_io=checkpoint" configures direct I/O for readonly data files.
*/
flags = 0;
+ WT_ERR(__wt_config_gets(session, cfg, "access_pattern_hint", &cval));
+ if (WT_STRING_MATCH("random", cval.str, cval.len))
+ LF_SET(WT_FS_OPEN_ACCESS_RAND);
+ else if (WT_STRING_MATCH("sequential", cval.str, cval.len))
+ LF_SET(WT_FS_OPEN_ACCESS_SEQ);
+
if (readonly && FLD_ISSET(conn->direct_io, WT_DIRECT_IO_CHECKPOINT))
LF_SET(WT_FS_OPEN_DIRECTIO);
if (!readonly && FLD_ISSET(conn->direct_io, WT_DIRECT_IO_DATA))