Skip to content

Releases: tarantool/crud

1.7.4: pagination optimization

12 Feb 10:54

Choose a tag to compare

Overview

This release optimizes pagination performance for crud.select() and crud.pairs() operations by leveraging native after cursor support in Tarantool.

Fixed

  • Optimize crud.select() and crud.pairs() pagination with after cursor
    by using native after option on Tarantool 2.10+ for O(1) cursor positioning.
    Readview operations use native after only on Tarantool 3.x (#488).

1.7.3: safe mode fixes

03 Feb 14:53

Choose a tag to compare

Overview

This release introduces a new metric that can help users to disable safe mode in cluster correctly, and multiple fixes regarding cluster operation in safe mode.

Added

  • Add tnt_crud_router_cache_clear_ts metric to router to help user correctly disable safe mode in cluster.

Fixed

  • Return bucket_ref error as array in crud.*_many methods.
  • Move bucket_unref out of transaction.
  • Prevent duplicate metrics if init function is called multiple times.
  • Prevent creating duplicate triggers on _crud_settings_local space if init function is called multiple times.
  • Fix deadlock in crud.schema() after schema reload error (#479).

1.7.2: router metrics fix

28 Jan 11:16

Choose a tag to compare

Fixed

  • Remove tnt_crud_storage_safe_mode_enabled metric from router.

1.7.1: safe mode for rebalance

16 Jan 08:56

Choose a tag to compare

Changed

  • Stop marking/killing fast-mode iproto fibers on safe-mode switch.
    Storage ops are asserted by yield_checks in tests.
  • Move switch to safe mode from on_commit trigger to on_replace trigger.
  • Vinyl spaces always work in safe mode.

1.7.0: safe mode for rebalance

26 Dec 16:50

Choose a tag to compare

Added

  • Implement "safe" mode to prevent writing data to wrong replicaset when vshard rebalance is in progress (#448).
  • Auto switch to safe mode when rebalance process starts.
  • Manual return to fast mode.

Fixed

  • Drop wrap_box_space_func_result to cut allocations and speed up storage calls.

1.6.1: new request options

19 Sep 10:17

Choose a tag to compare

Added

  • Support for vshard's request_timeout parameter for calls with mode = 'read'

Changed

  • Auto-fill bucket_id for primary-key CRUD requests (get/update/delete) when the sharding index is the primary index and bucket_id is passed as box.NULL.

1.6.0: maintenance release

09 Sep 09:54

Choose a tag to compare

Overview

This release polishes CRUD behavior around routing, schema discovery, and Cartridge compatibility, and introduces validation safeguards for bucket_id. It also includes minor version bumps and stability fixes.

Added

  • Role model support for single CRUD operations (commit).
  • Validation of bucket_id: invalid values now raise BucketIDError before routing (commit).

Changed

  • Bump vshard version in rockspec.

Fixed

  • Compatibility with Cartridge 2.16.0.
  • crud.schema no longer returns TCF system space _cdc_state.
  • crud.schema no longer returns system space _gc_consumers with Tarantool 3.2+.
  • crud.schema no longer returns tt system space _tt_migrations.
  • Stabilized schema tests for Tarantool 3.2+.
  • Fixed bad error handling for method call.single.
  • Added support for operating on Tarantool 3.1 with data created on 2.11; previously an error occurred due to replicasets lookup by name ( commit).

1.5.2: many operations fix

20 May 11:04

Choose a tag to compare

Overview

This release fixes the bug that was discovered while working with tt crud export and tt crud import tools.

Fixed

  • insert_many, insert_object_many, replace_many, replace_object_many, upsert_many, upsert_object_many operations no longer fail with ShardingHashMismatchError if a space has custom sharding info and every tuple/object in the request has bucket_id set (#437).

1.5.1: license update

03 May 07:45

Choose a tag to compare

Overview

This release clarifies license in the rockspec.

Added

  • Clarify license in the rockspec (#434).

1.5.0: roles for Tarantool 3

04 Apr 08:18

Choose a tag to compare

Overview

This release introduces roles for Tarantool 3 configuration (supported for versions 3.0.2, 3.1.0 and newer).

Added

  • Asynchronous bootstrap support for storages (#412).
  • Tarantool 3 roles for setting up crud routers and storages (#415).
  • Ability to configure crud through Tarantool 3 roles configuration (#415).

Changed

  • Explicitly forbid datetime interval conditions (#373).
  • Storage initialization is now asynchronous by default for Tarantool 3.0+ (#412).
  • Additionally check backoff error on storage info fetch (#427).

Fixed

  • Working with datetime conditions in case of non-indexed fields or non-iterating indexes (#373).
  • Precision loss for decimal conditions in case of non-indexed fields or non-iterating indexes (#373).
  • Passing errors from storages for merger operations (crud.select, crud.pairs, readview:select, readview:pairs) (#423).
  • Working with nil operand conditions in case of non-indexed fields or non-iterating indexes (#422).