summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/bench/workgen/workgen_int.h
diff options
context:
space:
mode:
authorAlex Gorrod <alexander.gorrod@mongodb.com>2017-10-10 16:29:49 +1100
committerAlex Gorrod <alexander.gorrod@mongodb.com>2017-10-10 16:37:55 +1100
commit39998ac6928c4e7f3acd2f7ee2fc5fb4df056c18 (patch)
treec075233cd32c6ec0205af77db475836c0fba60e9 /src/third_party/wiredtiger/bench/workgen/workgen_int.h
parentdd094ce1bc1fb424ccc6dd71939e5c7a30159e2e (diff)
downloadmongo-39998ac6928c4e7f3acd2f7ee2fc5fb4df056c18.tar.gz
Import wiredtiger: 0cd3d5bbd8a5c8779f1129c6754b4463403e788f from branch mongodb-3.6
ref: 6f561957cb..0cd3d5bbd8 for: 3.5.14 WT-3200 LSM bug: Failed lookup in bloom filter. WT-3435 Lookaside eviction should be able to save unstable updates WT-3453 Enhance lookaside table test coverage in Python suite WT-3559 Detect when a checkpoint races with metadata changes WT-3579 Enhance support for running wtperf workloads with workgen WT-3582 Cache stuck full of internal pages WT-3593 Add an API to enforce consistent use of timestamps (#3667) WT-3599 reconciliation calculates block matching checksums too frequently. WT-3600 timestamp API lets you set timestamps with invalid characters WT-3612 Improve documentation of durability with backup cursors WT-3613 test/format cache full with LSM WT-3618 WT remove solaris from evergreen builds WT-3620 POSIX thread attribute structures must be destroyed WT-3621 Add test for full backups with concurrent table creation WT-3622 Allow upper case hexadecimal timestamps WT-3627 test_txn14.test_txn14.test_log_flush timeout WT-3631 Convert timestamps to integers in Python tests before comparing WT-3636 Account for page image sizes in cache consistently WT-3638 format failure, update list without complete visible record WT-3639 Test/format tried to drop named checkpoints during a hot backup WT-3641 Track maximum timestamp used in each btree WT-3642 Avoid lookaside reads for dead trees
Diffstat (limited to 'src/third_party/wiredtiger/bench/workgen/workgen_int.h')
-rw-r--r--src/third_party/wiredtiger/bench/workgen/workgen_int.h15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/third_party/wiredtiger/bench/workgen/workgen_int.h b/src/third_party/wiredtiger/bench/workgen/workgen_int.h
index a8d008a3bc5..c7a5a7121e9 100644
--- a/src/third_party/wiredtiger/bench/workgen/workgen_int.h
+++ b/src/third_party/wiredtiger/bench/workgen/workgen_int.h
@@ -36,6 +36,8 @@ extern "C" {
}
#endif
+#define RANDOMIZER_SIZE 5 /* ":000:" prefix */
+
namespace workgen {
// A 'tint' or ('table integer') is a unique small value integer
@@ -126,7 +128,7 @@ struct ThreadRunner {
int run();
void op_create_all(Operation *, size_t &keysize, size_t &valuesize);
- uint64_t op_get_key_recno(Operation *, tint_t tint);
+ uint64_t op_get_key_recno(Operation *, uint64_t range, tint_t tint);
void op_get_static_counts(Operation *, Stats &, int);
int op_run(Operation *);
@@ -153,11 +155,18 @@ struct Monitor {
int run();
};
+struct TableRuntime {
+ uint64_t _max_recno; // highest recno allocated
+ bool _disjoint; // does key space have holes?
+
+ TableRuntime() : _max_recno(0), _disjoint(0) {}
+};
+
struct ContextInternal {
std::map<std::string, tint_t> _tint; // maps uri -> tint_t
std::map<tint_t, std::string> _table_names; // reverse mapping
- uint64_t *_recno; // # entries per tint_t
- uint32_t _recno_alloced; // length of allocated _recno
+ TableRuntime *_table_runtime; // # entries per tint_t
+ uint32_t _runtime_alloced; // length of _table_runtime
tint_t _tint_last; // last tint allocated
// unique id per context, to work with multiple contexts, starts at 1.
uint32_t _context_count;