17 Commits

Author SHA1 Message Date
Junhyun Shim
d431a9f11b Wrap platform-specific PATH_MAX header in another 2022-04-25 13:53:05 +02:00
Junhyun Shim
d202d482d9 Preserve key string generation behavior of mako.c 2022-04-20 14:16:06 +02:00
Junhyun Shim
278009e1c8 Let OP_TRANSACTION to measure one iteration of '-x' 2022-04-20 04:45:29 +02:00
Junhyun Shim
0cf1349c37 Optimizations and restructuring 2022-04-19 16:34:11 +02:00
Junhyun Shim
c650d5366f Prefix sources and headers with license comment
Add include guards
2022-04-13 19:21:36 +02:00
Junhyun Shim
18787da562 Change fdb.hpp > fdb_api.hpp 2022-04-13 19:09:12 +02:00
Junhyun Shim
d0b7eddbcc Break mako.cpp into separate files
- future wait and common error handling
- operations and sub-op steps
- blob granules API invocation prep
- asynchronous benchmark execution
2022-04-01 11:54:20 -07:00
Junhyun Shim
00ce4f6248 Add asynchronous execution mode
- option -t (or --threads) determines the number of worker threads
  running asio job scheduler (io_context).
- value of --async_xacts indicates how many concurrent transactions should be running
  (only applies to '-m build' or '-m run')
- concurrent transactions whose count is specified in --async_xacts
  walks through the workload sequence (-x) as worker threads would in
  synchronous execution mode: i.e. --async_xacts=0.
- concurrent transactions in async mode, as would worker threads in sync mode,
  divide up the insertion range in build mode,
  and iteration limit in 'run' mode.
2022-03-22 22:00:37 +01:00
Junhyun Shim
cc2b9fad1e Simpler logging with thread-local loggers
- No need to repeat parts of the messages: e.g. "ERROR: "
- Thread-specific information prefixed before messages: e.g. "WORKER[  1: 4]"
- Misc. C-to-CPP styling
2022-03-19 22:53:19 +01:00
Junhyun Shim
ba69fcdd56 Clean up operations table 2022-03-07 06:52:56 +01:00
Junhyun Shim
8c0d3e9469 Use camelCase for FDB API & Mako classes 2022-03-07 06:19:33 +01:00
Junhyun Shim
bcf52e6760 Style changes: C > C++
* more controlled shared memory access
* simplified thread arguments
* use namespace 'mako'
* separate headers by their concerns (time, statistics, shared memory)
* introduce Stopwatch class
2022-03-07 03:52:41 +01:00
Junhyun Shim
f958e1dc0a Adhere to sampling interval argument
* stopwatch class for easier timepoint management
2022-03-05 01:39:42 +01:00
Junhyun Shim
ad3e1b2de2 Fix typos and errors
* add missing tx.set() to OP_OVERWRITE
* fix min-max mix-up
* fix printf type mix-up
* misreferenced variables
* add missing line breaks
* (improvement) fix error diff condition being overwritten
* (improvement) fix conflict rate being reported as error diff
2022-03-04 10:12:03 +01:00
Junhyun Shim
2247a35361 Clang-format mako-cpp 2022-03-03 13:33:58 +01:00
Junhyun Shim
0c6578a1e5 Refactor Mako to C++
* Refine each op into non-blocking sub-op steps returning valid or null futures
  (for asynchrony to come)
* Restructure op switch-case block to (op, step)-function mapping
* Simplify statistics update
* Simplify console output formatting
* Simplify memory management
2022-03-03 12:47:52 +01:00
Junhyun Shim
bc9380d5e2 Change Mako file extensions to cpp 2022-03-03 12:44:45 +01:00