SingleStore Managed Service

7.5 Release Notes

Release Highlights

The SingleStore 7.5 release enhances Universal Storage and adds support for unlimited storage (bottomless) databases. Also, the release adds new built-in functions for working with JSON and unique identifiers.

Universal Storage
  • Added support for multi-column hash keys (which can be PRIMARY or UNIQUE) on columnstore tables.

  • Added support for creating multi-column hash indexes on columnstore tables, using CREATE INDEX.

  • Added support for upserts on columnstore tables with multi-column hash keys, using INSERT ... ON DUPLICATE KEY UPDATE, REPLACE, IGNORE, LOAD DATA ... REPLACE ..., CREATE PIPELINE ... REPLACE ..., and CREATE PIPELINE ... ON DUPLICATE KEY UPDATE.

Storage
  • Unlimited storage. When a Managed Service cluster is created on AWS, all databases are created with "unlimited storage" when using the CREATE DATABASE command. No additional configuration is required. This capability is coming soon for Managed Service clusters created on Azure and GCP.

  • Added support for the utf8mb4 character set, which includes encoding for emojis and additional supplementary character sets. The character_set_server and collation_server engine variables specify the server character set and collation. Although these are session variables, it is strongly recommended to set these variables globally via SQL commands or set them at server startup using SingleStore Tools.

  • Added "straight-to-disk" support for columnstore tables with a unique index using INSERT … IGNORE, REPLACE, and INSERT … ON DUPLICATE KEY UPDATE. Straight-to-disk is when inserts and updates on columnstores bypass the rowstore (memory-backed) segment and go straight to disk.

Usability and Programmability
  • Added a new function, JSON_BUILD_OBJECT, that converts a comma-separated argument list to a JSON object.

  • Added a new function, JSON_PRETTY, that outputs the given JSON object or JSON array in an indented and legible format.

  • Added two new built-in SQL commands for creating identifiers: SYS_GUID and UUID.

  • Introduced a beta version of HTTP APIs that can be used to execute SQL statements over an HTTP connection.

    The HTTP APIs enable you to develop custom applications and build seamless integrations with applications. The HTTP API endpoints can be easily enabled or disabled using engine variables. For more information, see HTTP API Documentation.

Query Execution
  • UPDATE and DELETE queries containing a join (without using LIMIT) now only lock rows that pass the join.

  • Added the SHOW REPRODUCTION command, which collects troubleshooting data for query optimizer and code generation issues for queries that fail in the compilation phase. The troubleshooting information can be displayed on the terminal or written to a file, which can then be sent to the SingleStore Technical Support team for further analysis.

  • Added support for reading SELECT query results in parallel, enabling faster transmission of large results sets to parallel client applications.

  • Added the compile_lite and compile_firstsettings to the interpreter_mode engine variable.

  • Added the default_columnstore_table_lock_threshold engine variable. This is the threshold for the number of rows that are locked before a table lock is acquired when updating or deleting rows in a columnstore table.

  • Updates and deletes can now be run in a distributed transaction. This feature is enabled when the engine variable disable_update_delete_distributed_transactions is set to OFF (the default). When this variable is set to OFF, the engine variables deadlock_avoidance_strategy, lock_wait_timeout, and wait_die_retry_on_die_sleep_factor control the locking behavior of the updates and deletes.

Ingest
Security
Other Improvements and Fixes
  • Added database version information to MV_BACKUP_HISTORY via the SERVER_VERSION column.

  • Added replay_stuck_on_low_blob_cache_space to the output of SHOW DATABASE STATUS. It indicates whether the replay is stalling because of low blob cache space.

  • The RPC info column has been removed from the output of the SHOW PROCESSLIST command.

  • For commands that require CONFIG and CREDENTIALS, you can specify them in either order (CONFIG followed by CREDENTIALS or CREDENTIALS followed by CONFIG).

  • Extended UNION support to a wider range of cross-database queries.

  • Added the ability to run multiple concurrent ALTER commands on different tables in the same database.