master |
EV::Tarantool16 - EV client for Tarantool 1.6
Version 1.39
use EV::Tarantool16;
my $c; $c = EV::Tarantool16->new({
host => '127.0.0.1',
port => 3301,
username => 'test_user',
password => 'test_passwd',
reconnect => 0.2,
connected => sub {
warn "connected: @_";
EV::unloop;
},
connfail => sub {
warn "connfail: @_ / $!";
EV::unloop;
},
disconnected => sub {
warn "discon: @_ / $!";
EV::unloop;
},
});
$c->connect;
EV::loop;
$c->ping(sub {
my $a = @_[0];
diag Dumper \@_ if !$a;
EV::unloop;
});
EV::loop;
Create new EV::Tarantool16 instance.
- host => $address
-
Address connect to.
- port => $port
-
Port connect to.
- username => $username
-
Username.
- password => $password
-
Password.
- reconnect => $reconnect
-
Reconnect timeout.
- log_level => $log_level
-
Logging level. Values: (0: None), (1: Error), (2: Warning), (3: Info), (4: Debug)
- cnntrace => $cnntrace
-
Enable (1) or disable(0) evcnn tracing.
- ares_reuse => $ares_reuse
-
Enable (1) or disable(0) c-ares connection reuse (default = 0).
- wbuf_limit => $wbuf_limit
-
Write vector buffer length limit. Defaults to 16384. Set wbuf_limit = 0 to disable write buffer length check on every request.
- connected => $sub
-
Called when connection to Tarantool 1.6 instance is established, authenticated successfully and retrieved spaces information from it.
- connfail => $sub
-
Called when connection to Tarantool 1.6 instance failed.
- disconnected => $sub
-
Called when Tarantool 1.6 instance disconnected.
Connect to Tarantool 1.6 instance. EV::Tarantool16->connected is called when connection is established.
Disconnect from Tarantool 1.6 instance. EV::Tarantool16->disconnected is called afterwards.
Execute ping request
- $opts
-
HASHREF of additional options to the request
- timeout => $timeout
-
Request execution timeout
Execute eval request
- $lua_expression
-
Lua code that will be run in tarantool
- tuple_args
-
Tuple (ARRAYREF) that will be passed as argument in lua code
- $opts
-
HASHREF of additional options to the request
- timeout => $timeout
-
Request execution timeout
- space => $space
-
This space definition will be used to decode response tuple
- in => $in
-
Format for parsing input (string). One char is for one argument ('s' = string, 'n' = number, 'a' = array, '*' = anything (type is determined automatically))
Execute eval request
- $function_name
-
Lua function that will be called in tarantool
- tuple_args
-
Tuple (ARRAYREF) that will be passed as argument in lua code
- $opts
-
HASHREF of additional options to the request
- timeout => $timeout
-
Request execution timeout
- space => $space
-
This space definition will be used to decode response tuple
- in => $in
-
Format for parsing input (string). One char is for one argument ('s' = string, 'n' = number, 'a' = array, '*' = anything (type is determined automatically))
Execute select request
- $space_name
-
Tarantool space name.
- $keys
-
Select keys (ARRAYREF or HASHREF).
- $opts
-
HASHREF of additional options to the request
- timeout => $timeout
-
Request execution timeout
- hash => $hash
-
Use hash as result
- index => $index
-
Index name or id to use
- limit => $limit
-
Select limit
- offset => $offset
-
Select offset
- iterator => $iterator
-
Select iterator type. It is recommended to use the predefined constants EV::Tarantool16::INDEX_#iterator_name# (eg. EV::Tarantool16::INDEX_EQ, EV::Tarantool16::INDEX_GE and so on).
List of possible iterator names:
EQ
REQ
ALL
LT
LE
GE
GT
BITS_ALL_SET
BITS_ANY_SET
BITS_ALL_NOT_SET
OVERLAPS
NEIGHBOR
You can also use string names as the value to this option (like 'EQ' or 'LT').
- in => $in
-
Format for parsing input (string). One char is for one argument ('s' = string, 'n' = number, 'a' = array, '*' = anything (type is determined automatically))
Execute insert request
- $space_name
-
Tarantool space name.
- $tuple
-
Tuple to be inserted (ARRAYREF or HASHREF).
- $opts
-
HASHREF of additional options to the request
- timeout => $timeout
-
Request execution timeout
- hash => $hash
-
Use hash as result
- replace => $replace
-
Insert(0) or replace(1) a tuple
- in => $in
-
Format for parsing input (string). One char is for one argument ('s' = string, 'n' = number, 'a' = array, '*' = anything (type is determined automatically))
Execute replace request (same as insert, but replaces tuple if already exists). ($opts->{replace} = 1)
Execute update request
- $space_name
-
Tarantool space name.
- $key
-
Select key where to perform update (ARRAYREF or HASHREF).
- $operations
-
Update operations (ARRAYREF) in this format: [$field_no => $operation, $operation_args] Please refer to Tarantool 1.6 documentaion for more details.
- $opts
-
HASHREF of additional options to the request
- timeout => $timeout
-
Request execution timeout
- hash => $hash
-
Use hash as result
- index => $index
-
Index name or id to use
- in => $in
-
Format for parsing input (string). One char is for one argument ('s' = string, 'n' = number, 'a' = array, '*' = anything (type is determined automatically))
Execute upsert request
- $space_name
-
Tarantool space name.
- $tuple
-
A tuple that will be inserted to Tarantool if there is no tuple like it already (ARRAYREF or HASHREF).
- $operations
-
Update operations (ARRAYREF) in this format: [$field_no => $operation, $operation_args] Please refer to Tarantool 1.6 documentaion for more details.
- $opts
-
HASHREF of additional options to the request
- timeout => $timeout
-
Request execution timeout
- hash => $hash
-
Use hash as result
- in => $in
-
Format for parsing input (string). One char is for one argument ('s' = string, 'n' = number, 'a' = array, '*' = anything (type is determined automatically))
Execute delete request
- $space_name
-
Tarantool space name.
- $key
-
Select key (ARRAYREF or HASHREF).
- $opts
-
HASHREF of additional options to the request
- timeout => $timeout
-
Request execution timeout
- hash => $hash
-
Use hash as result
- index => $index
-
Index name or id to use
- in => $in
-
Format for parsing input (string). One char is for one argument ('s' = string, 'n' = number, 'a' = array, '*' = anything (type is determined automatically))
Execute call request (added for backward compatibility with EV::Tarantool). See 'call' method.
Get Tarantool stats
Returns a HASHREF, consisting of the following data:
- arena
-
- size
-
Arena allocated size
- used
-
Arena used size
- slabs
-
Slabs memory use
- info
-
- lsn
-
Tarantool log sequence number
- lut
-
Last update time (current_time - box_info.replication.idle)
- lag
-
Replication lag
- pid
-
Process pid
- uptime
-
Server's uptime
- op
-
Total operations count for each operation (select, insert, ...)
- space
-
Tuples count in each space
count => 1,
tuples => [
{
_t1 => 'tt1',
_t2 => 'tt2',
_t3 => 456,
_t4 => 5
}
],
status => 'ok',
code => 0,
sync => 5
- count
-
Tuples count
- tuples
-
Tuples themeselves
- status
-
Status string ('ok')
- code
-
Return code (0 if ok, else error code (https://github.com/tarantool/tarantool/blob/master/src/box/errcode.h))
- sync
-
Request id
[undef, $error_msg, {
errstr => $error_msg,
status => 'error',
code => $error_code,
sync => 3
}]
- errstr
-
Error string
- status
-
Status string ('error')
- code
-
Return code (0 if ok, else error code (https://github.com/tarantool/tarantool/blob/master/src/box/errcode.h))
- sync
-
Request id
igorcoding, <igorcoding@gmail.com>, Mons Anderson, <mons@cpan.org>
Please report any bugs or feature requests in https://github.com/igorcoding/EV-Tarantool16/issues
Copyright (C) 2015 by igorcoding
This program is released under the following license: GPL