API reference
This section represents public and internal API for the router and the storage.
-
vshard.router.
bootstrap
() Perform the initial cluster bootstrap and distribute all buckets across the replica sets.
Parameters: - timeout – a number of seconds before ending a bootstrap attempt as unsuccessful. Recreate the cluster in case of bootstrap timeout.
- if_not_bootstrapped – by default is set to
false
that means raise an error, when the cluster is already bootstrapped.True
means consider an already bootstrapped cluster a success.
Example:
vshard.router.bootstrap({timeout = 4, if_not_bootstrapped = true})
Note
To detect whether a cluster is bootstrapped,
vshard
looks for at least one bucket in the whole cluster. If the cluster was bootstrapped only partially (for example, due to an error during the first bootstrap), then it will be considered a bootstrapped cluster on a next bootstrap call withif_not_bootstrapped
. So this is still a bad practice. Avoid callingbootstrap()
multiple times.
-
vshard.router.
cfg
(cfg) Configure the database and start sharding for the specified
router
instance. See the sample configuration.Parameters: - cfg – a configuration table
-
vshard.router.
new
(name, cfg) Create a new router instance.
vshard
supports multiple routers in a single Tarantool instance. Each router can be connected to anyvshard
cluster, and multiple routers can be connected to the same cluster.A router created via
vshard.router.new()
works in the same way as a static router, but the method name is preceded by a colon (vshard.router:method_name(...)
), while for a static router the method name is preceded by a period (vshard.router.method_name(...)
).A static router can be obtained via the
vshard.router.static()
method and then used like a router created via thevshard.router.new()
method.Note
box.cfg
is shared among all the routers of a single instance.Parameters: - name – a router instance name. This name is used as a prefix in logs of the router and must be unique within the instance
- cfg – a configuration table. See the sample configuration.
Return: a router instance, if created successfully; otherwise, nil and an error object
-
vshard.router.
call
(bucket_id, mode, function_name, {argument_list}, {options}) Call the function identified by function-name on the shard storing the bucket identified by bucket_id. See the Processing requests section for details on function operation.
Parameters: - bucket_id – a bucket identifier
- mode – either a string = ‘read’|’write’, or a map with mode=’read’|’write’ and/or prefer_replica=true|false and/or balance=true|false.
- function_name – a function to execute
- argument_list – an array of the function’s arguments
- options –
timeout
– a request timeout, in seconds. If therouter
cannot identify a shard with the specifiedbucket_id
, the operation will be repeated until the timeout is reached.- other net.box options, such as
is_async
,buffer
,on_push
are also supported.
The mode parameter has two possible forms: a string or a map. Examples of the string form are:
'read'
,'write'
. Examples of the map form are:{mode='read'}
,{mode='write'}
,{mode='read', prefer_replica=true}
,{mode='read', balance=true}
,{mode='read', prefer_replica=true, balance=true}
.If
'write'
is specified then the target is the master.If
prefer_replica=true
is specified then the preferred target is one of the replicas, but the target is the master if there is no conveniently available replica.It may be good to specify prefer_replica=true for functions which are expensive in terms of resource use, to avoid slowing down the master.
If
balance=true
then there is load balancing – reads are distributed over all the nodes in the replica set in round-robin fashion, with a preference for replicas if prefer_replica=true is also set.Return: The original return value of the executed function, or
nil
and error object. The error object has a type attribute equal toShardingError
or one of the regular Tarantool errors (ClientError
,OutOfMemory
,SocketError
, etc.).ShardingError
is returned on errors specific for sharding: the master is missing, wrong bucket id, etc. It has an attribute code containing one of the values from thevshard.error.code.*
LUA table, an optional attribute containing a message with the human-readable error description, and other attributes specific for the error code.Examples:
To call
customer_add
function fromvshard/example
, say:vshard.router.call(100, 'write', 'customer_add', {{customer_id = 2, bucket_id = 100, name = 'name2', accounts = {}}}, {timeout = 5}) -- or, the same thing but with a map for the second argument vshard.router.call(100, {mode='write'}, 'customer_add', {{customer_id = 2, bucket_id = 100, name = 'name2', accounts = {}}}, {timeout = 5})
-
vshard.router.
callro
(bucket_id, function_name, {argument_list}, {options}) Call the function identified by function-name on the shard storing the bucket identified by bucket_id, in read-only mode (similar to calling vshard.router.call with mode=’read’). See the Processing requests section for details on function operation.
Parameters: - bucket_id – a bucket identifier
- function_name – a function to execute
- argument_list – an array of the function’s arguments
- options –
timeout
– a request timeout, in seconds. In case therouter
cannot identify a shard with the bucket id, the operation will be repeated until the timeout is reached.- other net.box options, such as
is_async
,buffer
,on_push
are also supported.
Return: The original return value of the executed function, or
nil
and error object. The error object has a type attribute equal toShardingError
or one of the regular Tarantool errors (ClientError
,OutOfMemory
,SocketError
, etc.).ShardingError
is returned on errors specific for sharding: the replica set is not available, the master is missing, wrong bucket id, etc. It has an attribute code containing one of the values from thevshard.error.code.*
LUA table, an optional attribute containing a message with the human-readable error description, and other attributes specific for this error code.
-
vshard.router.
callrw
(bucket_id, function_name, {argument_list}, {options}) Call the function identified by function-name on the shard storing the bucket identified by bucket_id, in read-write mode (similar to calling vshard.router.call with mode=’write’). See the Processing requests section for details on function operation.
Parameters: - bucket_id – a bucket identifier
- function_name – a function to execute
- argument_list – an array of the function’s arguments
- options –
timeout
– a request timeout, in seconds. In case therouter
cannot identify a shard with the bucket id, the operation will be repeated until the timeout is reached.- other net.box options, such as
is_async
,buffer
,on_push
are also supported.
Return: The original return value of the executed function, or
nil
and error object. The error object has a type attribute equal toShardingError
or one of the regular Tarantool errors (ClientError
,OutOfMemory
,SocketError
, etc.).ShardingError
is returned on errors specific for sharding: the replica set is not available, the master is missing, wrong bucket id, etc. It has an attribute code containing one of the values from thevshard.error.code.*
LUA table, an optional attribute containing a message with the human-readable error description, and other attributes specific for this error code.
-
vshard.router.
callre
(bucket_id, function_name, {argument_list}, {options}) Call the function identified by function-name on the shard storing the bucket identified by bucket_id, in read-only mode (similar to calling
vshard.router.call
withmode='read'
), with preference for a replica rather than a master (similar to callingvshard.router.call
withprefer_replica = true
). See the Processing requests section for details on function operation.Parameters: - bucket_id – a bucket identifier
- function_name – a function to execute
- argument_list – an array of the function’s arguments
- options –
timeout
– a request timeout, in seconds. In case therouter
cannot identify a shard with the bucket id, the operation will be repeated until the timeout is reached.- other net.box options, such as
is_async
,buffer
,on_push
are also supported.
Return: The original return value of the executed function, or
nil
and error object. The error object has a type attribute equal toShardingError
or one of the regular Tarantool errors (ClientError
,OutOfMemory
,SocketError
, etc.).ShardingError
is returned on errors specific for sharding: the replica set is not available, the master is missing, wrong bucket id, etc. It has an attribute code containing one of the values from thevshard.error.code.*
LUA table, an optional attribute containing a message with the human-readable error description, and other attributes specific for this error code.
-
vshard.router.
callbro
(bucket_id, function_name, {argument_list}, {options}) This has the same effect as vshard.router.call() with mode parameter =
{mode='read', balance=true}
.
-
vshard.router.
callbre
(bucket_id, function_name, {argument_list}, {options}) This has the same effect as vshard.router.call() with mode parameter =
{mode='read', balance=true, prefer_replica=true}
.
-
vshard.router.
route
(bucket_id) Return the replica set object for the bucket with the specified bucket id value.
Parameters: - bucket_id – a bucket identifier
Return: a replica set object
Example:
replicaset = vshard.router.route(123)
-
vshard.router.
routeall
() Return all available replica set objects.
Return: a map of the following type: {UUID = replicaset}
Rtype: a map of replica set objects Example:
function selectall() local resultset = {} shards, err = vshard.router.routeall() if err ~= nil then error(err) end for uid, replica in pairs(shards) do local set = replica:callro('box.space.*space-name*:select', {{}, {limit=10}}, {timeout=5}) for _, item in ipairs(set) do table.insert(resultset, item) end end table.sort(resultset, function(a, b) return a[1] < b[1] end) return resultset end
-
vshard.router.
bucket_id
(key) Deprecated. Logs a warning when used because it is not consistent for cdata numbers.
In particular, it returns 3 different values for normal Lua numbers like 123, for unsigned long long cdata (like
123ULL
, orffi.cast('unsigned long long',123)
), and for signed long long cdata (like123LL
, orffi.cast('long long', 123)
). And it is important.vshard.router.bucket_id(123) vshard.router.bucket_id(123LL) vshard.router.bucket_id(123ULL)
For float and double cdata (
ffi.cast('float', number)
,ffi.cast('double', number)
) these functions return different values even for the same numbers of the same floating point type. This is becausetostring()
on a floating point cdata number returns not the number, but a pointer at it. Different on each call.vshard.router.bucket_id_strcrc32()
behaves exactly the same, but does not log a warning. In case you need that behavior.
-
vshard.router.
bucket_id_strcrc32
(key) Calculate the bucket id using a simple built-in hash function.
Parameters: - key – a hash key. This can be any Lua object (number, table, string).
Return: a bucket identifier
Rtype: number
Example:
tarantool> vshard.router.bucket_count() --- - 3000 ... tarantool> vshard.router.bucket_id_strcrc32("18374927634039") --- - 2032 ... tarantool> vshard.router.bucket_id_strcrc32(18374927634039) --- - 2032 ... tarantool> vshard.router.bucket_id_strcrc32("test") --- - 1216 ... tarantool> vshard.router.bucket_id_strcrc32("other") --- - 2284 ...
Note
Remember that it is not safe. See details in bucket_id()
-
vshard.router.
bucket_id_mpcrc32
(key) This function is safer than
bucket_id_strcrc32
. It takes a CRC32 from a MessagePack encoded value. That is, bucket id of integers does not depend on their Lua type. In case of a string key, it does not encode it into MessagePack, but takes a hash right from the string.Parameters: - key – a hash key. This can be any Lua object (number, table, string).
Return: a bucket identifier
Rtype: number
However it still may return different values for not equal floating point types. That is,
ffi.cast('float', number)
may be reflected into a bucket id not equal toffi.cast('double', number)
. This can’t be fixed, because a float value, even being casted to double, may have a garbage tail in its fraction.Floating point keys should not be used to calculate a bucket id, usually.
Be very careful in case you store floating point types in a space. When data is returned from a space, it is cast to Lua number. And if that value had an empty fraction part, it will be treated as an integer by
bucket_id_mpcrc32()
. So you need to do explicit casts in such cases. Here is an example of the problem:tarantool> s = box.schema.create_space('test', {format = {{'id', 'double'}}}); _ = s:create_index('pk') --- ... tarantool> inserted = ffi.cast('double', 1) --- ... -- Value is stored as double tarantool> s:replace({inserted}) --- - [1] ... -- But when returned to Lua, stored as Lua number, not cdata. tarantool> returned = s:get({inserted}).id --- ... tarantool> type(returned), returned --- - number - 1 ... tarantool> vshard.router.bucket_id_mpcrc32(inserted) --- - 1411 ... tarantool> vshard.router.bucket_id_mpcrc32(returned) --- - 1614 ...
-
vshard.router.
bucket_count
() Return the total number of buckets specified in
vshard.router.cfg()
.Return: the total number of buckets Rtype: number tarantool> vshard.router.bucket_count() --- - 10000 ...
-
vshard.router.
sync
(timeout) Wait until the dataset is synchronized on replicas.
Parameters: - timeout – a timeout, in seconds
Return: true
if the dataset was synchronized successfully; ornil
anderr
explaining why the dataset cannot be synchronized.
-
vshard.router.
discovery_set
(mode) Turn on/off the background discovery fiber used by the router to find buckets.
Parameters: - mode – working mode of a discovery fiber. There are three modes:
on
,off
andonce
When the mode is
on
(default), the discovery fiber works during all the lifetime of the router. Even after all buckets are discovered, it will still come to storages and download their buckets with some big period (DISCOVERY_IDLE_INTERVAL). This is useful if the bucket topology changes often and the number of buckets is not big. The router will keep its route table up to date even when no requests are processed.When the mode is
off
, discovery is disabled completely.When the mode is
once
, discovery starts and finds the locations of all buckets, and then the discovery fiber is terminated. This is good for a large bucket count and for clusters, where rebalancing is rare.The method is good to enable/disable discovery after the router is already started, but discovery is enabled by default. You may want to never enable it even for a short time – then specify the
discovery_mode
option in the configuration. It takes the same values asvshard.router.discovery_set(mode)
.You may decide to turn off discovery or make it
once
if you have many routers, or tons of buckets (hundreds of thousands and more), and you see that the discovery process consumes notable CPU % on routers and storages. In that case it may be wise to turn off the discovery when there is no rebalancing in the cluster. And turn it on for new routers, as well as for all routers when rebalancing is started.- mode – working mode of a discovery fiber. There are three modes:
-
vshard.router.
info
() Return information about each instance.
Return: Replica set parameters:
- replica set uuid
- master instance parameters
- replica instance parameters
Instance parameters:
uri
— URI of the instanceuuid
— UUID of the instancestatus
– status of the instance (available
,unreachable
,missing
)network_timeout
– a timeout for the request. The value is updated automatically on each 10th successful request and each 2nd failed request.
Bucket parameters:
available_ro
– the number of buckets known to therouter
and available for read requestsavailable_rw
– the number of buckets known to therouter
and available for read and write requestsunavailable
– the number of buckets known to therouter
but unavailable for any requestsunreachable
– the number of buckets whose replica sets are not known to therouter
Example:
tarantool> vshard.router.info() --- - replicasets: ac522f65-aa94-4134-9f64-51ee384f1a54: replica: &0 network_timeout: 0.5 status: available uri: storage@127.0.0.1:3303 uuid: 1e02ae8a-afc0-4e91-ba34-843a356b8ed7 uuid: ac522f65-aa94-4134-9f64-51ee384f1a54 master: *0 cbf06940-0790-498b-948d-042b62cf3d29: replica: &1 network_timeout: 0.5 status: available uri: storage@127.0.0.1:3301 uuid: 8a274925-a26d-47fc-9e1b-af88ce939412 uuid: cbf06940-0790-498b-948d-042b62cf3d29 master: *1 bucket: unreachable: 0 available_ro: 0 unknown: 0 available_rw: 3000 status: 0 alerts: [] ...
-
vshard.router.
buckets_info
() Return information about each bucket. Since a bucket map can be huge, only the required range of buckets can be specified.
Parameters: - offset – the offset in a bucket map of the first bucket to show
- limit – the maximum number of buckets to show
Return: a map of the following type:
{bucket_id = 'unknown'/replicaset_uuid}
tarantool> vshard.router.buckets_info() --- - - uuid: aaaaaaaa-0000-4000-a000-000000000000 status: available_rw - uuid: aaaaaaaa-0000-4000-a000-000000000000 status: available_rw - uuid: aaaaaaaa-0000-4000-a000-000000000000 status: available_rw - uuid: bbbbbbbb-0000-4000-a000-000000000000 status: available_rw - uuid: bbbbbbbb-0000-4000-a000-000000000000 status: available_rw - uuid: bbbbbbbb-0000-4000-a000-000000000000 status: available_rw - uuid: bbbbbbbb-0000-4000-a000-000000000000 status: available_rw ...
-
object
replicaset_object
-
replicaset_object:
call
(function_name, {argument_list}, {options}) Call a function on a nearest available master (distances are defined using
replica.zone
andcfg.weights
matrix) with specified arguments.Note
The
replicaset_object:call
method is similar toreplicaset_object:callrw
.Parameters: - function_name – function to execute
- argument_list – array of the function’s arguments
- options –
timeout
– a request timeout, in seconds. In case therouter
cannot identify a shard with the bucket id, the operation will be repeated until the timeout is reached.- other net.box options, such as
is_async
,buffer
,on_push
are also supported.
Return: - result of
function_name
on success - nill, err otherwise
-
replicaset_object:
callrw
(function_name, {argument_list}, {options}) Call a function on a nearest available master (distances are defined using
replica.zone
andcfg.weights
matrix) with a specified arguments.Note
The
replicaset_object:callrw
method is similar toreplicaset_object:call
.Parameters: - function_name – function to execute
- argument_list – array of the function’s arguments
- options –
timeout
– a request timeout, in seconds. In case therouter
cannot identify a shard with the bucket id, the operation will be repeated until the timeout is reached.- other net.box options, such as
is_async
,buffer
,on_push
are also supported.
Return: - result of
function_name
on success - nill, err otherwise
tarantool> local bucket = 1; return vshard.router.callrw( > bucket, > 'box.space.actors:insert', > {{ > 1, bucket, 'Renata Litvinova', > {theatre="Moscow Art Theatre"} > }}, > {timeout=5} > )
-
replicaset_object:
callro
(function_name, {argument_list}, {options}) Call a function on the nearest available replica (distances are defined using
replica.zone
andcfg.weights
matrix) with specified arguments. It is recommended to usereplicaset_object:callro()
for calling only read-only functions, as the called functions can be executed not only on a master, but also on replicas.Parameters: - function_name – function to execute
- argument_list – array of the function’s arguments
- options –
timeout
– a request timeout, in seconds. In case therouter
cannot identify a shard with the bucket id, the operation will be repeated until the timeout is reached.- other net.box options, such as
is_async
,buffer
,on_push
are also supported.
Return: - result of
function_name
on success - nill, err otherwise
-
replicaset:
callre
(function_name, {argument_list}, {options}) Call a function on the nearest available replica (distances are defined using
replica.zone
andcfg.weights
matrix) with specified arguments, with preference for a replica rather than a master (similar to callingvshard.router.call
withprefer_replica = true
). It is recommended to usereplicaset_object:callre()
for calling only read-only functions, as the called function can be executed not only on a master, but also on replicas.Parameters: - function_name – function to execute
- argument_list – array of the function’s arguments
- options –
timeout
– a request timeout, in seconds. In case therouter
cannot identify a shard with the bucket id, the operation will be repeated until the timeout is reached.- other net.box options, such as
is_async
,buffer
,on_push
are also supported.
Return: - result of
function_name
on success - nill, err otherwise
-
-
vshard.storage.
cfg
(cfg, name) Configure the database and start sharding for the specified
storage
instance.Parameters: - cfg – a
storage
configuration - instance_uuid – UUID of the instance
- cfg – a
-
vshard.storage.
info
() Return information about the storage instance in the following format:
tarantool> vshard.storage.info() --- - buckets: 2995: status: active id: 2995 2997: status: active id: 2997 2999: status: active id: 2999 replicasets: 2dd0a343-624e-4d3a-861d-f45efc571cd3: uuid: 2dd0a343-624e-4d3a-861d-f45efc571cd3 master: state: active uri: storage:storage@127.0.0.1:3301 uuid: 2ec29309-17b6-43df-ab07-b528e1243a79 c7ad642f-2cd8-4a8c-bb4e-4999ac70bba1: uuid: c7ad642f-2cd8-4a8c-bb4e-4999ac70bba1 master: state: active uri: storage:storage@127.0.0.1:3303 uuid: 810d85ef-4ce4-4066-9896-3c352fec9e64 ...
-
vshard.storage.
call
(bucket_id, mode, function_name, {argument_list}) Call the specified function on the current
storage
instance.Parameters: - bucket_id – a bucket identifier
- mode – a type of the function: ‘read’ or ‘write’
- function_name – function to execute
- argument_list – array of the function’s arguments
Return: The original return value of the executed function, or
nil
and error object.
-
vshard.storage.
sync
(timeout) Wait until the dataset is synchronized on replicas.
Parameters: - timeout – a timeout, in seconds
Return: true
if the dataset was synchronized successfully; ornil
anderr
explaining why the dataset cannot be synchronized.
-
vshard.storage.
bucket_pin
(bucket_id) Pin a bucket to a replica set. A pinned bucket cannot be moved even if it breaks the cluster balance.
Parameters: - bucket_id – a bucket identifier
Return: true
if the bucket is pinned successfully; ornil
anderr
explaining why the bucket cannot be pinned
-
vshard.storage.
bucket_unpin
(bucket_id) Return a pinned bucket back into the active state.
Parameters: - bucket_id – a bucket identifier
Return: true
if the bucket is unpinned successfully; ornil
anderr
explaining why the bucket cannot be unpinned
-
vshard.storage.
bucket_ref
(bucket_id, mode) Create an RO or RW ref.
Parameters: - bucket_id – a bucket identifier
- mode – ‘read’ or ‘write’
Return: true
if the bucket ref is created successfully; ornil
anderr
explaining why the ref cannot be created
-
vshard.storage.
bucket_refro
() An alias for vshard.storage.bucket_ref in the RO mode.
-
vshard.storage.
bucket_refrw
() An alias for vshard.storage.bucket_ref in the RW mode.
-
vshard.storage.
bucket_unref
(bucket_id, mode) Remove a RO/RW ref.
Parameters: - bucket_id – a bucket identifier
- mode – ‘read’ or ‘write’
Return: true
if the bucket ref is removed successfully; ornil
anderr
explaining why the ref cannot be removed
-
vshard.storage.
bucket_unrefro
() An alias for vshard.storage.bucket_unref in the RO mode.
-
vshard.storage.
bucket_unrefrw
() An alias for vshard.storage.bucket_unref in the RW mode.
-
vshard.storage.
find_garbage_bucket
(bucket_index, control) Find a bucket which has data in a space but is not stored in a
_bucket
space; or is in a GARBAGE state.Parameters: - bucket_index – index of a space with the part of a bucket id
- control – a garbage collector controller. If there is an increased buckets generation, then the search should be interrupted.
Return: an identifier of the bucket in the garbage state, if found; otherwise, nil
-
vshard.storage.
buckets_info
() Return information about each bucket located in storage. For example:
tarantool> vshard.storage.buckets_info(1) --- - 1: status: active ref_rw: 1 ref_ro: 1 ro_lock: true rw_lock: true id: 1
-
vshard.storage.
rebalancing_is_in_progress
() Return a flag indicating whether rebalancing is in progress. The result is true if the node is currently applying routes received from a rebalancer node in the special fiber.
-
vshard.storage.
rebalancer_disable
() Disable rebalancing. A disabled rebalancer sleeps until it is enabled again with vshard.storage.rebalancer_enable().
-
vshard.storage.
sharded_spaces
() Show the spaces that are visible to rebalancer and garbage collector fibers.
tarantool> vshard.storage.sharded_spaces() --- - 513: engine: memtx before_replace: 'function: 0x010e50e738' field_count: 0 id: 513 on_replace: 'function: 0x010e50e700' temporary: false index: 0: &0 unique: true parts: - type: number fieldno: 1 is_nullable: false id: 0 type: TREE name: primary space_id: 513 1: &1 unique: false parts: - type: number fieldno: 2 is_nullable: false id: 1 type: TREE name: bucket_id space_id: 513 primary: *0 bucket_id: *1 is_local: false enabled: true name: actors ck_constraint: [] ...
-
vshard.storage.
bucket_recv
(bucket_id, from, data) Receive a bucket identified by bucket id from a remote replica set.
Parameters: - bucket_id – a bucket identifier
- from – UUID of source replica set
- data – data logically stored in a bucket identified by bucket_id, in the same format as
the return value from
bucket_collect() <storage_api-bucket_collect>
-
vshard.storage.
bucket_stat
(bucket_id) Return information about the bucket id:
tarantool> vshard.storage.bucket_stat(1) --- - 0 - status: active id: 1 ...
Parameters: - bucket_id – a bucket identifier
-
vshard.storage.
bucket_delete_garbage
(bucket_id) Force garbage collection for the bucket identified by bucket_id in case the bucket was transferred to a different replica set.
Parameters: - bucket_id – a bucket identifier
-
vshard.storage.
bucket_collect
(bucket_id) Collect all the data that is logically stored in the bucket identified by bucket_id:
tarantool> vshard.storage.bucket_collect(1) --- - 0 - - - 514 - - [10, 1, 1, 100, 'Account 10'] - [11, 1, 1, 100, 'Account 11'] - [12, 1, 1, 100, 'Account 12'] - [50, 5, 1, 100, 'Account 50'] - [51, 5, 1, 100, 'Account 51'] - [52, 5, 1, 100, 'Account 52'] - - 513 - - [1, 1, 'Customer 1'] - [5, 1, 'Customer 5'] ...
Parameters: - bucket_id – a bucket identifier
-
vshard.storage.
bucket_force_create
(first_bucket_id, count) Force creation of the buckets (single or multiple) on the current replica set. Use only for manual emergency recovery or for initial bootstrap.
Parameters: - first_bucket_id – an identifier of the first bucket in a range
- count – the number of buckets to insert (default = 1)
-
vshard.storage.
bucket_force_drop
(bucket_id) Drop a bucket manually for tests or emergency cases.
Parameters: - bucket_id – a bucket identifier
-
vshard.storage.
bucket_send
(bucket_id, to) Send a specified bucket from the current replica set to a remote replica set.
Parameters: - bucket_id – bucket identifier
- to – UUID of a remote replica set