Benchmarking
Due to Skytable having in-house implementations of almost everything, starting from the protocol, the storage engine and query
language — we have our own custom load testing tool called sky-bench that is distributed with the bundle.
Setting up for benchmarking
Quick notes:
- The benchmark tool will create:
- a space called
bench - a model called
bench
- a space called
- Be sure that these objects don't already exist! But don't worry, if they do — the benchmark tool will error. You won't lose any data
- Once the benchmark is complete, the
benchspace is removed! - Do not use the
benchspace during the benchmark: You might lose data
The benchmark tool will:
- Run a total of 4,000,000 queries (don't worry, they run pretty fast!):
- Run 1,000,000
INSERTs - Run 1,000,000
SELECTs - Run 1,000,000
UPDATEs - Run 1,000,000
DELETEs
- Run 1,000,000
- The model used has the declaration
(un: string, pw: uint8) - The
SELECTwill select and return all fields - The
UPDATEwill increment the value ofpwlike thispw += 1 - The
DELETEremoves the entire collection - The default primary key size is 7 bytes. All generated keys will be padded with zeros from to 0 to 999,999 like this:
0000000or0999999
Off to the races
- Start up the database server
- Run
./sky-bench --password <your root password>. We need yourrootpassword because only the root account can create, alter and drop models and the benchmark tool needs to run these queries - Wait for it to happen. You may not believe your eyes, so we recommend that you keep your eyes hydrated 🔥🚀✨💣