Skip to main content
Version: 0.8.0

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
  • 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 bench space is removed!
  • Do not use the bench space 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
  • The model used has the declaration (un: string, pw: uint8)
  • The SELECT will select and return all fields
  • The UPDATE will increment the value of pw like this pw += 1
  • The DELETE removes 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: 0000000 or 0999999

Off to the races

  1. Start up the database server
  2. Run ./sky-bench --password <your root password>. We need your root password because only the root account can create, alter and drop models and the benchmark tool needs to run these queries
  3. Wait for it to happen. You may not believe your eyes, so we recommend that you keep your eyes hydrated 🔥🚀✨💣