Main
Try
Documentation
Download
En
Ru
Main
Try
Documentation
Download
Submodule box.space
/
box.space._vpriv
Overview
What is Tarantool?
Editions
Use cases
Fast first-class storage
Advanced cache
Smart queue
Data-centric applications
Getting started
First steps
Installation
Getting to know Tarantool
Configuring a cluster [1 minute]
Creating a data schema [2 minutes]
Writing data [5 minutes]
Setting up HTTP API [2 minutes]
Looking at the data [1 minute]
Scaling the cluster [1 minute]
Checking how sharding works [1 minute]
Disconnecting a shard for a while [1 minute]
See also
Connecting to the cluster
Updating the data schema
Writing code in a cluster application
How-to guides
Creating Tarantool database
Using a Docker image
Launching a container
Attaching to Tarantool
Creating a database
Stopping a container
Using a package manager
Starting Tarantool
Creating a database
Connecting remotely
Connecting from your favorite language
Connecting from Python
Pre-requisites
Connecting to Tarantool
Manipulating the data
Inserting data
Querying data
Updating data
Deleting data
Executing stored procedures
Feature comparison
Connecting from PHP
Pre-requisites
Connecting to Tarantool
Manipulating the data
Inserting data
Querying data
Updating data
Deleting data
Executing stored procedures
Connecting from Go
Pre-requisites
Connecting to Tarantool
Manipulating the data
Inserting data
Querying data
Updating data
Deleting data
Executing stored procedures
Feature comparison
Connecting to Tarantool from C++
Pre-requisites
Installation
Starting Tarantool and creating a database
Setting up access rights
Connecting to Tarantool
Embedding connector
Instantiating objects
Connecting
Error handling
Working with requests
Preparing requests
Sending requests
Receiving responses
Several connections at once
Closing connections
Building and launching C++ application
Decoding and reading the data
Base reader prototype
Parsing values
Parsing array
Setting reader
Creating your first Tarantool Cartridge application
Defining and manipulating data
CRUD operation examples
Using data operations
INSERT
DELETE
UPDATE
UPSERT
REPLACE
SELECT
Using box.space functions to read _space tuples
Using box.space functions to organize a _space tuple
Using indexes
Creating an index
Index operations
Using sequences
Options for box.schema.sequence.create()
Associating a sequence with an index
Getting started with net.box
Sandbox configuration
Creating a net.box connection
Using data operations
Closing the connection
Quick start with sharding
Sample configuration
Developing applications with Tarantool
Launching an application
Launching in Docker
Launching a binary program
Creating an application
Modules, rocks and applications
Avro schemas
Bootstrapping a database
GIS
Index iterators
Fibers, yields and cooperative multitasking
Logging
nginx
Non-blocking IO
Developing with an IDE
Lua cookbook recipes
hello_world.lua
console_start.lua
fio_read.lua
fio_write.lua
ffi_printf.lua
ffi_gettimeofday.lua
ffi_zlib.lua
ffi_meta.lua
ffi_varbinary_insert.lua
print_arrays.lua
count_array.lua
count_array_with_nils.lua
count_array_with_nulls.lua
count_map.lua
swap.lua
class.lua
garbage.lua
fiber_producer_and_consumer.lua
socket_tcpconnect.lua
socket_tcp_echo.lua
getaddrinfo.lua
socket_udp_echo.lua
http_get.lua
http_send.lua
http_server.lua
http_generate_html.lua
select_all.go
Lua tutorials
First steps
Insert one million tuples with a Lua stored procedure
Configure
Delimiter
Create a function that returns a string
Create a function that calls another function and sets a variable
Modify the function so it returns a one-letter random string
Modify the function so it returns a ten-letter random string
Make a tuple out of a number and a string
Modify main_function to insert a tuple into the database
Modify main_function to insert a million tuples into the database
Sum a JSON field for all tuples
Indexed pattern search
C tutorial
C stored procedures
Preparation
easy.c
harder.c
hardest.c
read.c
write.c
Cleaning up
An example in the test suite
Replication tutorials
Bootstrapping a replica set
Replication setup
Master-replica bootstrap
Controlled failover
Master-master bootstrap
Adding instances
Adding a replica
Adding a master
Removing instances
Configuring synchronous replication
Tips and tricks
Managing leader elections
Configuration
Monitoring
Important notes
SQL guides
SQL beginners’ guide
Sample table
Creating a table
Nulls
Creating an index
Data change
Constraints
Table relationships
Selecting with WHERE
Select with subqueries
Select with Cartesian join
Select with join with ON clause
Select with join with USING clause
Select with natural join
Select with left join
Select with functions
Select with common table expression
Select with order, limit, and offset clauses
Views
Transactions
Implementing Tarantool’s SQL On Top of NoSQL
Relational databases
SQL tutorial
Starting up with a first table and SELECTs
Initialize
Switch to the SQL language
CREATE, INSERT, UPDATE, SELECT
CREATE TABLE
INSERT
The SEQSCAN keyword
SELECT with ORDER BY clause
SELECT with WHERE clauses
SELECT with GROUP BY and aggregate functions
Complications and complex SELECTs
NULLs
Indexes
Create a subset table
SELECT with a subquery
SELECT with a join
Constraints and foreign keys
CREATE TABLE with a CHECK clause
CREATE TABLE with a FOREIGN KEY clause
UPDATE
DELETE
ALTER TABLE with a FOREIGN KEY clause
Triggers
Operators and functions
String operations
Number operations
Ranges and limits
Views
Common table expressions
VALUES
Metadata
Using SQL from Lua
box.execute()
Create a million-row table
Select from a million-row table
Cleanup and exit
Improving MySQL with Tarantool
More guides
Understanding the binary protocol
Overview
Examples
IPROTO_SELECT
IPROTO_UPDATE
IPROTO_EXECUTE
IPROTO_INSERT
IPROTO_EVAL
Creating a table with IPROTO_EXECUTE
SELECT with SQL
IPROTO_PREPARE
Heartbeat
libslave tutorial
Concepts
Data model
Fibers and cooperative multitasking
Transactions
Application server
Sharding
Triggers
Replication
Storage engines
Data model
Data storage
Tuples
Spaces
Data types
Lua versus MsgPack
Field type details
nil
boolean
integer
unsigned
double
number
decimal
datetime
interval
string
bin
uuid
array
table
tuple
scalar
any
Examples
Indexed field types
Collations
Constraints
Constraint types
Constraint functions
Creating constraints
Foreign keys
Foreign key types
Creating foreign keys
Indexes
Basics
Indexed field types
Index types
TREE indexes
HASH indexes
RTREE indexes
BITSET indexes
Operations
Data operations
Complexity factors
Data schema description
Data schema description in a code file
Data schema description using the DDL module
Persistence
Migrations
Adding a field to the end of a space
Creating an index
Other types of migrations
What you need to know when writing complex migrations
How you can apply migration
Fibers, yields, and cooperative multitasking
Fibers
Yields
Explicit yields
Implicit yields
Example #1
Example #2
Cooperative multitasking
Transactions
Transaction model
Overview
Isolation level
Read-committed
Read-confirmed
Linearizable read
Best-effort (default)
Thread model
Main threads
Supplementary threads
Transaction mode: default
Transaction mode: MVCC
Transaction manager
Enabling the transaction manager
Setting the transaction isolation level
Examples with MVCC enabled and disabled
Streams and interactive transactions
Stream
Interactive transaction
Modules
Tarantool Cartridge
Sharding
Architecture
Overview
Virtual buckets
Structure
Storage
Router
CRUD (create, read, update, delete) operations
SELECT requests
Calling stored procedures
Rebalancer
Migration of buckets
The _bucket system space
The routing table
Processing requests
Glossary
Replication
Replication architecture
Replication mechanism
Overview
Replication stages
Replica set and instance UUIDs
Replication roles: master and replica
Replication topologies: cascade, ring, and full mesh
Orphan status
Synchronous replication
Overview
Synchronous and asynchronous transactions
Limitations and known problems
Leader election
Automated leader election
Leader election and synchronous replication
Leader election process
Triggers
Storage engines
Storing data with memtx
Memory model
Data persistence
Accessing data
Replicating data
Summary
Storing data with vinyl
Algorithm
Filling an LSM tree
Controlling the form of an LSM tree
Search
Range searching
Deletion
Advantages of an LSM tree
Disadvantages of an LSM tree and how to deal with them
Unpredictable write speed
Unpredictable read speed
Compression and page index
Bloom filters
Caching
Garbage collection control
Advanced features of vinyl
Upsert
Secondary keys
Difference between memtx and vinyl storage engines
CRUD operations
box.schema.space.create()
space_opts
space_object:alter()
space_object:auto_increment()
space_object:bsize()
space_object:count()
space_object:create_index()
index_opts
key_part
Examples
Creating an index using field names and numbers
Creating an index using the path option for map fields (JSON-path indexes)
Creating a multikey index using the path option with [*]
Creating a functional index
space_object:delete()
space_object:drop()
space_object:format()
space_object:frommap()
space_object:get()
space_object:insert()
space_object:len()
space_object:on_replace()
space_object:before_replace()
space_object:pairs()
space_object:put()
space_object:rename()
space_object:replace() / put()
space_object:run_triggers()
space_object:select()
space_object:truncate()
space_object:update()
space_object:upsert()
space_object extensions
box.space.create_check_constraint()
space_object:enabled
space_object:field_count
space_object.id
space_object.index
box.space._cluster
box.space._func
box.space._index
box.space._vindex
box.space._priv
box.space._vpriv
box.space._schema
box.space._sequence
box.space._sequence_data
box.space._space
box.space._vspace
box.space._space_sequence
box.space._vspace_sequence
box.space._user
box.space._vuser
box.space._ck_constraint
box.space._collation
box.space._vcollation
System space views
box.space._session_settings
Cluster on Cartridge
Overview
About Tarantool Cartridge
Getting started
Prerequisites
Create your first application
Next steps
Contributing
Developer’s guide
Introduction
Installing Tarantool Cartridge
Creating a project
Cluster roles
Built-in roles
Custom roles
Defining role dependencies
Using multiple vshard storage groups
Role’s life cycle (and the order of function execution)
Configuring custom roles
Custom configuration example
Applying custom role’s configuration
Using the built-in HTTP server
Implementing authorization in the web interface
Application versioning
Using .cartridge.ignore files
Failover architecture
Instance configuration upon a leader change
Leader appointment rules
Disabled mode
Eventual failover
Stateful failover
Case: external provider outage
Case: coordinator outage
Raft failover (beta)
Manual leader promotion
Unelectable nodes
Fencing
Failover configuration
Lua API
GraphQL API
Stateboard configuration
Fine-tuning failover behavior
Configuring instances
Configuration basics
Internal representation of clusterwide configuration
Two-phase commit
Managing role-specific data
HTTP API
GraphQL API
Lua API
Luatest helpers
Deploying an application
Deploying as an RPM or DEB package
Entities created during installation
Deploying as a tar+gz archive
Deploying from sources
Starting/stopping instances
Start/stop using tarantool
Start/stop using cartridge CLI
Start/stop using systemctl
Error handling guidelines
Error objects in Lua
GraphQL
HTTP
Cluster instance lifecycle
Unconfigured
ConfigFound
ConfigLoaded
InitError
BootstrappingBox
RecoveringSnapshot
BootError
ConnectingFullmesh
BoxConfigured
ConfiguringRoles
RolesConfigured
OperationError
Administrator’s guide
Versions compatibility and known issues about upgrading
Deploying the cluster
Bootstrapping from an existing cluster (optional)
Cluster setup
Updating the configuration
Managing the cluster
Changing the cluster topology
Data rebalancing
Deactivating replica sets
Expelling instances
Enabling automatic failover
Failover disabled (default)
Eventual failover (not recommended for production)
Stateful failover
Raft failover (beta)
Changing failover priority list
Managing users
Resolving conflicts
Monitoring a cluster via CLI
Connecting to nodes via CLI
Monitoring storages
Output example
Status list
Potential issues
Monitoring routers
Output example
Status list
Potential issues
Issues and suggestions
Instances general info
Changing cluster cookie
Fixing broken instance configuration
Upgrading schema
Disaster recovery
Backups
Troubleshooting
Problems with replica
Editing clusterwide configuration in WebUI returns an error
An instance is stuck in the ConnectingFullmesh state upon restart
I want to run an instance with a new advertise_uri
The cluster is doomed, I’ve edited the config manually. How do I reload it?
Repairing cluster using Cartridge CLI repair command
Changing instance advertise URI
Changing replicaset leader
Removing instance from the cluster
Broken failover promote in Cartridge 2.7.7/2.7.8
A ‘Connection refused’ error in unconfigured instance since 2.7.4
‘Address already in use’ errors
Cartridge API
Module
cartridge
Functions
cfg (opts, box_opts)
reload_roles ()
is_healthy ()
Tables
VshardGroup
Global functions
_G.cartridge_get_schema ()
_G.cartridge_set_schema (schema)
Clusterwide DDL schema
get_schema ()
set_schema (schema)
Cluster administration
ServerInfo
ReplicasetInfo
admin_get_servers ([uuid])
admin_get_replicasets ([uuid])
admin_get_uris (filter)
admin_probe_server (uri)
admin_enable_servers (uuids)
admin_disable_servers (uuids)
admin_restart_replication (…)
admin_bootstrap_vshard ()
Automatic failover management
FailoverParams
failover_get_params ()
failover_set_params (opts)
failover_promote (replicaset_uuid[, opts])
admin_get_failover ()
admin_enable_failover ()
admin_disable_failover ()
Managing cluster topology
admin_edit_topology (args)
EditReplicasetParams
EditServerParams
JoinServerParams
Clusterwide configuration
config_get_readonly ([section_name])
config_get_deepcopy ([section_name])
config_patch_clusterwide (patch)
config_force_reapply (uuids)
Inter-role interaction
service_get (module_name)
service_set (module_name, instance)
Cross-instance calls
rpc_call (role_name, fn_name[, args[, opts]])
Usage:
rpc_get_candidates (role_name[, opts])
Authentication and authorization
http_authorize_request (request)
http_render_response (response)
http_get_username ()
Deprecated functions
admin_edit_replicaset (args)
admin_edit_server (args)
admin_join_server (args)
admin_expel_server (uuid)
Module
cartridge.auth
Local Functions
set_enabled (enabled)
get_enabled ()
init ()
set_callbacks (callbacks)
get_callbacks ()
Configuration
set_params (opts)
get_params ()
AuthParams
Authorizarion
set_lsid_cookie (user)
get_session_username ()
authorize_request (request)
render_response (response)
User management
UserInfo
add_user (username, password, fullname, email)
get_user (username)
edit_user (username, password, fullname, email)
list_users ()
remove_user (username)
Module
cartridge.roles
Functions
reload ()
forbid_reload ()
allow_reload ()
is_reload_forbidden ()
on_apply_config (table, string)
Local Functions
cfg (module_names)
get_all_roles ()
get_known_roles ()
get_enabled_roles_without_deps ()
get_enabled_roles (roles)
get_role_dependencies (role_name)
validate_config (conf_new, conf_old)
apply_config (conf, opts, is_master)
stop ()
Module
cartridge.issues
Tables
limits
Local Functions
validate_limits (limits)
set_limits (limits)
Module
cartridge.argparse
Functions
parse ()
get_opts (filter)
get_box_opts ()
get_cluster_opts ()
Tables
cluster_opts
box_opts
Module
cartridge.twophase
Functions
twophase_commit (opts)
Usage:
patch_clusterwide (patch)
force_reapply (uuids)
get_schema ()
set_schema (schema)
on_patch (trigger_new, trigger_old)
Usage:
Local Functions
wait_config_release (timeout)
prepare_2pc (upload_id)
commit_2pc ()
abort_2pc ()
Module
cartridge.failover
Functions
get_coordinator ()
Local Functions
schedule_clear ()
schedule_add ()
_get_appointments_disabled_mode ()
_get_appointments_eventual_mode ()
_get_appointments_stateful_mode ()
accept_appointments (replicaset_uuid)
fencing_check ()
check_suppressing_lock ()
failover_loop ()
cfg ()
get_active_leaders ()
is_leader ()
is_rw ()
is_vclockkeeper ()
is_paused ()
failover_suppressed ()
is_synchro_mode_enabled ()
consistency_needed ()
mode ()
force_inconsistency (replicaset_uuid)
wait_consistency (replicaset_uuid)
set_options ()
Module
cartridge.topology
Functions
cluster_is_healthy ()
Local Functions
get_leaders_order (topology_cfg, replicaset_uuid, new_order, opts)
validate (topology_new, topology_old)
find_server_by_uri (topology_cfg, uri)
refine_servers_uri (topology_cfg)
probe_missing_members (servers)
get_fullmesh_replication (topology_cfg, replicaset_uuid)
Module
cartridge.clusterwide-config
Usage:
Functions
new ([data])
save (clusterwide_config, filename)
load (filename)
Local Functions
load_from_file (filename)
load_from_dir (path)
remove (string)
Module
cartridge.rpc
Functions
get_candidates (role_name[, opts])
call (role_name, fn_name[, args[, opts]])
Usage:
Local Functions
get_connection (role_name[, opts])
Module
cartridge.tar
Functions
pack (files)
unpack (tar)
Module
cartridge.pool
Functions
connect (uri[, opts])
Local Functions
format_uri (uri)
map_call (fn_name[, args[, opts]])
Module
cartridge.upload
Functions
upload (data, uri_list)
Tables
inbox
Module
cartridge.confapplier
Functions
get_active_config ()
get_readonly ([section_name])
get_deepcopy ([section_name])
Local Functions
set_state (state[, err])
wish_state (state[, timeout])
validate_config (clusterwide_config_new)
restart_replication ()
apply_config (clusterwide_config)
Module
cartridge.remote-control
Local Functions
bind (host, port)
accept (credentials)
unbind ()
drop_connections ()
suspend ()
suspend ()
Module
cartridge.service-registry
Functions
set (module_name, instance)
get (module_name)
list ()
Module
custom-role
Functions
init (opts)
stop (opts)
validate_config (conf_new, conf_old)
apply_config (conf, opts)
get_issues ()
Fields
role_name
hidden
permanent
Module
cartridge.lua-api.stat
Local Functions
get_stat (uri)
Module
cartridge.lua-api.boxinfo
Local Functions
get_info (uri)
Module
cartridge.lua-api.get-topology
Tables
ReplicasetInfo
ServerInfo
Local Functions
get_topology ()
get_servers (filter)
get_uris (filter)
Module
cartridge.lua-api.edit-topology
Editing topology
edit_topology (args)
EditReplicasetParams
JoinServerParams
EditServerParams
Module
cartridge.lua-api.topology
Functions
get_servers ([uuid])
get_replicasets ([uuid])
probe_server (uri)
enable_servers (uuids)
disable_servers (uuids)
restart_replication (…)
set_electable_servers (uuids)
set_unelectable_servers (uuids)
Local Functions
get_self ()
Module
cartridge.lua-api.failover
Functions
get_params ()
set_params (opts)
get_failover_enabled ()
set_failover_enabled (enabled)
promote (replicaset_uuid[, opts])
pause ()
resume ()
Tables
FailoverParams
Module
cartridge.lua-api.vshard
Functions
get_config ()
bootstrap_vshard ()
Module
cartridge.lua-api.deprecated
Deprecated functions
join_server (args)
edit_server (args)
expel_server (uuid)
edit_replicaset (args)
Module
cartridge.lua-api.compression
Functions
get_cluster_compression_info ()
__cartridgeGetStorageCompressionInfo ()
Local Functions
create_tmp_space (space_name, space_type, orig_index, orig_format, field_format)
Class
cartridge.test-helpers.cluster
Functions
Cluster:new (object)
Cluster:server (alias)
Cluster:server_by_role (role_name)
Cluster:servers_by_role (role_name)
Cluster:apply_topology ()
Cluster:start ()
Cluster:stop ()
Cluster:join_server (server)
Cluster:wait_until_healthy (server)
Cluster:upload_config (config, opts)
Cluster:download_config ()
Cluster:retrying (config, fn[, …])
Tables
cartridge.test-helpers.cluster.replicaset_config
Local Functions
cartridge.test-helpers.cluster.iter_servers_by_role (cluster, role_name)
Class
cartridge.test-helpers.server
Functions
Server:build_env ()
Server:start ()
Server:stop ()
Server:graphql (request, http_options)
Server:join_cluster (main_server[, options])
Server:setup_replicaset (config)
Server:upload_config (config, opts)
Server:download_config ()
Methods
cartridge.test-helpers.server:new (object)
Class
cartridge.test-helpers.etcd
Functions
Etcd:new (object)
Etcd:start ()
Etcd:stop ()
Class
cartridge.test-helpers.stateboard
Methods
cartridge.test-helpers.stateboard:new (object)
Cartridge CLI
Cartridge application lifecycle
Migration from Cartridge CLI to tt
Commands difference
Installation
Enable shell completion
Linux
OS X
Supported Cartridge CLI commands
create
Flags
Details
Project directory
Using a custom template
Text variables
build
Flags
Details
start
Flags
Details
stop
Flags
status
Flags
enter
Flags
connect
log
Options
clean
Flags
pack
TGZ
RPM/DEB
Flags
Package contents
Dependencies
Example dependencies file
Pre-install and post-install scripts
Example pre-/post-install script
Customizing systemd unit files
Example
Supported variables
Passing parameters to unit files
Supported parameters
Example
Installation
Starting application instances
Docker
Flags
Result image tag
Starting application instances
Image details
Installing packages required by the application in runtime
Building in Docker
Flags
Build image
Installing packages required for application build
Flags
Details
Building the package
Customizing your build directory
How building works
Stage 1: Cleaning up the application directory
Stage 2. Building the application
Stage 3. Cleaning up the files before packing
Versioning
Path caching
repair
Subcommands
list-topology
remove-instance
set-leader
set-uri
Flags
What does repair actually do?
admin
Flags
Details
Connecting to an instance
Example
Get functions help
Call an admin function
replicasets
Usage
How it works
Subcommands
setup
save
list
join
list-roles
list-vshard-groups
add-roles
remove-roles
set-weight
set-failover-priority
bootstrap-vshard
expel
Examples
Create two replicasets
List the available roles
Set instance roles
Bootstrap vshard
List current replica sets
Expel an instance
failover
Flags
Details
Subcommands
set
Modes
Flags
setup
Example
status
disable
Failover parameters
Eventual failover
Stateful failover
Global flags
Application instance paths
Path configuration file
Directory paths
Run directory
Data directory
Logs directory
Instance configuration file
Pre-build and post-build scripts
cartridge.pre-build
Example
cartridge.post-build
Example
Changelog
Unreleased
[2.8.5] - 2024-01-18
Added
Fixed
Changed
[2.8.4] - 2023-10-31
Changed
[2.8.3] - 2023-09-28
Changed
[2.8.2] - 2023-08-22
Fixed
Deprecated
Added
Changed
[2.8.1] - 2023-07-20
Changed
[2.8.0] - 2023-05-25
Changed
Added
Fixed
Removed
[2.7.9] - 2023-04-06
Changed
Fixed
[2.7.8] - 2023-01-27 - Update to this release is broken
Added
Changed
Fixed
[2.7.7] - 2022-12-09 - Update to this release is broken
Changed
Added
Fixed
Deprecated
[2.7.6] - 2022-08-22
Added
Fixed
Changed
[2.7.5] - 2022-06-28
Added
Changed
Fixed
Deprecated
[2.7.4] - 2022-04-11
Added
Changed
Fixed
[2.7.3] - 2021-10-27
Changed
[2.7.2] - 2021-10-08
Added
Changed
Fixed
[2.7.1] - 2021-08-18
Fixed
[2.7.0] - 2021-08-10
Added
Changed
Fixed
Enhanced in WebUI
[2.6.0] - 2021-04-26
Added
Changed
Fixed
Enhanced in WebUI
[2.5.1] - 2021-03-24
Added
Fixed
[2.5.0] - 2021-03-05
Added
Fixed
Enhanced is WebUI
[2.4.0] - 2020-12-29
Added
Changed
Fixed
Enhanced is WebUI
[2.3.0] - 2020-08-26
Added
Fixed
Enhanced is WebUI
[2.2.0] - 2020-06-23
Added
Changed
Enhanced in WebUI
[2.1.2] - 2020-04-24
Fixed
[2.1.1] - 2020-04-20
Fixed
[2.1.0] - 2020-04-16
Added
Changed
Deprecated
Fixed
Enhanced in WebUI
[2.0.2] - 2020-03-17
Added
Changed
Fixed
Enhanced in WebUI
[2.0.1] - 2020-01-15
Added
Fixed
[2.0.0] - 2019-12-27
Added
Changed
Removed
Fixed
[1.2.0] - 2019-10-21
Added
Changed
Fixed
[1.1.0] - 2019-09-24
Added
Changed
Deprecated
Fixed
[1.0.0] - 2019-08-29
Added
Changed
Removed
[0.10.0] - 2019-08-01
Added
Fixed
[0.9.2] - 2019-07-12
Fixed
[0.9.1] - 2019-07-10
Added
Fixed
[0.9.0] - 2019-07-02
Added
Changed
Fixed
[0.8.0] - 2019-05-20
Added
Changed
Fixed
[0.7.0] - 2019-04-05
Added
Changed
[0.6.3] - 2019-02-08
Fixed
[0.6.2] - 2019-02-07
Fixed
[0.6.1] - 2019-02-05
Fixed
[0.6.0] - 2019-01-30
Fixed
Changed
Added
[0.5.1] - 2018-12-12
Fixed
[0.5.0] - 2018-12-11
Fixed
Changed
Added
[0.4.0] - 2018-11-27
Fixed/Improved
Added
[0.3] - 2018-10-30
Changed
Added
[0.2] - 2018-10-01
Changed
[0.1] - 2018-09-25
Added
Administration
Instance configuration
Instance file
Preloading Lua scripts and modules
tt configuration file
Starting and stopping instances
Starting instances
Basic instance management
Multi-instance applications
Application layout
Identifying instances in code
Managing multi-instance applications
Running Tarantool locally
Using systemd tools
Managing modules
Installing a module
Installing a module from a repository
Installing a module from deb/rpm
Reloading a module
Reloading a module in Lua
Reloading a module in C
Logs
Log rotation
Log formats
Security
Access control
Users
Passwords
Owners and privileges
Roles
Sessions and security
Sharding with vshard
Installation
Configuration
Replica weights
Replica set weights
Rebalancing process
Parallel rebalancing
Replica set lock and bucket pin
Replica set lock and rebalancing
Bucket pin and rebalancing
Bucket ref
Defining spaces
Adding data
Bootstrapping and restarting a storage
Fibers
Garbage collector
Bucket recovery
Failover
Replication administration
Monitoring a replica set
Recovering from a degraded state
Reseeding a replica
Resolving replication conflicts
Solving problems with master-master replication
Replacing the same primary key
Preventing duplicate insert
Server introspection
Using Tarantool as a client
Executing code on an instance
Health checks
Inspect traffic
Profiling performance issues
fiber.info()
Poor man’s profilers
gperftools
perf
jit.p
Daemon supervision
Server signals
Automatic instance restart
Core dumps
Stack traces
Debugger
Disaster recovery
Master-replica
Master-master
Data loss
Backups
Hot backup (memtx)
Hot backup (vinyl/memtx)
Continuous remote backup (memtx)
Continuous backup (memtx)
Upgrades
Standalone instance upgrade
Checking your application
Upgrading a standalone instance
Rollback
Replication cluster upgrade
Checking your application
Pre-upgrade checks
Installing the target version
Upgrading a Tarantool cluster with no downtime
Upgrading routers
Upgrading storages
Post-upgrade checks
Rollback
Rollback before the point of no return
Rollback after the point of no return
Recovering from a failed upgrade
Procedures and checks
Replication check
vshard.storage check
vshard.router check
Switching the master
Live upgrade from Tarantool 1.6 to 1.10
General storage upgrade
1.6 storage upgrade specifics
Upgrade from 1.6 directly to 2.x with downtime
Fix decimal values in vinyl spaces when upgrading to 2.10.1
Fix illegal type names when upgrading to 2.10.4
Check if your snapshots contain illegal type names
Fix an application file
Recover from WALs with mixed transactions when upgrading to 2.11.0
Instances fail to start
Replication doesn’t work
Notes for operating systems
macOS
Gentoo Linux
FreeBSD
Bug reports
Troubleshooting guide
Problem: INSERT/UPDATE-requests result in ER_MEMORY_ISSUE error
Problem: Tarantool generates too heavy CPU load
Problem: Query processing times out
Problem: Replication “lag” and “idle” contain negative values
Problem: Replication “idle” keeps growing, but no related log messages appear
Problem: Replication statistics differ on replicas within a replica set
Problem: Master-master replication is stopped
Problem: Tarantool works much slower than before
Problem: Fiber switch is forbidden in ‘__gc’ metamethod
Problem description
Solution
Monitoring
Getting started with monitoring
Using the metrics module
Collecting HTTP metrics
Creating custom metric
Possible limitations
Installing the metrics module
Installing metrics using the .rockspec file
Installing the metrics module only
Getting started with Cartridge application
Module setup
Additional steps for older versions of the metrics module
Adding metrics to HTTP API commands of the application
Additional settings
Creating a custom health check format
Metrics reference
General metrics
Memory general
Memory allocation
Spaces
Network
Fibers
Operations
Replication
Runtime
Cartridge
LuaJIT metrics
CPU metrics
Vinyl
Disk
Regulator
Transactional activity
Memory
Scheduler
Event loop metrics
Synchro
Election
Memtx
TXN
MVCC
Tuples
API reference
Collectors
counter
gauge
histogram
summary
Labels
Metrics functions
Metrics role API
Collecting HTTP request latency statistics
CPU usage metrics
Examples
Metrics plugins
Available plugins
Prometheus
Usage
Sample settings
Graphite
Usage
JSON
Usage
Plugin-specific API
Creating custom plugins
Grafana dashboard
Prepare a monitoring stack
Collect metrics with server agents
Import the dashboard
Troubleshooting
Alerting
Tarantool metrics
Lua memory
Memtx arena memory
Vinyl engine status
Replication state
Event loop
Cartridge issues
HTTP server statistics
CRUD module statistics
Server-side monitoring
Connectors
C
Example 1
SETUP
CONNECT
MAKE REQUEST
SEND REQUEST
GET REPLY
TEARDOWN
Example 2
Go
Feature comparison
Java
Python
Feature comparison
Community-supported connectors
C#
C++
Connector class
Public methods
Connection class
Public types
Public methods
Nested classes and their methods
Space class
Index class
Node.js
Perl
PHP
Protocol
Packet example
Setting up the server for connector examples
Interpreting function return values
Tarantool Enterprise Edition
Changelog
Versioning policy
598
595
589
579
577
563
557
553
549
545
543
542
541
540
539
538
537
536
535
534
533
532
531
530
529
528
527
526
525
524
523
522
521
520
519
r518
r517
r516
r515
r514
r513
r512
r511
r510
r502
r498
r467
Breaking changes
Functionality added or changed
Enterprise
Core
Vinyl
Lua
Datetime
Build
Bugs fixed
Enterprise
Core
Replication
Lua
Triggers
Datetime
Net.box
r457
r455
Setup
System requirements
Hardware requirements
Software requirements
Network requirements
Package contents
Installation
Developer’s guide
Implementing LDAP authorization in the web interface
Delivering environment-independent applications
Packaging applications
Deploying packaged applications
Deploying archived applications
Upgrading code
Running sample applications
Write-through cache application for PostgreSQL
Write-behind cache application for Oracle
Application requirements
Running write-behind cache
Hello-world application in Docker
Cluster administrator’s guide
Exploring spaces
Upgrading in production
Cluster upgrade
Security hardening guide
Authentication
Access control
Authentication restrictions
Password policy
Authentication protocol
Audit log
Traffic encryption
Configuration
Supported ciphers
Using environment variables
Server-client configuration details
Configuration examples
Recommendations on security hardening
Encrypting traffic
Firewall configuration
Data integrity
Security audit
Encryption of external iproto traffic
Closed iproto ports
HTTPS connection termination
Closed HTTP ports
Restricted access to the administrative console
Limiting the guest user
Authorization in the web UI
Running under the tarantool user
Limiting access to the tarantool user
Keeping two or more snapshots
Enabled write-ahead logging (WAL)
The logging level is INFO or higher
Logging with journald
LDAP authorization
Enabling LDAP authorization
Configuring LDAP authorization
Tuple compression
Enabling compression for a new space
Checking which fields are compressed
Enabling compression for existing spaces
Tuple compression performance
Module compress
Submodule compress.zlib
Overview
API Reference
compress.zlib.new()
zlib_compressor
zlib_opts
Submodule compress.zstd
Overview
API Reference
compress.zstd.new()
zstd_compressor
zstd_opts
Submodule compress.lz4
Overview
API Reference
compress.lz4.new()
lz4_compressor
lz4_opts
WAL extensions
Configuration
Example
Read views
Limitations
Working with read views
Creating a read view
Querying data
Closing a read view
Example
Read views: Lua API
Read views: C API
Data types
Creating and destroying read views
Spaces and indexes
Iteration and lookup
Space format
Flight recorder
Enabling the flight recorder
Configuration
Logs
Metrics
Requests
Audit module
Audit log events
Event groups
Structure of audit log events
Enable the Tarantool audit log
Write to a file
Send to a pipe
Send to syslog
Select events to write to audit log
Customize your filters
Filter based on a specific event
Filter based on a specific group
Filter based on multiple groups
Filter based on a group and a specific event
Example
Configure a blocking mode
Configure the format of audit log events
Plain text
JSON format
CSV format
Create user-defined events
Example
Example
Use read commands
Tips
How many events can be recorded?
How often should audit logs be reviewed?
How long should audit logs be stored?
What is the best way to process audit logs?
Upgrading space schema
Space upgrade overview
How to apply space upgrade
How the upgrade works
User API
Upgrade modes
States
Interaction with alter
Interaction with recovery
Interaction with replication
Usage example
Migration from Tarantool Cartridge
Service build pipeline
Update the pipeline
Update the service
That’s it!
Monitoring system metrics
Deprecated features
Controlling the cluster via API
Setting up geo redundancy
Orchestrator API reference
Configuring the zones
Configuring the zone weights
Configuring registry
Routers API
Configuring replica sets
Setting up configuration versions
Configuring sharding
Resetting cluster configuration
Modules
Open source modules
Closed source modules
Installing and using modules
Reference
Configuration reference
Command options
URI
Specifying several URIs
Initialization file
Configuration parameters
Methods of setting and priorities
Setting via environment variables
Reference
Basic parameters
Configuring the storage
Checkpoint daemon
Binary logging and snapshots
Hot standby
Replication
Networking
Logging
Logging example
Feedback
Deprecated parameters
Tooling
Interactive console
Interactive console input and output
Keyboard shortcuts
tt CLI utility
Installation
Using Linux package managers
Using Homebrew on macOS
Building from sources
Enabling shell completion
Configuration
Configuration file
modules section
app section
repo section
ee section
templates section
Launch modes
Default launch
System launch
Local launch
Global options
Commands
binaries
Examples
build
Options
Details
Pre-build and post-build scripts
Examples
cartridge
admin
Options
Examples
bench
Options
failover
failover set
failover setup
failover status
failover disable
Options
repair
repair list-topology
repair remove-instance
repair set-advertise-uri
repair set-leader
Options
replicasets
replicasets setup
replicasets save
replicasets list
replicasets join
replicasets list-roles
replicasets list-vshard-groups
replicasets add-roles
replicasets remove-roles
replicasets set-weight
replicasets set-failover-priority
replicasets bootstrap-vshard
replicasets expel
cat
Options
Examples
cfg
Commands
Examples
check
Details
Examples
Single instance
Multiple instances
clean
Options
Examples
Single instance
Multiple instances
completion
Examples
connect
Options
Details
Examples
coredump
Commands
pack
unpack
inspect
Examples
create
Options
Details
Template structure
Variables
Application directory
Examples
crud
export
Limitations
Exporting with default settings
Exporting headers
Exporting compound data
Options
help
Examples
import
Limitations
Matching of input and space fields
Automatic matching
Manual matching
Handling duplicate primary key errors
Handling parsing errors
Options
init
Details
Example
install
Options
Details
Example
instances
Example
logrotate
Examples
pack
Options
play
Options
Details
Examples
restart
Options
Examples
Single instance
Multiple instances
rocks
Options
Commands
Examples
run
Options
Details
Examples
search
Options
Example
start
Details
Examples
Single instance
Multiple instances
status
Examples
Single instance
Multiple instances
stop
Examples
Single instance
Multiple instances
uninstall
Example
version
Extending the tt functionality
Module description and help
Location
Overloading built-in commands
tt environments
Multi-instance applications
Replacement for tarantooctl and Cartridge CLI
tarantoolctl utility (deprecated)
Command format
Commands for managing Tarantool instances
Commands for managing checkpoint files
Commands for managing Tarantool modules
tarantoolctl configuration file
Log rotation in tarantooctl
Using tarantooctl on FreeBSD
Starting and stopping instances
Running Tarantool locally
Migration from tarantoolctl to tt
System-wide configuration
Local configuration
Commands difference
LuaJIT memory profiler
Working with the profiler
Collecting binary profile
Parsing binary profile and generating profiling report
FAQ
Profiling report analysis example
The heap summary and the –leak-only option
LuaJIT getmetrics
misc.getmetrics()
getmetrics table values
getmetrics C API
Example with gc_strnum, strhash_miss, and strhash_hit
Example with gc_allocated and gc_freed
Example with gc_allocated and a space optimization
gc_steps_atomic and gc_steps_propagate
Example with jit_trace_num and jit_trace_abort
Example with jit_snap_restore and a performance unoptimization
SQL reference
What Tarantool’s SQL product delivers
Differences from other products
What Tarantool’s SQL manual delivers
SQL user guide
Getting Started
Supported Syntax
Concepts
Tokens
Literals
Identifiers
Reserved words
Operands
Operand data types
Operators
Special situations
Expressions
ARRAY expressions
MAP expressions
ARRAY index expression
MAP index expression
Comparing and ordering
Statements
List of legal statements
Data Type Conversion
Implicit string/numeric cast
SQL statements and clauses
Statements that change data definition
ALTER TABLE
CREATE TABLE
Column definition
Column definition – data type
Column definition – the rules for the SCALAR data type
Column definition – relation to NoSQL
Column definition – column-constraint or default clause
Column definition – examples
Table constraint definition
Table constraint definition for foreign keys
DROP TABLE
CREATE VIEW
DROP VIEW
CREATE INDEX
DROP INDEX
CREATE TRIGGER
Trigger extra clauses
Trigger activation
INSTEAD OF triggers
DROP TRIGGER
Statements that change data
INSERT
UPDATE
DELETE
REPLACE
TRUNCATE
SET
Statements that retrieve data
SELECT
Select list
FROM clause
WHERE clause
GROUP BY clause
Aggregate functions
HAVING clause
ORDER BY clause
LIMIT clause
Subquery
WITH clause
WITH RECURSIVE
UNION, EXCEPT, and INTERSECT clauses
INDEXED BY clause
VALUES
PRAGMA
EXPLAIN
Statements for transactions
START TRANSACTION
COMMIT
SAVEPOINT
RELEASE SAVEPOINT
ROLLBACK
Functions
Explanation of functions
List of functions
ABS
CAST
CHAR
COALESCE
DATE_PART
GREATEST
HEX
IFNULL
LEAST
LENGTH
LIKELIHOOD
LIKELY
LOWER
NOW
NULLIF
POSITION
PRINTF
QUOTE
RAISE
RANDOM
RANDOMBLOB
REPLACE
ROUND
ROW_COUNT
SOUNDEX
SUBSTR
TRIM
TYPEOF
UNICODE
UNLIKELY
UPPER
UUID
VERSION
ZEROBLOB
COLLATE clause
Default function parameters
SQL PLUS LUA – Adding Tarantool/NoSQL to Tarantool/SQL
Lua Requests
System Tables
Calling Lua routines from SQL
Executing Lua chunks
Example Sessions
Example Session – Create, Insert, Select
Example Session – Get a List of Columns
Example Session – Million-Row Insert
Lua functions to make views of metadata
_TABLES view
_COLUMNS view
_VIEWS view
_TRIGGERS view
_REFERENTIAL_CONSTRAINTS view
_CHECK_CONSTRAINTS view
_TABLE_CONSTRAINTS view
SQL features
E011, Numeric data types
E021, Character string types
E031, Identifiers
E051, Basic query specification
E061, Basic predicates and search conditions
E071, Basic query expressions
E081, Basic privileges
E091, Set functions
E101, Basic data manipulation
E111, Single row SELECT statement
E121, Basic cursor support
E131, Null value support
E141, Basic integrity constraints
E151, Transaction support
E152, Basic SET TRANSACTION statement
E*, Other
F021, Basic information schema
F031, Basic schema manipulation
F041, Basic joined table
F051, Basic date and time
F081, UNION and EXCEPT in views
F131, Grouped operations
F181, Multiple module support
F201, CAST function
F221, Explicit defaults
F261, CASE expression
F311, Schema definition statement
F*, Other
S011, Distinct types
T321, Basic SQL-invoked routines
T*, Other
Built-in modules reference
Module box
Submodule box.backup
box.backup.start()
box.backup.stop()
Submodule box.cfg
Submodule box.ctl
box.ctl.wait_ro()
box.ctl.wait_rw()
box.ctl.on_schema_init()
box.ctl.on_shutdown()
box.ctl.on_recovery_state()
box.ctl.on_election()
box.ctl.set_on_shutdown_timeout()
box.ctl.is_recovery_finished()
box.ctl.promote()
box.ctl.demote()
Submodule box.error
Creating an error
Raising an error
Custom error
box.error({ reason = string[, …] })
box.error(type, reason[, …])
Tarantool error
Getting the last error
Obtaining error details
Setting the last error
Error lists
Clearing errors
API Reference
box.error()
box.error.last()
box.error.clear()
box.error.new()
box.error.set()
error_object
Submodule box.index
Examples for
box.index
Example showing use of the box functions
Example showing a user-defined iterator
Example showing submodule
box.index
with index type = RTREE for spatial searches
space_object:create_index()
index_opts
key_part
Examples
Creating an index using field names and numbers
Creating an index using the path option for map fields (JSON-path indexes)
Creating a multikey index using the path option with [*]
Creating a functional index
index_object.unique
index_object.type
index_object:parts
index_object:pairs()
index_object:select()
index_object:get()
index_object:min()
index_object:max()
index_object:random()
index_object:count()
index_object:update()
index_object:delete()
index_object:alter()
index_object:drop()
index_object:rename()
index_object:bsize()
index_object:stat()
index_object:compact()
index_object:tuple_pos()
index_object extensions
Submodule box.info
box.info()
box.info.gc()
box.info.memory()
box.info.replication_anon()
box.info.replication
box.info.listen
box.info.election
box.info.synchro
box.info.ro_reason
box.info.schema_version
Submodule box.iproto
IPROTO constants
IPROTO features
Handling the unknown IPROTO request types
API reference
box.iproto.key
box.iproto.type
box.iproto.flag
box.iproto.ballot_key
box.iproto.metadata_key
box.iproto.raft
box.iproto.protocol_version
box.iproto.protocol_features
box.iproto.feature
box.iproto.override()
box.iproto.send()
Submodule box.read_view
box.read_view.list()
Submodule box.schema
box.schema.space.create()
space_opts
box.schema.upgrade()
box.schema.downgrade()
box.schema.downgrade_versions()
box.schema.downgrade_issues()
box.schema.user.create()
box.schema.user.drop()
box.schema.user.exists()
box.schema.user.grant()
box.schema.user.revoke()
box.schema.user.password()
box.schema.user.passwd()
box.schema.user.info()
box.schema.role.create()
box.schema.role.drop()
box.schema.role.exists()
box.schema.role.grant()
box.schema.role.revoke()
box.schema.role.info()
box.schema.func.create()
function_options
box.schema.func.drop()
box.schema.func.exists()
box.schema.func.reload()
Sequences
box.schema.sequence.create()
sequence_object:next()
sequence_object:alter()
sequence_object:reset()
sequence_object:set()
sequence_object:current()
sequence_object:drop()
specifying a sequence in create_index()
Submodule box.session
box.session.id()
box.session.exists()
box.session.peer()
box.session.sync()
box.session.user()
box.session.type()
box.session.su()
box.session.uid()
box.session.euid()
box.session.storage
box.session.on_connect()
box.session.on_disconnect()
box.session.on_auth()
box.session.on_access_denied()
box.session.push()
Submodule box.slab
box.runtime.info()
box.slab.info()
box.slab.stats()
Submodule box.space
box.schema.space.create()
space_opts
space_object:alter()
space_object:auto_increment()
space_object:bsize()
space_object:count()
space_object:create_index()
index_opts
key_part
Examples
Creating an index using field names and numbers
Creating an index using the path option for map fields (JSON-path indexes)
Creating a multikey index using the path option with [*]
Creating a functional index
space_object:delete()
space_object:drop()
space_object:format()
space_object:frommap()
space_object:get()
space_object:insert()
space_object:len()
space_object:on_replace()
space_object:before_replace()
space_object:pairs()
space_object:put()
space_object:rename()
space_object:replace() / put()
space_object:run_triggers()
space_object:select()
space_object:truncate()
space_object:update()
space_object:upsert()
space_object extensions
box.space.create_check_constraint()
space_object:enabled
space_object:field_count
space_object.id
space_object.index
box.space._cluster
box.space._func
box.space._index
box.space._vindex
box.space._priv
box.space._vpriv
box.space._schema
box.space._sequence
box.space._sequence_data
box.space._space
box.space._vspace
box.space._space_sequence
box.space._vspace_sequence
box.space._user
box.space._vuser
box.space._ck_constraint
box.space._collation
box.space._vcollation
System space views
box.space._session_settings
Submodule box.stat
box.stat()
box.stat.net()
box.stat.vinyl()
box.stat.vinyl().regulator
box.stat.vinyl().disk
box.stat.vinyl().memory
box.stat.vinyl().tx
box.stat.vinyl().scheduler
box.stat.reset()
Submodule box.tuple
box.tuple.new()
box.tuple.is()
#tuple_object
box.tuple.bsize()
tuple_object[field-number]
tuple_object[field-name]
tuple_object[field-path]
tuple_object:find(), tuple_object:findall()
tuple_object:next()
tuple_object:pairs(), tuple_object:ipairs()
tuple_object:totable()
tuple_object:tomap()
tuple_object:transform()
tuple_object:unpack()
tuple_object:update()
tuple_object:upsert()
How to convert tuples to/from Lua tables
Functions for transaction management
box.begin()
box.commit()
box.rollback()
box.savepoint()
box.rollback_to_savepoint()
box.atomic()
box.on_commit()
box.on_rollback()
box.is_in_txn()
Functions for SQL
box.execute()
box.prepare()
object prepared_table
Event watchers
How a watcher works
box.watch()
box.broadcast()
System events
box.id
box.status
box.election
box.schema
box.shutdown
Usage example
Function box.once
Function box.snapshot
Constant box.NULL
Using box.NULL
Distinction of nil and box.NULL
Module buffer
Module checks
Loading checks
Number of arguments to check
One argument
Multiple arguments
Variable number of arguments
String type qualifier
Supported types
Lua types
Tarantool types
Custom function
Metatable type
Union types
Optional types
Skipping argument checking
Table type qualifier
API Reference
checks()
checkers
Module clock
Overview
Index
Module compat
Basic usage
Options
JSON encode escape forward slash
Old and new behavior
Known compatibility issues
Detecting issues in your codebase
Lua-YAML prettier multiline output
Old and new behavior
Known compatibility issues
Detecting issues in your codebase
Fiber channel close mode
Old and new behavior
Known compatibility issues
Detecting issues in your codebase
Default value for replication_sync_timeout
Old and new behavior
Known compatibility issues
Detecting issues in your codebase
Default value for sql_seq_scan session setting
Old and new behavior
Known compatibility issues
Detecting issues in your codebase
Default value for max fiber slice
Old and new behavior
Known compatibility issues
Detecting issues in your codebase
Tutorial: Module compat
Listing options
Listing options details
Changing option value
Restoring defaults
Getting compat setup with compat.dump()
Setting all options to a specific value with compat.dump()
Adding an option during runtime
Module console
Overview
Index
Module crypto
Overview
Index
Incremental methods in the crypto module
Getting the same results from digest and crypto modules
Module csv
Overview
Index
Module datetime
datetime.new()
datetime_object
datetime.interval.new()
interval_object
Interval arithmetic
Module decimal
Module digest
Overview
Index
Incremental methods in the
digest
module
Example
Module errno
Overview
Index
Module fiber
Overview
Index
Fibers
Create a fiber
Yield control
Cancel a fiber
Limit execution time
Information about fibers
Garbage collection
API reference
Example of yield failure
Channels
Example
Condition variables
Example
Module fio
Overview
Index
Common pathname manipulations
Directory or file existence and type checks
Common file manipulations
FIO constants
Module fun
Module http
Creating a client
Making requests
HTTP method
Query parameters
Headers
Cookies
Body
Serialization
Form parameters
Streaming upload
Receiving responses
Status code
Headers
Cookies
Response body
Deserialization
Decompressing
Streaming download
Redirects
API Reference
http.client.new()
client_options
client_object
request_options
response_object
io_object
Module iconv
Overview
Index
Module jit
Overview
Index
Module json
Overview
Index
Module key_def
Module log
Overview
Index
Module merger
Overview
Index
Module msgpack
Overview
API Reference
Members
Related objects
msgpack_object
iterator_object
Module net.box
Overview
Index
Triggers
Module os
Overview
Index
Module pickle
Index
Module popen
Overview
Index
popen handle methods
Module socket
Overview
Index
LuaSocket wrapper functions
Recommended size
Examples
Use of a TCP socket over the Internet
Use of a socket with LuaSocket wrapper functions
Use of a UDP socket on localhost
Use tcp_server to accept file contents sent with socat
Use tcp_server with handler and prepare
Module strict
Module string
Overview
Index
Module swim
Overview
SWIM internals
Module table
Module tap
Overview
API Reference
Example
Module tarantool
Module uuid
Overview
API Reference
Example
Module utf8
Overview
Module uri
Overview
API Reference
Functions
Properties
Related objects
uri_components
uri_encoding_opts
Module xlog
Module yaml
Overview
Index
Example
Other package components
Database error codes
Handling errors
Debug facilities
Overview
Index
JSON paths
Overview
Rocks reference
Tarantool Cartridge
Overview
About Tarantool Cartridge
Getting started
Prerequisites
Create your first application
Next steps
Contributing
Developer’s guide
Introduction
Installing Tarantool Cartridge
Creating a project
Cluster roles
Built-in roles
Custom roles
Defining role dependencies
Using multiple vshard storage groups
Role’s life cycle (and the order of function execution)
Configuring custom roles
Custom configuration example
Applying custom role’s configuration
Using the built-in HTTP server
Implementing authorization in the web interface
Application versioning
Using .cartridge.ignore files
Failover architecture
Instance configuration upon a leader change
Leader appointment rules
Disabled mode
Eventual failover
Stateful failover
Case: external provider outage
Case: coordinator outage
Raft failover (beta)
Manual leader promotion
Unelectable nodes
Fencing
Failover configuration
Lua API
GraphQL API
Stateboard configuration
Fine-tuning failover behavior
Configuring instances
Configuration basics
Internal representation of clusterwide configuration
Two-phase commit
Managing role-specific data
HTTP API
GraphQL API
Lua API
Luatest helpers
Deploying an application
Deploying as an RPM or DEB package
Entities created during installation
Deploying as a tar+gz archive
Deploying from sources
Starting/stopping instances
Start/stop using tarantool
Start/stop using cartridge CLI
Start/stop using systemctl
Error handling guidelines
Error objects in Lua
GraphQL
HTTP
Cluster instance lifecycle
Unconfigured
ConfigFound
ConfigLoaded
InitError
BootstrappingBox
RecoveringSnapshot
BootError
ConnectingFullmesh
BoxConfigured
ConfiguringRoles
RolesConfigured
OperationError
Administrator’s guide
Versions compatibility and known issues about upgrading
Deploying the cluster
Bootstrapping from an existing cluster (optional)
Cluster setup
Updating the configuration
Managing the cluster
Changing the cluster topology
Data rebalancing
Deactivating replica sets
Expelling instances
Enabling automatic failover
Failover disabled (default)
Eventual failover (not recommended for production)
Stateful failover
Raft failover (beta)
Changing failover priority list
Managing users
Resolving conflicts
Monitoring a cluster via CLI
Connecting to nodes via CLI
Monitoring storages
Output example
Status list
Potential issues
Monitoring routers
Output example
Status list
Potential issues
Issues and suggestions
Instances general info
Changing cluster cookie
Fixing broken instance configuration
Upgrading schema
Disaster recovery
Backups
Troubleshooting
Problems with replica
Editing clusterwide configuration in WebUI returns an error
An instance is stuck in the ConnectingFullmesh state upon restart
I want to run an instance with a new advertise_uri
The cluster is doomed, I’ve edited the config manually. How do I reload it?
Repairing cluster using Cartridge CLI repair command
Changing instance advertise URI
Changing replicaset leader
Removing instance from the cluster
Broken failover promote in Cartridge 2.7.7/2.7.8
A ‘Connection refused’ error in unconfigured instance since 2.7.4
‘Address already in use’ errors
Cartridge API
Module
cartridge
Functions
cfg (opts, box_opts)
reload_roles ()
is_healthy ()
Tables
VshardGroup
Global functions
_G.cartridge_get_schema ()
_G.cartridge_set_schema (schema)
Clusterwide DDL schema
get_schema ()
set_schema (schema)
Cluster administration
ServerInfo
ReplicasetInfo
admin_get_servers ([uuid])
admin_get_replicasets ([uuid])
admin_get_uris (filter)
admin_probe_server (uri)
admin_enable_servers (uuids)
admin_disable_servers (uuids)
admin_restart_replication (…)
admin_bootstrap_vshard ()
Automatic failover management
FailoverParams
failover_get_params ()
failover_set_params (opts)
failover_promote (replicaset_uuid[, opts])
admin_get_failover ()
admin_enable_failover ()
admin_disable_failover ()
Managing cluster topology
admin_edit_topology (args)
EditReplicasetParams
EditServerParams
JoinServerParams
Clusterwide configuration
config_get_readonly ([section_name])
config_get_deepcopy ([section_name])
config_patch_clusterwide (patch)
config_force_reapply (uuids)
Inter-role interaction
service_get (module_name)
service_set (module_name, instance)
Cross-instance calls
rpc_call (role_name, fn_name[, args[, opts]])
Usage:
rpc_get_candidates (role_name[, opts])
Authentication and authorization
http_authorize_request (request)
http_render_response (response)
http_get_username ()
Deprecated functions
admin_edit_replicaset (args)
admin_edit_server (args)
admin_join_server (args)
admin_expel_server (uuid)
Module
cartridge.auth
Local Functions
set_enabled (enabled)
get_enabled ()
init ()
set_callbacks (callbacks)
get_callbacks ()
Configuration
set_params (opts)
get_params ()
AuthParams
Authorizarion
set_lsid_cookie (user)
get_session_username ()
authorize_request (request)
render_response (response)
User management
UserInfo
add_user (username, password, fullname, email)
get_user (username)
edit_user (username, password, fullname, email)
list_users ()
remove_user (username)
Module
cartridge.roles
Functions
reload ()
forbid_reload ()
allow_reload ()
is_reload_forbidden ()
on_apply_config (table, string)
Local Functions
cfg (module_names)
get_all_roles ()
get_known_roles ()
get_enabled_roles_without_deps ()
get_enabled_roles (roles)
get_role_dependencies (role_name)
validate_config (conf_new, conf_old)
apply_config (conf, opts, is_master)
stop ()
Module
cartridge.issues
Tables
limits
Local Functions
validate_limits (limits)
set_limits (limits)
Module
cartridge.argparse
Functions
parse ()
get_opts (filter)
get_box_opts ()
get_cluster_opts ()
Tables
cluster_opts
box_opts
Module
cartridge.twophase
Functions
twophase_commit (opts)
Usage:
patch_clusterwide (patch)
force_reapply (uuids)
get_schema ()
set_schema (schema)
on_patch (trigger_new, trigger_old)
Usage:
Local Functions
wait_config_release (timeout)
prepare_2pc (upload_id)
commit_2pc ()
abort_2pc ()
Module
cartridge.failover
Functions
get_coordinator ()
Local Functions
schedule_clear ()
schedule_add ()
_get_appointments_disabled_mode ()
_get_appointments_eventual_mode ()
_get_appointments_stateful_mode ()
accept_appointments (replicaset_uuid)
fencing_check ()
check_suppressing_lock ()
failover_loop ()
cfg ()
get_active_leaders ()
is_leader ()
is_rw ()
is_vclockkeeper ()
is_paused ()
failover_suppressed ()
is_synchro_mode_enabled ()
consistency_needed ()
mode ()
force_inconsistency (replicaset_uuid)
wait_consistency (replicaset_uuid)
set_options ()
Module
cartridge.topology
Functions
cluster_is_healthy ()
Local Functions
get_leaders_order (topology_cfg, replicaset_uuid, new_order, opts)
validate (topology_new, topology_old)
find_server_by_uri (topology_cfg, uri)
refine_servers_uri (topology_cfg)
probe_missing_members (servers)
get_fullmesh_replication (topology_cfg, replicaset_uuid)
Module
cartridge.clusterwide-config
Usage:
Functions
new ([data])
save (clusterwide_config, filename)
load (filename)
Local Functions
load_from_file (filename)
load_from_dir (path)
remove (string)
Module
cartridge.rpc
Functions
get_candidates (role_name[, opts])
call (role_name, fn_name[, args[, opts]])
Usage:
Local Functions
get_connection (role_name[, opts])
Module
cartridge.tar
Functions
pack (files)
unpack (tar)
Module
cartridge.pool
Functions
connect (uri[, opts])
Local Functions
format_uri (uri)
map_call (fn_name[, args[, opts]])
Module
cartridge.upload
Functions
upload (data, uri_list)
Tables
inbox
Module
cartridge.confapplier
Functions
get_active_config ()
get_readonly ([section_name])
get_deepcopy ([section_name])
Local Functions
set_state (state[, err])
wish_state (state[, timeout])
validate_config (clusterwide_config_new)
restart_replication ()
apply_config (clusterwide_config)
Module
cartridge.remote-control
Local Functions
bind (host, port)
accept (credentials)
unbind ()
drop_connections ()
suspend ()
suspend ()
Module
cartridge.service-registry
Functions
set (module_name, instance)
get (module_name)
list ()
Module
custom-role
Functions
init (opts)
stop (opts)
validate_config (conf_new, conf_old)
apply_config (conf, opts)
get_issues ()
Fields
role_name
hidden
permanent
Module
cartridge.lua-api.stat
Local Functions
get_stat (uri)
Module
cartridge.lua-api.boxinfo
Local Functions
get_info (uri)
Module
cartridge.lua-api.get-topology
Tables
ReplicasetInfo
ServerInfo
Local Functions
get_topology ()
get_servers (filter)
get_uris (filter)
Module
cartridge.lua-api.edit-topology
Editing topology
edit_topology (args)
EditReplicasetParams
JoinServerParams
EditServerParams
Module
cartridge.lua-api.topology
Functions
get_servers ([uuid])
get_replicasets ([uuid])
probe_server (uri)
enable_servers (uuids)
disable_servers (uuids)
restart_replication (…)
set_electable_servers (uuids)
set_unelectable_servers (uuids)
Local Functions
get_self ()
Module
cartridge.lua-api.failover
Functions
get_params ()
set_params (opts)
get_failover_enabled ()
set_failover_enabled (enabled)
promote (replicaset_uuid[, opts])
pause ()
resume ()
Tables
FailoverParams
Module
cartridge.lua-api.vshard
Functions
get_config ()
bootstrap_vshard ()
Module
cartridge.lua-api.deprecated
Deprecated functions
join_server (args)
edit_server (args)
expel_server (uuid)
edit_replicaset (args)
Module
cartridge.lua-api.compression
Functions
get_cluster_compression_info ()
__cartridgeGetStorageCompressionInfo ()
Local Functions
create_tmp_space (space_name, space_type, orig_index, orig_format, field_format)
Class
cartridge.test-helpers.cluster
Functions
Cluster:new (object)
Cluster:server (alias)
Cluster:server_by_role (role_name)
Cluster:servers_by_role (role_name)
Cluster:apply_topology ()
Cluster:start ()
Cluster:stop ()
Cluster:join_server (server)
Cluster:wait_until_healthy (server)
Cluster:upload_config (config, opts)
Cluster:download_config ()
Cluster:retrying (config, fn[, …])
Tables
cartridge.test-helpers.cluster.replicaset_config
Local Functions
cartridge.test-helpers.cluster.iter_servers_by_role (cluster, role_name)
Class
cartridge.test-helpers.server
Functions
Server:build_env ()
Server:start ()
Server:stop ()
Server:graphql (request, http_options)
Server:join_cluster (main_server[, options])
Server:setup_replicaset (config)
Server:upload_config (config, opts)
Server:download_config ()
Methods
cartridge.test-helpers.server:new (object)
Class
cartridge.test-helpers.etcd
Functions
Etcd:new (object)
Etcd:start ()
Etcd:stop ()
Class
cartridge.test-helpers.stateboard
Methods
cartridge.test-helpers.stateboard:new (object)
Cartridge CLI
Cartridge application lifecycle
Migration from Cartridge CLI to tt
Commands difference
Installation
Enable shell completion
Linux
OS X
Supported Cartridge CLI commands
create
Flags
Details
Project directory
Using a custom template
Text variables
build
Flags
Details
start
Flags
Details
stop
Flags
status
Flags
enter
Flags
connect
log
Options
clean
Flags
pack
TGZ
RPM/DEB
Flags
Package contents
Dependencies
Example dependencies file
Pre-install and post-install scripts
Example pre-/post-install script
Customizing systemd unit files
Example
Supported variables
Passing parameters to unit files
Supported parameters
Example
Installation
Starting application instances
Docker
Flags
Result image tag
Starting application instances
Image details
Installing packages required by the application in runtime
Building in Docker
Flags
Build image
Installing packages required for application build
Flags
Details
Building the package
Customizing your build directory
How building works
Stage 1: Cleaning up the application directory
Stage 2. Building the application
Stage 3. Cleaning up the files before packing
Versioning
Path caching
repair
Subcommands
list-topology
remove-instance
set-leader
set-uri
Flags
What does repair actually do?
admin
Flags
Details
Connecting to an instance
Example
Get functions help
Call an admin function
replicasets
Usage
How it works
Subcommands
setup
save
list
join
list-roles
list-vshard-groups
add-roles
remove-roles
set-weight
set-failover-priority
bootstrap-vshard
expel
Examples
Create two replicasets
List the available roles
Set instance roles
Bootstrap vshard
List current replica sets
Expel an instance
failover
Flags
Details
Subcommands
set
Modes
Flags
setup
Example
status
disable
Failover parameters
Eventual failover
Stateful failover
Global flags
Application instance paths
Path configuration file
Directory paths
Run directory
Data directory
Logs directory
Instance configuration file
Pre-build and post-build scripts
cartridge.pre-build
Example
cartridge.post-build
Example
Changelog
Unreleased
[2.8.5] - 2024-01-18
Added
Fixed
Changed
[2.8.4] - 2023-10-31
Changed
[2.8.3] - 2023-09-28
Changed
[2.8.2] - 2023-08-22
Fixed
Deprecated
Added
Changed
[2.8.1] - 2023-07-20
Changed
[2.8.0] - 2023-05-25
Changed
Added
Fixed
Removed
[2.7.9] - 2023-04-06
Changed
Fixed
[2.7.8] - 2023-01-27 - Update to this release is broken
Added
Changed
Fixed
[2.7.7] - 2022-12-09 - Update to this release is broken
Changed
Added
Fixed
Deprecated
[2.7.6] - 2022-08-22
Added
Fixed
Changed
[2.7.5] - 2022-06-28
Added
Changed
Fixed
Deprecated
[2.7.4] - 2022-04-11
Added
Changed
Fixed
[2.7.3] - 2021-10-27
Changed
[2.7.2] - 2021-10-08
Added
Changed
Fixed
[2.7.1] - 2021-08-18
Fixed
[2.7.0] - 2021-08-10
Added
Changed
Fixed
Enhanced in WebUI
[2.6.0] - 2021-04-26
Added
Changed
Fixed
Enhanced in WebUI
[2.5.1] - 2021-03-24
Added
Fixed
[2.5.0] - 2021-03-05
Added
Fixed
Enhanced is WebUI
[2.4.0] - 2020-12-29
Added
Changed
Fixed
Enhanced is WebUI
[2.3.0] - 2020-08-26
Added
Fixed
Enhanced is WebUI
[2.2.0] - 2020-06-23
Added
Changed
Enhanced in WebUI
[2.1.2] - 2020-04-24
Fixed
[2.1.1] - 2020-04-20
Fixed
[2.1.0] - 2020-04-16
Added
Changed
Deprecated
Fixed
Enhanced in WebUI
[2.0.2] - 2020-03-17
Added
Changed
Fixed
Enhanced in WebUI
[2.0.1] - 2020-01-15
Added
Fixed
[2.0.0] - 2019-12-27
Added
Changed
Removed
Fixed
[1.2.0] - 2019-10-21
Added
Changed
Fixed
[1.1.0] - 2019-09-24
Added
Changed
Deprecated
Fixed
[1.0.0] - 2019-08-29
Added
Changed
Removed
[0.10.0] - 2019-08-01
Added
Fixed
[0.9.2] - 2019-07-12
Fixed
[0.9.1] - 2019-07-10
Added
Fixed
[0.9.0] - 2019-07-02
Added
Changed
Fixed
[0.8.0] - 2019-05-20
Added
Changed
Fixed
[0.7.0] - 2019-04-05
Added
Changed
[0.6.3] - 2019-02-08
Fixed
[0.6.2] - 2019-02-07
Fixed
[0.6.1] - 2019-02-05
Fixed
[0.6.0] - 2019-01-30
Fixed
Changed
Added
[0.5.1] - 2018-12-12
Fixed
[0.5.0] - 2018-12-11
Fixed
Changed
Added
[0.4.0] - 2018-11-27
Fixed/Improved
Added
[0.3] - 2018-10-30
Changed
Added
[0.2] - 2018-10-01
Changed
[0.1] - 2018-09-25
Added
Module membership
Member data structure
API reference
Module metrics
Getting started with monitoring
Using the metrics module
Collecting HTTP metrics
Creating custom metric
Possible limitations
Installing the metrics module
Installing metrics using the .rockspec file
Installing the metrics module only
Getting started with Cartridge application
Module setup
Additional steps for older versions of the metrics module
Adding metrics to HTTP API commands of the application
Additional settings
Creating a custom health check format
Metrics reference
General metrics
Memory general
Memory allocation
Spaces
Network
Fibers
Operations
Replication
Runtime
Cartridge
LuaJIT metrics
CPU metrics
Vinyl
Disk
Regulator
Transactional activity
Memory
Scheduler
Event loop metrics
Synchro
Election
Memtx
TXN
MVCC
Tuples
API reference
Collectors
counter
gauge
histogram
summary
Labels
Metrics functions
Metrics role API
Collecting HTTP request latency statistics
CPU usage metrics
Examples
Metrics plugins
Available plugins
Prometheus
Usage
Sample settings
Graphite
Usage
JSON
Usage
Plugin-specific API
Creating custom plugins
Grafana dashboard
Prepare a monitoring stack
Collect metrics with server agents
Import the dashboard
Troubleshooting
Alerting
Tarantool metrics
Lua memory
Memtx arena memory
Vinyl engine status
Replication state
Event loop
Cartridge issues
HTTP server statistics
CRUD module statistics
Server-side monitoring
Module luatest
Overview
Requirements
Installation
Usage
Tests order
List of luatest functions
XFail
Capturing output
Tests repeating
Parametrization
Test helpers
luacov integration
Development
Contributing
License
API
Module
luatest.helpers
Functions
matrix (parameters_values)
retrying (config, fn, …)
uuid (a, …)
Class
luatest.group
Instance methods
Group.mt.after_all (fn)
Group.mt.after_each (fn)
Group.mt.before_all (fn)
Group.mt.before_each (fn)
Group.mt:initialize ([name])
Class
luatest.http_response
Instance getter methods
HTTPResponse.getters
HTTPResponse.getters:json ()
Usage:
HTTPResponse.mt:is_successful ()
Class
luatest.runner
Functions
Runner.is_test_name (s)
Runner.run ([args=_G.args[, options]])
Runner.split_test_method_name (someName)
Runner:expand_group (group)
Class
luatest.server
Functions
Server.build_listen_uri (server_alias[, extra_path])
Server:assert_follows_upstream (server_id)
Server:call (fn_name[, args[, options]])
Server:connect_net_box ()
Server:copy_datadir ()
Server:drop ()
Server:eval (code[, args[, options]])
Server:exec (fn[, args[, options]])
Usage:
Server:get_box_cfg ()
Server:get_downstream_vclock (server_id)
Server:get_election_term ()
Server:get_instance_id ()
Server:get_instance_uuid ()
Server:get_synchro_queue_term ()
Server:get_vclock ()
Server:grep_log (pattern[, bytes_num[, opts]])
Server:http_request (method, path[, options])
Server:make_socketdir ()
Server:make_workdir ()
Server:new ([object[, extra]])
Server:play_wal_until_synchro_queue_is_busy ()
Server:restart ([params[, opts]])
Server:start ([opts])
Server:stop ()
Server:update_box_cfg (cfg)
Server:wait_for_downstream_to (server)
Server:wait_for_election_leader ()
Server:wait_for_election_state (state)
Server:wait_for_election_term (term)
Server:wait_for_synchro_queue_term (term)
Server:wait_for_vclock (vclock)
Server:wait_for_vclock_of (other_server)
Server:wait_until_election_leader_found ()
Server:wait_until_ready ()
Class
luatest.replica_set
Functions
ReplicaSet:add_server (server)
ReplicaSet:build_and_add_server ([config])
ReplicaSet:build_server ([config])
ReplicaSet:delete_server (alias)
ReplicaSet:drop ()
ReplicaSet:get_leader ()
ReplicaSet:get_server (alias)
ReplicaSet:new ([object])
Usage:
ReplicaSet:start ([opts])
ReplicaSet:stop ()
ReplicaSet:wait_for_fullmesh ([opts])
Module vshard
Configuration reference
Basic parameters
Replica set parameters
API Reference
Router API
Router public API
Router internal API
Storage API
Storage public API
Storage internal API
SQL DBMS Modules
MySQL Example
Installation
With LuaRocks
With GitHub
Connecting
How to ping
Executing a statement
Closing connection
Example
PostgreSQL Example
Installation
With LuaRocks
With GitHub
Connecting
How to ping
Executing a statement
Closing connection
Example
Other rocks
C API reference
Module box
Module clock
Module coio
Module error
Module fiber
Module index
Module latch
Function on_shutdown
Module lua/utils
Module say (logging)
Module schema
Module trivia/config
Module tuple
Module txn
Internals
Binary protocol
MP_* MessagePack types
Request and response format
Packet structure
Size
Header
Encoding and decoding
Body
Error responses
Error responses before 2.4.1
Keys used in requests and responses
Basic description
General
Streams
General replication
Synchronous replication
Events and subscriptions
SQL-specific
Details on individual keys
IPROTO_VERSION
IPROTO_FEATURES
IPROTO_SYNC
IPROTO_SCHEMA_VERSION
IPROTO_ITERATOR
IPROTO_STREAM_ID
IPROTO_TXN_ISOLATION
IPROTO_REQUEST_TYPE
IPROTO_ERROR
IPROTO_ERROR_24
IPROTO_TUPLE
IPROTO_FLAGS
IPROTO_TERM
Vclock keys
IPROTO_BALLOT keys
IPROTO_METADATA
IPROTO_SQL_BIND
Client-server requests and responses
Overview
IPROTO_OK
IPROTO_CHUNK
IPROTO_TYPE_ERROR
IPROTO_UNKNOWN
IPROTO_SELECT
Example
IPROTO_INSERT
Example
IPROTO_REPLACE
IPROTO_UPDATE
Examples
IPROTO_UPSERT
IPROTO_DELETE
IPROTO_EVAL
Example
IPROTO_CALL
IPROTO_AUTH
IPROTO_NOP
IPROTO_PING
IPROTO_ID
Session start and authentication
Greeting message
Authentication
Streams
Overview
Basic request description
IPROTO_BEGIN
IPROTO_COMMIT
IPROTO_ROLLBACK
Example
Events and subscriptions
IPROTO_WATCH
IPROTO_UNWATCH
IPROTO_EVENT
Graceful shutdown protocol
Overview
How the graceful shutdown works
SQL-specific requests and responses
Basic request description
IPROTO_EXECUTE
Example 1
Example 2
IPROTO_PREPARE
Responses for SQL
Responses to SELECT, VALUES, or PRAGMA
Example
Responses to other requests
Replication requests and responses
General
Heartbeats
IPROTO_JOIN
IPROTO_SUBSCRIBE
IPROTO_VOTE
IPROTO_BALLOT
Synchronous
IPROTO_RAFT
IPROTO_RAFT_PROMOTE
IPROTO_RAFT_DEMOTE
IPROTO_RAFT_CONFIRM
IPROTO_RAFT_ROLLBACK
Examples
Overview
Examples
IPROTO_SELECT
IPROTO_UPDATE
IPROTO_EXECUTE
IPROTO_INSERT
IPROTO_EVAL
Creating a table with IPROTO_EXECUTE
SELECT with SQL
IPROTO_PREPARE
Heartbeat
MessagePack extensions
The DECIMAL type
The UUID type
The ERROR type
The DATETIME type
The INTERVAL type
File formats
Data persistence and the WAL file format
The snapshot file format
Example
The recovery process
Replication internals
Server startup with replication
Orphan status
Limitations
Tips on Lua syntax
Object reference variations
Parameter variations
Rules for object names
Contributing
How to get involved in Tarantool
What is Tarantool?
How to get help?
How to leave feedback, ideas, or suggestions?
How to contribute
Tarantool ecosystem
Documentation: How to report and fix problems
How to contribute to modules
Contributing to an existing module
Creating a new module
How to contribute to Tarantool Core
How to write tests
How to contribute to language connectors
How to contribute to tools
How to become a maintainer
How to write release notes
Language
Formatting
Building to contribute
Quick build
Ubuntu/Debian
Fedora
RHEL/CentOS 7
CentOS 8
Mac OS
FreeBSD
Additional steps
-DENABLE_DIST=ON for tarantoolctl installation
Make RPM and Debian packages
Verify your Tarantool installation
See also
Contributing a module
Contributing a module in Lua
Contributing a module in C
Guidelines
Developer guidelines
How to work on a bug
How to write a commit message
Documentation & Localization guidelines
Language and style
General style
Concise is good
Keep your audience in mind
Don’t say “we”
Stick to the facts
Refer to absolute time
Express one idea in a sentence
Put examples next to theory
Specify link text
Formatting
Use lists and tables
Format code as code
Word choice
Instance vs server
Don’t use i.e. and e.g.
Spelling and punctuation
Tarantool capitalization
US vs British spelling
Check your spelling and punctuation
Dashes
Ending punctuation in lists and tables
Lists
Tables
Localization
State of localization
Glossaries
Tarantool Core
Cartridge
Localization guidelines
Tone of voice
General voice
Modal verbs
Gender neutrality
Term choice
Term choice examples
Best practices
Be creative
Less is more
Topic and focus
No bureaucratese
Consistency
Avoid elliptical sentences
Pronoun collocations
Be critical towards your text
Be nice to your peers
Defining and using terms
What are concepts and terms
Use preferred terms
Define terms by explaining concepts
Introduce terms on first entry
Markup reference
General syntax guidelines
Basic syntax
Wrapping text
Indentation
Making comments
Headings
Heading markup
Title headings
Links and references
Linking to other documentation pages
Linking to labels (anchors)
Linking to external resources
Tables
Writing about code
Defining what code is
Code blocks and inline code
Code snippets
Inline code
Notes on using inline-code
Highlighting variables in code
Formatting file and directory names
Referring to GUI elements
Admonitions
Documenting the API
Style
Indicating the version
Language of the general description
Checklist
Function or method
Data
Function and method parameters
Configuration parameters
Documenting possible errors
Examples and templates
Module functions
Class methods and data
Configuration parameters
Images
Diagrams
Size
Exporting
Screenshots
Markup
Building Tarantool Docs
How to build Tarantool documentation using Docker
Prepare for work
Update submodules and generate documentation sources from code
Build and run the documentation on your machine
Linkcheck
Vale
Localization
How to contribute
Sphinx-build warnings reference
Bullet list ends without a blank line; unexpected unindent
Could not lex literal_block as “…”. Highlighting skipped
Duplicate explicit target name: “…”
Document isn’t included in any toctree
Duplicate label “…”, other instance in “…/…/…”
Malformed hyperlink target
Anonymous hyperlink mismatch
Toctree contains reference to nonexisting document ‘…’
Undefined label: … (if the link has no caption the label must precede a section header)
Unexpected indentation
Unknown document
Documentation infrastructure
Adding submodules
1. Add a submodule
2. Update build_submodules.sh
metrics
cartridge_cli
3. Update .gitignore
Git workflow
Branching
Linking issues and PRs
Commit messages
Good examples
Bad examples
Selecting a reviewer
Merging
C Style Guide
Tarantool coding style
Chapter 1: Indentation
Chapter 2: Breaking long lines and strings
Chapter 3: Placing Braces and Spaces
Chapter 3.1: Spaces
Chapter 4: Naming
Chapter 5: Typedefs
Chapter 6: Functions
Chapter 7: Centralized exiting of functions
Chapter 8: Commenting
Chapter 9: Macros, Enums and RTL
Chapter 10: Allocating memory
Chapter 11: The inline disease
Chapter 12: Function return values and names
Chapter 13: Editor modelines and other cruft
Chapter 14: Conditional Compilation
Chapter 15: Header files
Chapter 16: Other
Appendix I: References
Python Style Guide
Introduction
A Foolish Consistency is the Hobgoblin of Little Minds
Code lay-out
Indentation
Tabs or Spaces?
Maximum Line Length
Blank Lines
Encodings (PEP 263)
Imports
Whitespace in Expressions and Statements
Pet Peeves
Other Recommendations
Comments
Block Comments
Inline Comments
Documentation Strings
Version Bookkeeping
Naming Conventions
Descriptive: Naming Styles
Prescriptive: Naming Conventions
Names to Avoid
Package and Module Names
Class Names
Exception Names
Global Variable Names
Function Names
Function and method arguments
Method Names and Instance Variables
Constants
Designing for inheritance
References
Copyright
Lua style guide
Indentation and formatting
Avoid global variables
Naming
Idioms and patterns
Modules
Commenting
Testing
Error handling
luacheck
Releases
Release calendar
Release lifetime table
Major features
Tarantool 2.11 (LTS)
Upgrading to Tarantool 2.11
Enterprise Edition
Security enhancements
Encrypted SSL/TLS keys
Security enforcement options
PAP-SHA256 authentication method
Read views
Data compression improvements
WAL extensions
Community Edition
Pagination
Downgrading a database
New bootstrap strategy
Limitation of fiber execution time
Per-module logging
HTTP client enhancements
Content serialization
Query and form parameters
Streaming
Linearizable read
Explicit sequential scanning in SQL
Strict fencing in RAFT
EOL versions
Tarantool 2.10.8
Overview
Compatibility
Functionality added or changed
Box
Test
Fuzz
Build
Bugs fixed
Core
Memtx
Vinyl
Replication
LuaJIT
Lua
Netbox
Box
Console
Datetime
Http
Msgpack
Tarantool 2.10.7
Overview
Compatibility
Bugs fixed
Core
Replication
LuaJIT
SQL
Datetime
Build
Tarantool 2.10.6
Overview
Compatibility
Bugs fixed
Core
LuaJIT
Box
Tarantool 2.10.5
Overview
Compatibility
Functionality added or changed
Core
Build
Bugs fixed
Core
Memtx
Vinyl
Replication
Raft
LuaJIT
Lua
SQL
Box
Datetime
Fiber
Log
Build
Tarantool 2.10.4
Overview
Compatibility
Functionality added or changed
Core
SQL
Build
Bugs fixed
Core
Memtx
LuaJIT
Lua
SQL
Box
Datetime
Tarantool 2.10.3
Overview
Compatibility
Functionality added or changed
Build
Bugs fixed
Core
Memtx
Replication
Raft
Lua
Merger
Popen
Box
Synchro
Uri
Tarantool 2.10.2
Overview
Compatibility
Functionality added or changed
Core
Bugs fixed
Core
Replication
Box
Tarantool 2.10.1
Overview
Compatibility
Functionality added or changed
Core
Datetime
Decimal
Tuple
Build
Bugs fixed
Core
Memtx
Vinyl
Replication
LuaJIT
Lua
SQL
Datetime
HTTP client
Build
Tarantool 2.10.0
Overview
Compatibility
Functionality added or changed
Core
Memtx
Vinyl
Replication
Raft
LuaJIT
Lua
Datetime
Digest
Fiber
Log
Msgpack
Netbox
Schema
SQL
Box
Datetime
Fiber
Luarocks
Xlog
Build
Bugs fixed
Core
Memtx
Vinyl
Replication
Raft
LuaJIT
Lua
Triggers
SQL
Box
Datetime
HTTP client
Mvcc
Net.box
Recovery
Tarantoolctl
Build
Tarantool 2.8.4
Overview
Compatibility
Functionality added or changed
Build
Bugs fixed
Core
Vinyl
Raft
LuaJIT
Lua
Box
HTTP client
Recovery
Tarantool 2.8.3
Overview
Compatibility
Functionality added or changed
LuaJIT
Build
Bugs fixed
Core
Replication
LuaJIT
Lua
Triggers
SQL
Build
Tarantool 2.8.2
Overview
Compatibility
Functionality added or changed
LuaJIT
Lua
Logging
SQL
Build
Bugs fixed
Core
Vinyl
Replication
Raft
LuaJIT
Lua
Triggers
SQL
MVCC
Tarantool 2.8.1
Overview
Compatibility
Functionality added or changed
Core
Replication
LuaJIT
Tools
Build
Testing
Bugs fixed
Core
Replication
Swim
LuaJIT
Lua
SQL
Build
Tarantool 2.7.3
Overview
Compatibility
Functionality added or changed
Core
LuaJIT
Lua
SQL
Build
Bugs fixed
Core
Vinyl
Replication
Raft
LuaJIT
Lua
Triggers
SQL
MVCC
Tarantool 2.7.2
Overview
Compatibility
Functionality added or changed
Core
Replication
Build
Testing
Bugs fixed
Core
Replication
Module swim
LuaJIT
Lua
SQL
Build
Tarantool 2.7.1
Overview
Compatibility
Functionality added or changed
Core
LuaJIT
Lua
SQL
Replication
Build
Miscellaneous
Bugs fixed
Core
Replication
SQL
LuaJIT
Lua
Memtx
Tarantool 2.6.3
Overview
Compatibility
Functionality added or changed
Core
Replication
Build
Testing
Bugs fixed
Core
Replication
Swim
Lua
SQL
LuaJIT
Build
Tarantool 2.6.2
Overview
Compatibility
Functionality added or changed
Replication
Lua
Build
Bugs fixed
Core
Replication
SQL
LuaJIT
Lua
Memtx
Tarantool 2.6.1
Overview
Compatibility
Functionality added or changed
Core
Vinyl
LuaJIT
SQL
Replication
Build
Misc
Module API
Bugs fixed
Core
Replication
LuaJIT
Lua
Memtx
Module API
Tarantool 2.5.3
Overview
Compatibility
Functionality added or changed
Replication
Lua
Build
Bugs fixed
Core
Replication
SQL
LuaJIT
Lua
Memtx
Tarantool 2.5.2
Overview
Compatibility
Functionality added or changed
Core
Module API
Bugs fixed
Core
Replication
LuaJIT
Lua
SQL
Misc
Module API
Tarantool 2.5.1
Overview
Compatibility
Functionality added or changed
Core
Vinyl
SQL
Replication
Build
Misc
Bugs fixed
Core
Replication
Lua
SQL
Vinyl
Memtx
Misc
Tarantool 2.4.3
Overview
Compatibility
Functionality added or changed
Module API
Bugs fixed
Core
Replication
LuaJIT
Lua
SQL
Misc
Module API
Tarantool 2.4.2
Overview
Compatibility
Functionality added or changed
Core
Misc
Bugs fixed
Core
Replication
Lua
SQL
Vinyl
Memtx
Tarantool 2.4.1
Overview
Compatibility
Functionality added or changed
Core
Lua
Misc
Bugs fixed
Core
Replication
Lua
SQL
Types related changes
HTTP client
LuaJIT
Vinyl
Misc
Building from sources
Tarantool 2.3.3
Overview
Compatibility
Bugs fixed
Core
Replication
Lua
SQL
Vinyl
Memtx
Tarantool 2.3.2
Overview
Compatibility
Bugs fixed
Core
Replication
Lua
SQL
HTTP client
LuaJIT
Vinyl
Misc
Building from sources
Tarantool 2.3.1
Overview
Compatibility
Functionality added or changed
SQL
Core
Replication
Lua
HTTP client
Misc
Bugs fixed
SQL
Core
Replication
Lua
HTTP client
Console Lua output
LuaJIT
Misc
Building from sources
Tarantool 2.2.3
Overview
Compatibility
Bugs fixed
Core
Replication
Lua
SQL
HTTP client
LuaJIT
Vinyl
Misc
Building from sources
Tarantool 2.2.2
Overview
Compatibility
Functionality added or changed
Core
Lua
Misc
Bugs fixed
SQL
Core
Replication
Lua
HTTP client
Console Lua output
LuaJIT
Misc
Building from sources
Tarantool 2.2.1
Overview
Compatibility
Functionality added or changed
Tarantool 2.1.2 and earlier
Tarantool 1.10.15
Overview
Compatibility
Functionality added or changed
Build
Bugs fixed
Core
Vinyl
LuaJIT
Fiber
Log
Build
Tarantool 1.10.14
Overview
Compatibility
Functionality added or changed
Build
Bugs fixed
Core
Vinyl
Replication
LuaJIT
Box
Recovery
Tarantool 1.10.13
Overview
Compatibility
Functionality added or changed
Build
Bugs fixed
Core
Vinyl
Replication
LuaJIT
Box
Recovery
Tarantool 1.10.12
Overview
Compatibility
Functionality added or changed
Build
Bugs fixed
Core
Replication
LuaJIT
Lua
Triggers
Build
Tarantool 1.10.11
Overview
Compatibility
Functionality added or changed
LuaJIT
Build
Bugs fixed
Core
Vinyl
Replication
LuaJIT
Lua
Triggers
Tarantool 1.10.10
Overview
Compatibility
Functionality added or changed
Build
Testing
Bugs fixed
Core
Lua
Build
Tarantool 1.10.9
Overview
Compatibility
Functionality added or changed
Build
Misc
Bugs fixed
Core
LuaJIT
Lua
Tarantool 1.10.8
Overview
Compatibility
Functionality added or changed
Module API
Bugs fixed
Core
Lua
LuaJIT
Misc
Module API
Tarantool 1.10.7
Overview
Compatibility
Bugs fixed
Core
Lua
LuaRocks
Vinyl
Tarantool 1.10.6
Overview
Compatibility
Bugs fixed
Core
Replication
Lua
HTTP client
LuaJIT
Vinyl
Misc
Building from sources
Tarantool 1.10.5
Overview
Compatibility
Functionality added or changed
Lua
Misc
Bugs fixed
Core
Replication
Lua
HTTP client
LuaJIT
Misc
Building from sources
Tarantool 1.10.0–1.10.4
Tarantool 1.9
Tarantool 1.8
Tarantool 1.7
Tarantool 1.6
Release policies
Tarantool release policy
Summary
Versioning policy
Release series and versions
Pre-release versions
Release series lifecycle
Early development
Support
End of life
Versions per lifecycle stage
Example of a release series
Tarantool legacy release policy
Compatibility guarantees
Binary data layout
Binary protocol
Replication protocol
Lua code
SQL code
C code
Submodule box.space
/
box.space._vpriv
En
Ru
Version:
2.11
1.6
1.10
2.2
2.3
box.space._vpriv
box.space._vpriv
box.space.
_vpriv
¶
_vpriv
is the
system space view
for
_priv
.
box.space._priv
box.space._schema