* [stats] event loop * more progress * basic scheduler test working * analyze * add/drop hooks * gc * delete an alter * drop index and table * fix other tests * branch management * starter for kv * gc and refactor maintanance * fix bucket doubling * delete log * better bucket counting * test for disk round trip * more prolly stats gc tests * rotate backing stats db * progress towards swapping old for new, deleting old code * fix gc bucket overflow * test for gc overflow * org and closers * save progress update * finally get first two bats running * startup bound hash issue * rewrite GC to be synchronous, fix more bugs * fix session freshness * fix branch gc * cache writes and gc are serialized * fix gc/branch update dropped hashes * fix gc race, doubling race, jobs race * fix more races * docs * convert bats to script tests * more tests, purge/stop * validate * docs * some PR cleanup * more cleanup * stash for pull * fix bucket hash conflicts * Fix more collection bugs. * bump, timer proc * more test fixes * cache bats changes * Another deadlock * delete comment * fmt * no read replica stats * fix plan tests * branch qualified analyze fix * [no-release-notes] go: statspro/jobqueue: Create a SerialQueue, which can perform asynchronous work on a worker thread. * go: statspro/jobqueue: A bit of cleanup, fix a flakey test. * rewrite with GDQ * prog * tests run * fix info and storage * outline for gc impl * fix tests and races * bump * better error and panic management * better start/stop/wait * Add rate limiting * gc ticker * docs * doc * test prog * fix more tests * finish up listener tests * add comments * gc concurrency * enginetests and statspro tests passing * simplify listeners * bats progress * small edits * tests progress * bats are running * fmt * build * edits * fix interface * fix build * stats alternate index types * fix mem test * build * fix more tests * fmt * more fmt * copyright * license * fix races * syntax error * fix windows path * nil mcv panic * fix test races * bump def job interval to 30ms * deterministic tests * more tests * TEMP COMMIT: valctx plus some other stuff... * shorter concurrency tests * [ga-format-pr] Run go/utils/repofmt/format_repo.sh and go/Godeps/update.sh * nondeterministic test * try to make queue tests less racy * missed one start * stats granular session locks * simplify a little * try to avoid serialq test deadlock * try to fix flakes * more races * bump * another race * cleanup * more cleanup * revert ctx validation * most zach comments * more comments * more race * bump * more race * bump * schemas * skip windows racees * standardize server config init, use background threads management * [ga-format-pr] Run go/utils/repofmt/format_repo.sh and go/Godeps/update.sh * default stats noop * threads management improvements * undo change * move stats initialization back to engine * [ga-format-pr] Run go/utils/repofmt/format_repo.sh and go/Godeps/update.sh --------- Co-authored-by: Aaron Son <aaron@dolthub.com> Co-authored-by: max-hoffman <max-hoffman@users.noreply.github.com>
Sysbench runner is a tool for running sysbench tests against sql servers. Custom sysbench lua scripts used for benchmarking Dolt are here.
Configuration:
{
"Runs": 1,
"DebugMode": false,
"Servers": "[{...}]",
"TestOptions": [""],
"Tests": "[{...}]"
}
Runs number of times to run all tests per server, default 1 (Optional)
DebugMode logs more output from various commands. (Optional)
Servers list of servers to test against. See Server definitions below. (Required)
TestOptions list of sysbench test options to supply to all tests (Optional)
Tests the sysbench tests to run. See Test definitions below. (Optional)
If no tests are provided, the following default tests will be run:
oltp_read_only
oltp_insert
oltp_point_select
select_random_points
select_random_ranges
oltp_write_only
oltp_read_write
oltp_update_index
oltp_update_non_index
Server is a server to test against.
{
"Host": "",
"Port": 0,
"Server": "",
"Version": "",
"ResultsFormat": "",
"ServerExec": "",
"ServerArgs": [""],
"ConnectionProtocol": "",
"Socket": ""
}
Host is the server host. (Required)
Port is the server port. Defaults to 3306 for dolt and mysql Servers. (Optional)
Version is the server version. (Required)
ResultsFormat is the format the results should be written in. Only json and csv are supported. (Required)
ServerExec is the path to a server binary (Required)
ServerArgs are the args used to start the server. Will be appended to command dolt sql-server for dolt server or mysqld --user=mysql for mysql server. (Optional)
ConnectionProtocol is the protocol for connecting to mysql, either "unix" or "tcp" (Required for mysql)
Socket is the path to the mysql socket (Required for mysql with unix protocol)
Test is a sysbench test or lua script.
{
"Name": "",
"N": 1,
"FromScript": false,
"Options": [""]
}
Name is the test name or lua script. (Required)
N number of times to repeat this test, default is 1 (Optional)
FromScript indicates if this test is from a lua script, defaults to false (Optional)
Options are additional sysbench test options. These will be provided to sysbench in the form:
sysbench [options]... [testname] [command]
Note: Be sure that all mysql processes are off when running this locally.
TPCC
TPCC runner is a tool for running TPCC tests against sql servers. These tests run against the Percona Labs repo here.
Note to this run this locally you need to have the TPCC repo cloned. The ScriptDir variable should then be linked
to the path of the cloned repo.
Configuration:
{
"Servers": "[...]",
"ScriptDir":"/Users/vinairachakonda/go/src/dolthub/sysbench-tpcc",
"ScaleFactors": [1]
}
Servers: The server definitions to run the benchmark against. Accepts Dolt and MySQL configuratiosn.
ScriptDir: The directory of the TPCC testing scripts
ScaleFactors: The number of warehouse to be generated in the test case.
NomsBinFormat: The NomsBinFormat to use for this benchmark.
Note that this configuration is still incomplete for the amount of the variable TPCC varies. This intentional as we
want expose small amounts of independent variables until Dolt gets more robust. See config.go to get a breakdown of all the
variables TPCC varies.