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)
-
ReadySet Adapter (linux-x84_64)
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 anupstream_db_url
, making the--database-type
argument optional. If--database-type
is provided with anupstream_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
, andINT8
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
, andOFFSET
, 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)
-
ReadySet Adapter (linux-x84_64)
Changes¶
- Multiple instances of ReadySet can now be run against a single Postgres instance. ab92510
- The
--eviction-policy
CLI option now defaults tolru
, 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 andWORKER_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
, anddomain_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)
-
ReadySet Adapter (linux-x84_64)
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
SELECT
s 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)
-
ReadySet Adapter (linux-x84_64)
Changes¶
- ReadySet now distributes a single
readyset
adapter binary and docker image for MySQL and Postgres instead of separatereadyset-mysql
andreadyset-psql
binaries. When running thereadyset
binary, set the new--database-type
flag orDATABASE_TYPE
environment variable tomysql
orpostgresql
to specify which database ReadySet is integrating with. TheDATABASE_TYPE
environment variable replaces theENGINE
variable, which has been removed. Also, thereadyset-adapter
docker image has been renamedreadyset
. 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 oneWHEN
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 returnsno
forreadyset supported
instead ofpending
. 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 toDEPLOYMENT
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 |
Changes¶
- Added the ability to filter
SHOW PROXIED QUERIES
andSHOW CACHES
byquery_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 toOR
. 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 andINFO
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 |
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 MySQLJOIN
queries with join conditions in theWHERE
clause instead of theON
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 |
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. |