* Add logic for DDSketch in mako
* Return double from percentile() and fix crash in deserialize()
* make sure to serialize and print result from mergeSketchReport()
* clean up comments
* move ddsketch into its own file
* remove LatencySampleBin and add DDSketch to ThreadStatistics
* Update DDSketch implementation
* remove assertions that cause circular references
* add DDSketchMako as a subsclass from DDSketch
* Merge branch 'ddsketch_mako' of github.com:sfc-gh-khoxha/foundationdb into ddsketch_mako
* Revert "Merge branch 'ddsketch_mako' of github.com:sfc-gh-khoxha/foundationdb into ddsketch_mako"
This reverts commit cc29a68aefd1b385b563bfbaa09a32e399c0d233.
* add ddsketch mako class and rename export flag
* remove redundant decimal roundings
* print max/min/avg from ddsketch
* remove latency sample bin completly
* Make ThreadStatistics dump latency to a file and read from file in printReport()
* make sure to add latency data from file to final stats
* change mergeSketchReport to use new ThreadStatistics serialization (1)
* use C-style string arrays in Arguments instead of std::string
* remove unused header
* only serialize non-empty sketches
* fix CentOS build error
* Update report file count properly
* avoid deserializing empty sketches
* fix segmentation fault when getting file name for export_sketch_path
* make sure to properly add file to report_files list
* fix printing bugs when running in report mode
* fix incorrect insertion of report files
* don't use range based loop for char array
* don't reset args.num_report_files
* Update the usage info for new options
* switch to using std::vector for sketches instead of std::array
* make sure to use true/false instead of 1/0 for booleans
* remove op_name if not being used
* remove fp code in dumpThreadSamples
* replace lambda with function in printReport
* merge and print stats in seperate functions
* make sure to exit after printing report
* address review feedback
* make defaultMin, defaultMax static and move setBucketSize to protected
* switch to reverse iterators when moving backwards along bucket array
- 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.
- 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
* more controlled shared memory access
* simplified thread arguments
* use namespace 'mako'
* separate headers by their concerns (time, statistics, shared memory)
* introduce Stopwatch class