Skip to content

Benchmarking Roadmap #432

@zoready

Description

@zoready

Expanded Benchmarking Suite & Analysis

To ensure that ReadySet is performant in a wide array of use cases, we'll invest in upgrading our benchmarking infrastructure: apps, tests, and analysis and tackle any potential areas for improvement that are surfaced by this work.

In addition to measuring cache performance, these new benchmarks will stress test our networking/proxying, protocol emulation, serialization, and any other components on the hot path.

This project aims to be more consistent and systematic about creating and executing benchmarks, collecting data, as well as analyzing the outputs of our existing benchmarking suites (benchmarks crate, system-benchmarks crate).

Most of the foreseeable work will be exploratory: research and building scripts/tools for benchmarking and then analyzing the results. If any deficiencies are identified, we'll update the milestones to reflect planned improvements.

Plan

Since the combinatorics around all of the various benchmarking parameters are quite large, the current project will prioritize the following:

Comparisons

  • MySQL vs Postgres protocol emulations (pure warm cache reads)
  • ReadySet warm cache reads vs going directly to the primary database
  • ReadySet warm cache reads vs using a look-aside cache like Memcached or Redis

Queries

  • Simple point reads by PK/unique index lookups
  • Simple queries with a full materialization (like “select count(1) from table” or “select * from table”)
  • Moderate joins/aggregation queries

The same set of schema/queries will be used for all the benchmarking variants to keep things simple.

Issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions