Releases: tarantool/crud
0.11.2
Overview
This is a bugfix release. Several things related to crud statistics (0.11.0 and 0.11.1 release features) was improved or fixed.
Breaking changes
There are no breaking changes in the release.
New features
-
Make metrics quantile collector age params configurable (#286).
-
Add separate
latency_averageandlatency_quantile_recentfields tocrud.stats()output (#286).
Bugfixes
- Preset
stats_quantile_tolerated_errorcrud.cfgparameter is no more lost on configuration update (#284).
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 (#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 (#278).
0.11.0
Caution: Use CRUD 0.11.1 instead of 0.11.0. It fixes critical bug
for requests with specified bucket id (see #278).
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. -
crud.stats()function to monitor performance of your requests.
To enable statistics collect, usecrud.cfg{ stats = true }
If
metricspackage found, CRUD metrics will be automatically exported
to metrics registry. Read more about this feature in README "Statistics"
section. -
Support bucket id calculating using sharding func specified in
DDL schema or in_ddl_sharding_funcspace. Read more about this
feature in README "API" section.
Bugfixes
0.10.0
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
module. Example:
crud 0.9.0:
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):
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_keyspace (#166).NOTE: CRUD methods delete(), get() and update() requires that sharding
key must be a part of primary key. Otherwise specifybucket_idexplicitly.
Fixed
- Use tuple-merger backed select implementation on tarantool 2.10+ (it gives
less pressure on Lua GC) (PR #227).
0.9.0
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 #195).
- Testing: added integration with luacov that allows to generate report with
code coverage statistics (PR #195).
Changed
- Names of errors generated by CRUD operations have been unified (PR #184).
- Opmimize
crud.select()/crud.pairs()for one replicaset case (say, when
bucket_idis passed or deducible from conditions). It gives 13% boost on
the case from #220 (PR #226).
Fixed
0.8.0
0.7.1
0.7.0
Bug fixes
- Fixed error for partial result option if field contains box.NULL.
- Fixed incorrect
crudresults during reverse pagination
without specifyingbatch_size. - Fixed crud roles reload:
- before this patch reload wasn't fair - reloading
tuple.merger
andtuple.keydefmodules failed, and crud started to use
crud.select.compat.select_oldmodule with naive merger implementation; - fair reloading
tuple.mergerandtuple.keydefled to the error that was
fixed by caching loaded module in the special global variable not cleaned
on reloading roles; - ability of using
tuple.mergerandtuple.keydefmodules now is checked
by callingpackage.search, built-inmergerandkeydefmodules are used
if present inpackage.loaded. It allows to avoid ignoring errors on checking
modules existing viapcall(require, '<module_name>').
- before this patch reload wasn't fair - reloading
- Fixed some cases when module ignored schema updates.
Features
cut_rowsandcut_objectsfunctions to cut off scan key and
primary key values that were merged to the select/pairs partial result.- Functions
stop()for the rolescrud-storageandcrud-router. - Option flag
force_map_callforselect()/pairs()
to disable thebucket_idcomputation from primary key. crud.minandcrud.maxfunctions to find the minimum and maximum values in the specified index.- Added support for jsonpath for select.
0.6.0
Bug fixes
-
Fixed not finding field in tuple on
crud.updateif
there areis_nullablefields in front of it that were added
when the schema was changed for Tarantool version <= 2.2. -
Pagination over multipart primary key.
Features
mode,prefer_replicaandbalanceoptions for read operations
(get, select, pairs). According to this parameters one of vshard
calls (callrw,callro,callbro,callre,callbre) is selected
0.5.0
Bug fixes
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
Features
- Support for UUID field types and UUID values
fieldsoption for simple operations and select/pairs calls with pagination
support to get partial result