Skip to content

ReadySet Core Releases

ReadySet releases a new version of ReadySet Core on a monthly basis. This page summarizes the changes in each version and links to binaries and docker images.

Warning

Beta versions of ReadySet are backward-incompatible. To upgrade between beta versions, you must therefore clear all data files. Rolling upgrades will be supported with future ReadySet major releases.

beta-2023-05-31

Downloads

  • ReadySet Server (linux-x84_64)

    docker pull public.ecr.aws/readyset/readyset-server:beta-2023-05-31
    

  • ReadySet Adapter (linux-x84_64)

    docker pull public.ecr.aws/readyset/readyset:beta-2023-05-31
    

Note

This release does not include pre-built binaries. However, you can build binaries from source. For guidance, see the ReadySet README.

Changes

What's New

  • Revamped helm chart with changes to align with best practices and support multiple cloud platforms. [a51ac40, b739acb1, 931d0b91, c4ff836b]
  • Created the proptest-stateful crate and added extensive stateful property tests.
  • ReadySet can now infer the database_type from an upstream_db_url, making the --database-type argument optional. If --database-type is provided with an upstream_db_url, readyset will validate the database type. 8ad44824
  • Improve error messages for why something is unsupported when running without an upstream database. 41f35326
  • Add --controller-address option that exports prometheus metrics for the readyset-server when running in standalone mode. 688ab939
  • Add replication-server-id flag to allow multiple readyset deployments to connect to the same upstream db. Each deployment must have a unique replication server id. 896b423c
  • Add logging that uses row estimates to report snapshotting progress. 9f857769
  • Added an experimental feature to automatically inline placeholders in a query with literal values when the placeholders are unsupported, so that the query can be run against ReadySet. This feature is enabled with the --experimental-placeholder-inlining flag. This feature is experimental as it could degrade the performance of the ReadySet instance if too many inlined instances of a query are created. It is recommended that you drop the cache of any query with inlined placeholders with high cardinality. 4a31acdf
  • Add support for INT2, INT4, and INT8 postgres type aliases. e9518f11

Performance Improvements

  • Controller requests now run asynchronously. 120fb301
  • RocksDB compaction is now done as a background process. 51d5a4c3
  • Tuned the retry behavior of extend_recipe. 1b771836
  • Initialize persistent state in a different thread. c78bd61d
  • Numerous miscelaneous query performance optimizations.

Bug Fixes

  • Update metrics-rs crate to 0.21 to fix a bug in summary calculations where they were not being calculated over sliding windows of time. 1557db04
  • Fixed a bug where DDL actions were lost when we encountered a particular error in replication. 1101215c
  • Fixed an issue where we returned an empty value instead of BEGIN for certain transactional queries. fd08ff18
  • Fixed an incorect timezone conversion that prevented lookups into a date field using timestamps that had the same date. 33990c76
  • Fixed a bug with optimized string serialization. 5dec2e14
  • Fixed a panic if offset is longer than result set, specifically in the case that a query, has ORDER BY, LIMIT, and OFFSET, has aggregates with a group by, and doesn't filter by a primary or unique column. 5d9c5cee
  • Fixed a panic that could happen if a connection failed during a migration. 020f58a3
  • Fixed a bug where the ordering of project and distinct nodes would return incorrect results. 236ed823
  • Properly mark PostgreSQL partitioned tables as unsupported. 2abffe13
  • Fix handling of a partial replay where a source node has been dropped. 94be3fcb
  • Properly support creating tables with FKs. f10319eb
  • Properly handle replication offsets for uninitialized base tables. 582b68fb

beta-2023-02-15

Downloads

  • ReadySet Server (linux-x84_64)

    docker pull public.ecr.aws/readyset/readyset-server:beta-2023-02-15
    

  • ReadySet Adapter (linux-x84_64)

    docker pull public.ecr.aws/readyset/readyset:beta-2023-02-15
    

Note

This release does not include pre-built binaries. However, you can build binaries from source. For guidance, see the ReadySet README.

Changes

  • Multiple instances of ReadySet can now be run against a single Postgres instance. ab92510
  • The --eviction-policy CLI option now defaults to lru, which performs best for most workloads. 998dd34
  • The --username and --password CLI options now default to the username and password for the upstream database in the --upstream-db-url option. 8989d30
  • Added a new --worker-request-timeout-seconds CLI option and WORKER_REQUEST_TIMEOUT_SECONDS environment variable for configuring the timeout for requests made to workers. 875d0da
  • Improved error messages for CREATE CACHE statements with queries that ReadySet is unable to parse. 1035e26
  • The following Prometheus metrics no longer contain domain and shard tags, and have been renamed to have the domain_ prefix removed: domain_forward_time_us, domain_total_forward_time_us, domain_eviction_time_us, domain_node_state_size_bytes, domain_reader_state_size_bytes, domain_base_tables_estimated_size_bytes, domain_eviction_requests, domain_eviction_freed_memory, and domain_node_added. 00305d9
  • When restarting ReadySet, changes to the --replication-tables CLI option are now applied. 3151117
  • Fixed a bug where ReadySet running in PostgreSQL mode would return an error for queries with integer literals in the SELECT list. f0062db
  • When ReadySet receives an unsupported value in the replication stream (e.g., infinity or -infinity for a Postgres date or timestamp), ReadySet now stops replicating the affected table and removes all caches accessing that table. This allows ReadySet to continue with the replication of other tables instead of retrying that replication event infinitely. bc47adf
  • Fixed a bug that could, in certain cases, cause ReadySet to panic when executing a query that ReadySet is unable to parse. caacfca
  • Fixed a bug that could cause snapshotting and replication to fail for deeply nested JSON values. 551dda8
  • Fixed an issue where the Postgres triggers that ReadySet installs for DDL replication could cause errors when attempting to create or alter types. ef34ede
  • Fixed an error decoding parse messages with unspecified types. 9ca36fa
  • Fixed an issue where the ReadySet replicator wasn't gracefully handling every kind of Postgres connection failure. Now, the replicator will always retry in the event of a lost connection to the upstream database. 318be1d
  • Fixed an issue where executing prepared statements with CITEXT would fail with an unsupported error. 37ff026

beta-2023-01-18

Downloads

Note

ReadySet binaries for Linux require the OpenSSL 1.1.x package. OpenSSL 3.x+ is not currently supported.

Binary (linux-x84_64) Sha256Sum
ReadySet Server d56e663e6fab9b83b12dbe03008623c7c4e3e19bb3ba14eb1c7d45d2b3c5b9d7
ReadySet Adapter 696308d6720b16515aa9ab7587766c858d12910c00f4760f756d9630b44011f8
Binary (darwin-arm64) Sha256Sum
ReadySet Server 0289a07e7dde2fcf94718680328b09300a0f92915be24dcbb00160692d0b40f1
ReadySet Adapter eb287021e25ce7e46386b8bb9629000f4328464796caed43d08cd7c33def83d0
  • ReadySet Server (linux-x84_64)

    docker pull public.ecr.aws/readyset/readyset-server:beta-2023-01-18
    

  • ReadySet Adapter (linux-x84_64)

    docker pull public.ecr.aws/readyset/readyset:beta-2023-01-18
    

Changes

  • The new custom SHOW READYSET TABLES SQL command returns a list of all tables ReadySet is aware of, along with their snapshotting status if they are being replicated by ReadySet, or "Not replicated" if ReadySet is not replicating them either because the table is unsupported or because the table was not specified as part of --replication-tables. 764f0ed
  • ReadySet now always successfully snapshots SQL views that select from other views. 85d89ed
  • When running the readyset binary, set the new -V/--version option to output build/release information. 0d54fc6
  • ReadySet now correctly handles MySQL clients setting the database in the initial connection handshake. Previously, this was ignored and the client would instead be connected to the default database specified in the --upstream-db-url option. 3ace2e6
  • Added caching support for the MySQL JSON_OVERLAPS() function. 56e2710
  • Added caching support for the MySQL JSON_QUOTE() function. 67a7051
  • Added caching support for the PostgreSQL JSONB_SET_LAX() function. d461cdb
  • Fixed a bug that could cause snapshotting and replication to stall after encountering certain types of errors while loading a view from the upstream database. 3107da9
  • Fixed a bug that caused replication to fail on Aurora Postgres version 13 databases. 9be6443
  • Fixed a bug that could cause a failure loop when replicating a table. adc8f25
  • Fixed an issue where ReadySet would not correctly write out the row description or correct tag for SELECTs that return no results. 02b3fb6

beta-2022-12-15

Downloads

Note

ReadySet binaries for Linux require the OpenSSL 1.1.x package. OpenSSL 3.x+ is not currently supported.

Binary (linux-x84_64) Sha256Sum
ReadySet Server 376a3c31923af51abf5a7ec181181eecaa1308de51efd7f336ebce54222abae0
ReadySet Adapter 7468de0b2611bfdd6df79198709c06d389f1df32223735e851c5070ca77fa82d
Binary (darwin-arm64) Sha256Sum
ReadySet Server a8a2eb79e7c22fe5c6ce140e29931f4a474b89ead8c5f201a7eb4d370ab98861
ReadySet Adapter 0e02417a0435232529cd1ec4b3a2bedb2164334e83c8f92ffb5d2d442e3ac12c
  • ReadySet Server (linux-x84_64)

    docker pull public.ecr.aws/readyset/readyset-server:beta-2022-12-15
    

  • ReadySet Adapter (linux-x84_64)

    docker pull public.ecr.aws/readyset/readyset:beta-2022-12-15
    

Changes

  • ReadySet now distributes a single readyset adapter binary and docker image for MySQL and Postgres instead of separate readyset-mysql and readyset-psql binaries. When running the readyset binary, set the new --database-type flag or DATABASE_TYPE environment variable to mysql or postgresql to specify which database ReadySet is integrating with. The DATABASE_TYPE environment variable replaces the ENGINE variable, which has been removed. Also, the readyset-adapter docker image has been renamed readyset. e8004b0, 8315587
  • Parallelized the snapshotting of Postgres tables, greatly reducing the time it takes snapshotting to finish. b1999a6
  • Added caching support for the Postgres "CHAR" special character type. 82f87a8
  • Added caching support for the Postgres JSONB_INSERT() function. b25d6c7
  • Added caching support for the Postgres JSONB_SET() function. 9c91a77
  • Added caching support for the Postgres JSONB_PRETTY() function. 055d2fc
  • Added caching support for the MySQL JSON_DEPTH() function. 9186017
  • Added caching support for the MySQL JSON_VALID() function. b72cfa1
  • Added caching support for the Postgres #- operator. a69f0d9
  • Added caching support for CASE WHEN expressions with more than one WHEN branch. e7973bf
  • Added caching support for subqueries directly in the FROM clause of the query. 8d0a633
  • For queries that access tables that ReadySet has not replicated, the SHOW PROXIED QUERIES command now returns no for readyset supported instead of pending. Also, such queries now log at warn-level instead of error-level. 92e258f, 75ba85e
  • Added replication support for "unchanged" Postgres TOAST fields. 9a05b63
  • Added replication support for the Postgres TRUNCATE statement. 405ac80
  • Renamed the NORIA_DEPLOYMENT environment variable to DEPLOYMENT to match the --deployment flag. 7ac9220
  • Renamed the Prometheus metrics endpoint from /prometheus to /metrics. d10d142
  • Fixed a bug with caching the Postgres CHAR data type. 9f151f6
  • Fixed a bug that could lead to missing cache data and/or crashes after inserting large amounts of table data with the Postgres COPY or \copy commands. daa5e1c
  • Fixed a panic that could be triggered when using Postgres as the upstream database. 58c3bd3
  • Fixed a bug where tables and views that failed to replicate from the upstream database would not participate in schema resolution, which could cause certain queries with non-schema-qualified table references to read from a table in the wrong schema rather than being proxied to the upstream database. c8e5c6b
  • Fixed a bug where a query that projects two columns with the same name but different tables would return values from the first of the two columns twice. 6054a1e

beta-2022-11-16

Downloads

Note

ReadySet binaries for Linux require the OpenSSL 1.1.x package. OpenSSL 3.x+ is not currently supported.

Binary (linux-x84_64) Sha256Sum
ReadySet Server 3347c7de63b7a487f493408191d1e9dfb1dd0f46d01653afb9bafe62f5008154
ReadySet Adapter for MySQL 921ae4d9ad41b77addbdc7a9eb3439b547711ca1acdc4bc9a9df690e40fa643d
ReadySet Adapter for Postgres 13472459c23efa590cbe1251d79ff9af4f309bf2d3ee7c0762d0a6e150cf22ff
Binary (darwin-arm64) Sha256Sum
ReadySet Server ed33bff2375a574f65628813e2eadcc7d4ea0914436dfdd87db936afa3054d18
ReadySet Adapter for MySQL cda080d4f231d89b2c95c99961b10ed119b696d13c453765dc394c95fe275a35
ReadySet Adapter for Postgres 7fc278eff4e08de62a9cee655a4b3d721f92653571b9de063e7dea90d6db6c2e
  • ReadySet Server (linux-x84_64)
    docker pull public.ecr.aws/readyset/readyset-server:beta-2022-11-16
    

Bug

ReadySet Adapter images may be broken on certain Mac platforms in this release!

  • ReadySet Adapter (linux-x84_64)
    docker pull public.ecr.aws/readyset/readyset-adapter:beta-2022-11-16
    

Changes

  • Added the ability to filter SHOW PROXIED QUERIES and SHOW CACHES by query_id, e.g, SHOW PROXIED QUERIES WHERE query_id = 'q_7b44f013d9995ffe';. b150cfc
  • Added caching support for several Postgres JSON operators: -, ||, ->, ->>, @>, <@, #>, and #>>. c20aa47, b59a0f5, 1804acc, d3c6085, d29d7e7, 3753cb7, ee0cfaf, fe8b332, 045321b, 60e0352, 42f944b, f9ece02
  • Added caching support for the MySQL || operator, which equivalent to OR. d1796d1, fa8bb66
  • Added caching support for the MySQL DATE_FORMAT() function. b5041a7
  • ReadySet now logs when replication slots are created and dropped. 9f85d98
  • Improved logging to ensure ERROR messages highlight situations that may require manual attention and INFO messages are not overly noisy with debugging details. fb4d42c
  • Fixed a bug that could cause Postgres replication to repeatedly fail on certain tables. 7207efa
  • Fixed a bug where arrays of Postgres enums would fail to replicate from the upstream database. 74e0e71, d964876

beta-2022-11-09

Downloads

Note

ReadySet binaries for Linux require the OpenSSL 1.1.x package. OpenSSL 3.x+ is not currently supported.

Binary (linux-x84_64) Sha256Sum
ReadySet Server d52631fb7b8b0a912aa205f005ffd32b8494f38fb43ea96ccee08b41c216002d
ReadySet Adapter for MySQL 966f4701beca80faf8d572fd261ff8431bbda374557680c2687e452c6cc228d6`
ReadySet Adapter for Postgres 6a1a5a47b3ee138c38d1d493fe5d442dabd001abb4858982dc2dfba3fbd6eaaf
Binary (darwin-arm64) Sha256Sum
ReadySet Server 76d7a65b9ef953af5ea337fa7ed731524c463d961835f7cb80444c6c9cc7a7d3
ReadySet Adapter for MySQL 0c00931f87900e5570cdb83421ceddba64e55abe5316e0f29bd59848849f7884
ReadySet Adapter for Postgres 81faacc0e463f5dbe3b1a0fa5d139ea86e203f36e39d91814cfc1fc391c52d10
  • ReadySet Server (linux-x84_64)

    docker pull public.ecr.aws/readyset/readyset-server:beta-2022-11-09
    

  • ReadySet Adapter (linux-x84_64)

    docker pull public.ecr.aws/readyset/readyset-adapter:beta-2022-11-09
    

Changes

  • Added replication and caching support for Postgres enumerated data types. d8e428d, e282ae9, 40d217f, ef95276, 5b401a5, 23e6a12, 312dfa0, 2fe679f, 2295188
  • Added caching support for the ?| and ?& JSON operators. f5ae4d, 6598431
  • Fixed a bug that would cause CREATE CACHE commands to fail for MySQL JOIN queries with join conditions in the WHERE clause instead of the ON clause. f9be6d6
  • Upgraded OpenSSL to address a recently identified vulnerability. 4525073
  • ReadySet now logs the names of table/views that fail to snapshot or replicate. 7ffaf07
  • ReadySet now logs queries that fail to parse. a25c401
  • Added node column types to Graphviz data flow visualizations. 30f023b
  • The ReadySet Adapter now fails to start and returns and error when its version does not match the ReadySet Server. e00c742

beta-2022-11-01

Downloads

Note

ReadySet binaries for Linux require the OpenSSL 1.1.x package. OpenSSL 3.x+ is not currently supported.

Binary (linux-x84_64) Sha256Sum
ReadySet Server ea2b82f1faedf5836f704b496277d44906ad85a259dae7631e4749a40f9ba6b6
ReadySet Adapter for MySQL 7aaeba77e70fa5c8f64b0d3ab1603365ae25b3f9bf4d9048a7b84cf63744b73a
ReadySet Adapter for Postgres 7f474cb5c7fc9f799fd84be735660e0abf7595ff108afaabe8c502737c2ffc76
Binary (darwin-arm64) Sha256Sum
ReadySet Server 8a204cd07b85fbbc375ee7e2c9b87ce44b6df3a2dab8e78454d2047f7c02cfd0
ReadySet Adapter for MySQL 44ba62376b0a34fd099cd9c7b83fbb2714a868615d2792e63104b5a6862759b4
ReadySet Adapter for Postgres cc220b6d1dfba79e9a0ad9946205000a072fd29fdcd09d6f510842fde827066f
  • ReadySet Server (linux-x84_64)

    docker pull public.ecr.aws/readyset/readyset-server:beta-2022-11-01
    

  • ReadySet Adapter (linux-x84_64)

    docker pull public.ecr.aws/readyset/readyset-adapter:beta-2022-11-01
    

Changes

Since first announcing ReadySet Core in July 2022, ReadySet has made steady progress on increasing SQL support and improving deployment options, including the following highlights:

SQL support

Area Description
Data types ReadySet can now replicate tables with even more MySQL and Postgres data types, including DATE types, the MySQL ENUM type, and the Postgres ARRAY and CITEXT types.
Table namespaces ReadySet can now replicate tables in multiple schemas of a Postgres database.
Schema changes When ReadySet receives certain ALTER TABLE schema change commands via the replication stream, including ADD COLUMN and DROP COLUMN, ReadySet now updates its snapshot and clears all cached queries for the affected table.
Query caching ReadySet can now cache the results of SELECT queries containing the HAVING clause or subqueries in the FROM clause. In addition, all queries that ReadySet does not support are now proxied to the upstream database.

Deployment

Area Description
Helm chart ReadySet's new Helm chart lets you quickly deploy ReadySet Core into a Kubernetes cluster in front of an existing Amazon RDS database.
SSL verification When starting the ReadySet Server and Adapter, you can now tell ReadySet where to find the root certificate for SSL verification using the --ssl_root_cert command-line flag or SSL_ROOT_CERT environment variable.
Cache location When starting the ReadySet Server and Adapter, you can now choose to store cached query results on the Adapter rather than on the Server (the default behavior) by passing the --embedded-readers flag to the Adapter and the --no-readers flag to the Server.
Table replication scope If the queries you want to cache with ReadySet touch only specific tables, when starting the ReadySet Server, you can now restrict the scope of replication accordingly using the --replication_tables command-line flag or REPLICATION_TABLES environment variable.