Skip to content

Releases: readysettech/readyset

stable-241212

12 Dec 19:30
Compare
Choose a tag to compare

Release Notes

Readyset is currently released as a docker container and Linux distro binary packages. For installation with docker, see the Install with Docker documentation. Available Linux distribution binary packages for x86_64/amd64 include deb package for Ubuntu 22.04 and Debian 12, and rpm packages for Fedora 39 and Amazon Linux 2023. See package installation instructions.

What's New

  • 5e641aa: Fix an issue to forward COM_PING to backend connection to keep the connection alive.
  • 81db6af: Fix issues that prevent us from connecting and replicating from a MySQL 5.7 instance.
  • 42e7080: Improve the performance of replication by discarding unnecessary events earlier in the process.
  • 1307208: Change query metric's database_type tag value to upstream when serving from an upstream database.
  • e172765: Add support for snapshotting new tables without requiring a restart of the adapter. The new command accepts a comma list of tables: ALTER READYSET ADD TABLES <db>.<table_name1>, <db>.<table_name2>.
  • 4f09cfe: Improve MySQL snapshot performance by removing the need for exact row count for snapshot.
  • 41abc03: Add functionality to remove leftover tables that have being excluded from replication filters.
  • 1de382a: Add and correct many of the reported rocksdb metrics.

stable-241024

24 Oct 19:36
Compare
Choose a tag to compare

Release Notes

Readyset is currently released as a docker container and Linux distro binary packages. For installation with docker, see the Install with Docker documentation. Available Linux distribution binary packages for x86_64/amd64 include deb package for Ubuntu 22.04 and Debian 12, and rpm packages for Fedora 39 and Amazon Linux 2023. See package installation instructions.

What's New

  • a9509d4: Add support for ascii() function.
  • 55fc2c4: Add support for parsing the DATA DIRECTORY option from the CREATE TABLE statement in MySQL.
  • 8a84857: Added support for re-snapshot of tables. A new SQL command ALTER READYSET RESNAPSHOT TABLE table_name was added to trigger re-snapshot of tables on demand.
  • 233a70d: Better messaging when clients disable autocommit.
  • 7c2b78d: Allow some MariaDB clients to connect correctly to readyset.
  • 821daaa: Remove hidden --allow-unsupported-set flag, replaced by --unsupported-set-mode allow.
  • 770ee5c: Set the schema search path to a standard default when using --no-upstream-connections.
  • 278277a: Accept more values for the PostgreSQL session varaible extra_float_digits.
  • 8bfe6bf: Add distinctly greppable log messages for cache creation and removal.
  • c70bcea: Fix bug where cached queries that use table aliases are not found after restart.

stable-240919

20 Sep 23:42
Compare
Choose a tag to compare

Release Notes

Readyset is currently released as a docker container and Linux distro binary packages. For installation with docker, see the Install with Docker documentation. Available Linux distribution binary packages for x86_64/amd64 include deb package for Ubuntu 22.04 and Debian 12, and rpm packages for Fedora 39 and Amazon Linux 2023. See package installation instructions.

What's New

  • ca6d7c0: Clean up working dir files on start up to ensure no disk space is leaked after a crash.
  • 571f586: Fix a bug in distributed readyset where readyset-server will fail on startup due to a missing working_dir.
  • a0ebfa6: Add SHOW READYSET ALL TABLES syntax, which shows all upstream tables, regardless of whether Readyset is replicating them or not. SHOW READYSET TABLES now only displays tables that Readyset is actively replicating.
  • 8cc18b1: Fix bug affecting pgjdbc clients where binary-formatted timestamp columns in result sets are interpreted incorrectly.
  • 65a6436: Delete deprecated argument --db-dir (env: DB_DIR), which has long been replaced with --storage-dir (env: STORAGE_DIR).
  • 65a6436: Delete deprecated argument --standalone (env: STANDALONE), which has long been replaced with --deployment-mode standalone (env: DEPLOYMENT_MODE=standalone).
  • 65a6436: Delete deprecated argument --embedded-readers (env: EMBEDDED_READERS), which has long been replaced with --deployment-mode embedded-readers (env: DEPLOYMENT_MODE=embedded-readers).
  • ae90f73: Delete deprecated argument --allow-full-materialization (env: ALLOW_FULL_MATERIALIZATION), which has been temporarily replaced with --experimental-full-materialization (env: EXPERIMENTAL_FULL_MATERIALIZATION).
  • ae90f73: Delete deprecated argument --enable-experimental-mixed-comparisons (env: EXPERIMENTAL_MIXED_COMPARISONS_SUPPORT), which has been temporarily replaced with --experimental-mixed-comparisons (env: EXPERIMENTAL_MIXED_COMPARISONS).
  • ae90f73: Delete deprecated argument --enable-experimental-paginate-support (env: EXPERIMENTAL_PAGINATE_SUPPORT), which has been temporarily replaced with --experimental-pagination (env: EXPERIMENTAL_PAGINATION).
  • ae90f73: Delete deprecated argument --enable-experimental-post-lookup (env: EXPERIMENTAL_POST_LOOKUP_SUPPORT), which has been temporarily replaced with --experimental-post-lookup (env: EXPERIMENTAL_POST_LOOKUP).
  • ae90f73: Delete deprecated argument --enable-experimental-straddled-joins (env: EXPERIMENTAL_STRADDLED_JOIN_SUPPORT), which has been temporarily replaced with --experimental-straddled-joins (env: EXPERIMENTAL_STRADDLED_JOINS).
  • ae90f73: Delete deprecated argument --enable-experimental-topk-support (env: EXPERIMENTAL_TOPK_SUPPORT), which has been temporarily replaced with --experimental-topk (env: EXPERIMENTAL_TOPK).
  • ec0953b: Rename --experimental-full-materialization (env: EXPERIMENTAL_FULL_MATERIALIZATION) to --feature-full-materialization (env: FEATURE_FULL_MATERIALIZATION).
  • ec0953b: Rename --experimental-mixed-comparisons (env: EXPERIMENTAL_MIXED_COMPARISONS) to --feature-mixed-comparisons (env: FEATURE_MIXED_COMPARISONS).
  • ec0953b: Rename --experimental-pagination (env: EXPERIMENTAL_PAGINATION) to --feature-pagination (env: FEATURE_PAGINATION).
  • ec0953b: Rename --experimental-post-lookup (env: EXPERIMENTAL_POST_LOOKUP) to --feature-post-lookup (env: FEATURE_POST_LOOKUP).
  • ec0953b: Rename --experimental-straddled-joins (env: EXPERIMENTAL_STRADDLED_JOINS) to --feature-straddled-joins (env: FEATURE_STRADDLED_JOINS).
  • ec0953b: Rename --experimental-topk (env: EXPERIMENTAL_TOPK) to --feature-topk (env: FEATURE_TOPK).
  • ec0953b: Rename --experimental-placeholder-inlining (env: EXPERIMENTAL_PLACEHOLDER_INLINING) to --feature-placeholder-inlining (env: FEATURE_PLACEHOLDER_INLINING).
  • ec0953b: Rename --experimental-materialization-persistence (env: EXPERIMENTAL_MATERIALIZATION_PERSISTENCE) to --feature-materialization-persistence (env: FEATURE_MATERIALIZATION_PERSISTENCE).
  • f686412: Enable Full Materialization by default (can be disabled with --feature-full-materialization false (env: FEATURE_FULL_MATERIALIZATION=false)).
  • cd2b828: Add support for length, char_length, character_length and octet_length functions.

stable-240829

29 Aug 17:26
Compare
Choose a tag to compare

Release Notes

ReadySet is currently released as a docker container and Linux distro binary packages. For installation with docker, see the Install with Docker documentation. Available Linux distribution binary packages for x86_64/amd64 include deb package for Ubuntu 22.04 and Debian 12, and rpm packages for Fedora 39 and Amazon Linux 2023. See package installation instructions.

What's New

  • b4d3824: Added support for generated columns in MySQL.
  • eece0a2: Fixed a bug which caused tables with foreign keys to be recreated during the second start of Readyset when the reference table schema was not set.
  • e487654: Added a functionality to abort replication of MySQL tables that receive DML events in STATEMENT binlog format.
  • 3863967: Add configurable option to store fully materialized node data to disk rather than in memory.
  • 744da69: Match MySQL behavior for padding and trimming CHAR columns. Spaces are added to the end on writes to bring the value to the length specified for the column, and all spaces are from the end on reads.
  • ffef32a: Added a new --cdc-db-url parameter to allow users to specify a separate database URL for the CDC user (used for snapshot and replication). This user can be a different user than the upstream user (used to proxy application queries). This allows users to have a specific user for replication with required privileges, without having to give extra privileges to the application user.
  • 5ad86b7: Fixed a MySQL snapshot issue when using multi-column keys. In some cases, the snapshot could fail.
  • 7b21d2e: Fixed a bug with replicating DATE columns causing lookups into caches keyed on DATE columns to return no results. NOTE: Readyset instances already replicating tables with DATE columns should be reset to trigger a resnapshot in order to avoid this bug affecting existing data.
  • 3988524: Add metrics for updates and lifetimes of entries in the reader cache.
  • 7094779: Fixes an issue where the MySQL replicator fails to match rows when the table has JSON fields, causing the record to become stalled.

stable-240725

25 Jul 16:27
Compare
Choose a tag to compare

Release Notes

ReadySet is currently released as a docker container and Linux distro binary packages. For installation with docker, see the Install with Docker documentation. Available Linux distribution binary packages for x86_64/amd64 include deb package for Ubuntu 22.04 and Debian 12, and rpm packages for Fedora 39 and Amazon Linux 2023. See package installation instructions.

What's New

  • f680752: New option --disable-create-publication to skip creating a publication. Used when readyset is not running as a superuser and the publication has been created manually.
  • 7bf77a8: More accurately report the size of a persistent node by including the size of open memtables.
  • 7b0063b: Fixed correctness of MySQL timestamp handling. Now MySQL timestamps are correctly converted to UTC during snapshot/replication, and converted to local time when read from the database.
  • aa615dd: Now properly shutting down the rocksdb WAL at process exit.
  • 2d185a6: Fixes the microsecond precision of DATETIME columns in MySQL that sometimes were not being correctly represented in Readyset.
  • a4687e2: Enhance MySQL snapshot to use Primary Key or unique key when available. This makes the snapshot less intrusive than a SELECT * (Full Table Scan) for large tables.
  • 788f107: Handle hexadecimal x'...' and 0x... literals.

stable-240627

27 Jun 16:16
Compare
Choose a tag to compare

Release Notes

ReadySet is currently released as a docker container. See the Install with Docker documentation for instructions. It can also be installed from an x86_64/amd64 deb package for Ubuntu 22.04 and Debian 12, and rpm packages for Fedora 39 and Amazon Linux 2023. See package installation instructions.

What's New

  • d169608: Correctly handle escaped quotes in table column comments.
  • 383d1e3: Implemented hash join capability for joins using generated columns, resulting in drastically increased performance for those join operations.
  • 6680692: Added collation support for storing CHAR and BINARY columns in MySQL using the correct padding. This fixes an issue when looking up CHAR/BINARY columns with values that do not match the column length.
  • 614a6ee: Fixed a bug where queries that already had caches were sometimes stuck in the SHOW PROXIED QUERIES list.

stable-240523

23 May 20:16
Compare
Choose a tag to compare

Release Notes

ReadySet is currently released as a docker container. See the Install with Docker documentation for instructions. It can also be installed from an x86_64/amd64 deb package for Ubuntu 22.04 and Debian 12, and rpm packages for Fedora 39 and Amazon Linux 2023. See package installation instructions.

What's New

  • e28a872: Added support for TRUNCATE TABLE statements for MySQL.
  • 1b1c370: Adjusted MySQL replicator to report table position at a fixed interval (10 seconds). This makes the replicator keep distance short between min and max positions. This is useful when readyset restarts, ensuring that we do not have to re-stream a lot of binary logs to catch up.
  • ab89ea3: Allow parameterizing WHERE IN clauses when the query contains aggregations.
  • 6665713: Added support for MySQL's MEDIUMINT column type.
  • a04f066: Adjusted replicators terminology to be compatible with MySQL 8.4.
  • 5fca15b: Added support for MySQL Binlog Transaction Compression. This feature allows MySQL to compress the binlog events requiring less network bandwidth and storage space. readyset is now able to decompress the binlog events and process those events.

stable-240425

25 Apr 15:50
Compare
Choose a tag to compare

Release Notes

ReadySet is currently released as a docker container. See the Install with Docker documentation for instructions. It can also be installed from an x86_64/amd64 deb package for Ubuntu 22.04 and Debian 12, and rpm packages for Fedora 39 and Amazon Linux 2023. See package installation instructions.

What's New

  • 2aca4d1: Significantly improved warm read performance for certain queries that return timestamps.
  • 995e70f: Enabled thin link time optimization in release builds, generally improving performance by
    about 10%.
  • 35d04ac: Add the capability to connect to a specific MySQL database as part of the connection.
  • 2e96db6: Add support for the PostgreSQL date_trunc built-in function.
  • 1a1684e: Allow BC timestamps without a time zone.

Fixes

  • d6a6405: Fixed a bug with handling DEALLOCATE statements within a transaction.
  • deb2d62: Adjusted the MySQL initial handshake salt generation function to restrict the range of
    random characters. This fixes a JDBC driver issue that randomly fails to connect to Readyset.
  • 26ade70: Fixed an issue where Readyset incorrectly returned results from range queries against
    NULL keys.
  • 84226b0: Fixed an issue where NULL values were included in range queries that were unbounded
    from below.
  • c9e9b38: Fixed a bug where Numeric NaN values were being incorrectly snapshotted as 0.
  • 45d89b7: Fixed a bug where the replicator would unnecessarily restart after handling an error in replication.

stable-240328

28 Mar 18:15
Compare
Choose a tag to compare

Release Notes

ReadySet is currently released as a docker container. See the Install with Docker documentation for instructions. It can also be installed from an x86_64/amd64 deb package for Ubuntu 22.04 and Debian 12. See package installation instructions.

What's New

  • ca9856b: Add support for MySQL COM_RESET_CONNECTION command.
  • 7c8a1b7: Add support for MySQL COM_CHANGE_USER command.
  • 22f8532: Readyset now streams proxied results from postgres for queries using the simple query protocol similarly to how it already does for the extended query protocol. This vastly reduces the memory consumption for text-protocol queries as well as improves performance of them in many cases.
  • 7a14b00: Support timestamps in prepared statements from the Java PG driver, pgjdbc.

Fixes

  • a997647: Fixed an issue where range queries returned incorrect results in certain situations
  • f054ca6: Fixed issue on SHOW READYSET STATUS reporting the wrong status when reconnecting to the database.
  • f857866: Fixed a bug where we didn't properly parse type alias following a numeric type cast.

stable-240229

29 Feb 17:24
Compare
Choose a tag to compare

Release Notes

ReadySet is currently released as a docker container. See the Install with Docker documentation for instructions. It can also be installed from an x86_64/amd64 deb package for Ubuntu 22.04 and Debian 12. See package installation instructions.

What's New

  • 048fd4b: Added support for the autoparameterization of range queries
  • a67c2f6: Added support for the autoparameterization of negative numbers
  • ecc1820: Added the cache name as a label on the metrics Readyset emits for queries against caches
  • 47ae35e: Added a feature flag to reduce the number of expensive domain metrics Readyset emits in production deployments
  • 7a00dbb: Readyset now supports the DEALLOCATE SQL statement for both postgres and mysql.
  • d571afd: Removed labels from certain metrics that had very high cardinality to reduce the cost of ingesting and plotting metrics
  • f0d1228: Simplified the metrics Readyset emits to keep track of internal state size
  • 511d6bc: Added a new cache_name label to various metrics to improve debuggability
  • b08683d: Simplified the metrics Readyset emits to count the number of times it starts up
  • 6c3809b: Removed an expensive domain-related metric that duplicated pre-existing metrics
  • b3c0d46: REPLICATION_SERVER_ID can now be configured to use alphanumeric characters for postgres.

Fixes

  • 301f78f: Fixed an issue where Readyset was not correctly handling entries in the GROUP BY clause that identified columns by their position in the column list of the query
  • 8b4ae75: Fixed an issue where Readyset evaluated certain expressions incorrectly
  • a36d8da: Fixed an issue where caches were not queryable after restarts in certain cases
  • 7bc9b5b: Fixed an issue where query log metrics were not being emitted for certain proxied queries
  • 0d4d2ff: Fixed an issue where the wrong metric was being emitted to count the number of misses during a replay.