Tags: no1seman/crud
Tags
# 0.11.1 ### Overview This release fixes critical bug introduced in 0.11.0. It is recommended to use 0.11.1 instead of 0.11.0. It also adds an ability to configure quantile collector tolerated error and changes its default value. ### Breaking changes There are no breaking changes in the release. ### New features Set quantile collector tolerated error with crud.cfg (tarantool#281): crud.cfg{ stats_quantile_tolerated_error = 1e-4 } Decreasing tolerated error may fix getting `-Inf` values in quantiles. Increasing tolerated error may improve performance a bit. ### Bugfixes Requests no more fail with "Sharding hash mismatch" error if ddl set and bucket_id is explicitly specified (tarantool#278).
# 0.11.0 ## Overview This release adds several features and optimizations to CRUD module and fixes some critical problems. If you use CRUD with DDL, we highly recommend to update to this version. ## Breaking changes There are no breaking changes in the release. `crud.common.sharding_func` and `crud.common.sharding_key` sharding cache reload modules are deprecated now (since sharding cache reload is now automatic) and will be removed in future releases. ## New features `crud.count()` function to calculate the number of tuples in the space according to conditions. Read more about this feature in README ["Count" section](https://github.com/tarantool/crud/blob/edbe9ad0e7da4957f95bdb74cb025b18ca4a0d6c/README.md#count). `crud.stats()` function to monitor performance of your requests. To enable statistics collect, use ``` crud.cfg{ stats = true }} ``` If `metrics` package found, CRUD metrics will be automatically exported to metrics registry. Read more about this feature in README ["Statistics" section](https://github.com/tarantool/crud/blob/edbe9ad0e7da4957f95bdb74cb025b18ca4a0d6c/README.md#statistics). Support bucket id calculating using sharding func specified in DDL schema or in `_ddl_sharding_func` space. Read more about this feature in README ["API" section](https://github.com/tarantool/crud/blob/edbe9ad0e7da4957f95bdb74cb025b18ca4a0d6c/README.md#api). ## Bugfixes * Add automatic reload of DDL schema (tarantool#212). * Fix processing storage error for tuple-merger implementation of select/pairs (tarantool#271). * Do not change input tuple object in requests. * Optimize select with known bucket_id (tarantool#234).
# [0.10.0] - 01-12-21 ## Overview The main feature of this release is support of automatic calculation of the sharding key according to the database schema defined by [tarantool/ddl][ddl] module. Example: crud 0.9.0: ```lua local tuple = {7, 'Dimitrion'} local sharding_key = tuple[2] local bucket_id = vshard.router.bucket_id_strcrc32(sharding_key) return crud.insert('customers', tuple, {bucket_id = bucket_id}) ``` crud 0.10.0 (when `sharding_key` definition is present): ```lua local tuple = {7, 'Dimitrion'} return crud.insert('customers', tuple) ``` ## Added * CRUD operations calculates bucket id automatically using sharding key specified with DDL schema or in `_ddl_sharding_key` space (tarantool#166). **NOTE:** CRUD methods delete(), get() and update() requires that sharding key must be a part of primary key. Otherwise specify `bucket_id` explicitly. ## Fixed * Use tuple-merger backed select implementation on tarantool 2.10 (it gives less pressure on Lua GC) (PR tarantool#227). [ddl]: https://github.com/tarantool/ddl
# [0.9.0] - 20-10-21 ## Overview The most important changes are the new `crud.len()` function and optimizations in `crud.select()` / `crud.pairs()`. ## Added * `crud.len()` function to calculate the number of tuples in the space for memtx engine and calculate the maximum approximate number of tuples in the space for vinyl engine. * Testing: added integration with service coveralls.io (PR tarantool#195). * Testing: added integration with luacov that allows to generate report with code coverage statistics (PR tarantool#195). ## Changed * Names of errors generated by CRUD operations have been unified (PR tarantool#184). * Opmimize `crud.select()` / `crud.pairs()` for one replicaset case (say, when `bucket_id` is passed or deducible from conditions). It gives 13% boost on the case from tarantool#220 (PR tarantool#226). ## Fixed * Ignoring of an error in `crud.pairs()` (tarantool#144). * Damaging of opts table by CRUD methods (tarantool#192). * Ignoring of `bucket_id` option in `crud.select()`/`crud.pairs()` (tarantool#220).
Release 0.7.0 **Fixed** * Fixed error for partial result option if field contains box.NULL. * Fixed incorrect ``crud`` results during reverse pagination without specifying ``batch_size``. * Fixed crud roles reload: * before this patch reload wasn't fair - reloading `tuple.merger` and `tuple.keydef` modules failed, and crud started to use `crud.select.compat.select_old` module with naive merger implementation; * fair reloading `tuple.merger` and `tuple.keydef` led to the error that was fixed by caching loaded module in the special global variable not cleaned on reloading roles; * ability of using `tuple.merger` and `tuple.keydef` modules now is checked by calling `package.search`, built-in `merger` and `keydef` modules are used if present in `package.loaded`. It allows to avoid ignoring errors on checking modules existing via `pcall(require, '<module_name>')`. * Fixed some cases when module ignored schema updates. **Added** * `cut_rows` and `cut_objects` functions to cut off scan key and primary key values that were merged to the select/pairs partial result. * Functions ``stop()`` for the roles ``crud-storage`` and ``crud-router``. * Option flag `force_map_call` for `select()`/`pairs()` to disable the `bucket_id` computation from primary key. * `crud.min` and `crud.max` functions to find the minimum and maximum values in the specified index. * Added support for jsonpath for select.
Release 0.6.0 **Fixed** * Fixed not finding field in tuple on `crud.update` if there are `is_nullable` fields in front of it that were added when the schema was changed for Tarantool version <= 2.2. * Pagination over multipart primary key. **Added** * `mode`, `prefer_replica` and `balance` options for read operations (get, select, pairs). According to this parameters one of vshard calls (`callrw`, `callro`, `callbro`, `callre`, `callbre`) is selected
Release 0.5.0 **Fixed** * Fixed not finding field in tuple on ``crud.update`` if there are ``is_nullable`` fields in front of it that were added when the schema was changed. * Fixed select crash when dropping indexes * Using outdated schema on router-side * Sparsed tuples generation that led to "Tuple/Key must be MsgPack array" error **Added** * Support for UUID field types and UUID values * `fields` option for simple operations and select/pairs calls with pagination support to get partial result
Release 0.4.0 **Fixed** * Fixed typo in error for case when failed to get `bucket_id` * Fixed select by part of sharding key equal. Before this patch selecting by equality of partially specified multipart primary index value was misinterpreted as a selecting by fully specified key value. * Fixed iteration with `pairs` through empty space returned `nil`. **Added** * `truncate` operation * iterator returned by `pairs` is compatible with luafun
PreviousNext