Questions tagged [tarantool]

Tarantool is a Lua application server with a built-in database. It's best to think of as a Redis or Memcached with high level of customization. Alternatively, it's Node.JS with object persistency and master-master replication.

Tarantool is a Lua application server with a built-in database.

The key idea is in a new way of building Web applications - a data grid approach, when the database serves as the application backend as well, and there are many database instances running in parallel, to scale up and out.

Tarantool features:

  • a drop-in replacement for Lua 5.1, based on LuaJIT 2.0; simply use #!/usr/bin/tarantool instead of #!/usr/bin/lua in your script
  • Lua packages for non-blocking I/O, fibers and HTTP
  • document data model with secondary keys
  • two data engines: 100% in-memory with optional persistence and a 2-level disk-based B-tree, to use with large data sets
  • iteration over data in forward and reverse order
  • asynchronous master-master replication
  • authentication and access control
218 questions
2
votes
2 answers

How do I select several keys from tarantool at once, like with SELECT IN in SQL?

I want to select several records from Tarantool in one call, but don't see how can I pass several keys to space:get or space:select
Dmitry Sharonov
  • 471
  • 2
  • 12
2
votes
1 answer

How do I select a limited number of records from tarantool, like with SELECT LIMIT in SQL?

I want to perform a selection on a Tarantool space, using filtering and limiting the results, as I can do with a simple SQL query like "SELECT * FROM users WHERE age > 33 LIMIT 1". How can I achieve that?
akudiyar
  • 370
  • 2
  • 9
2
votes
1 answer

How to add another shard to production for tarantool Database, without downtime?

We use tarantool database (sharded using vshard) in production. We started directly with 4 shards. Now we want to increase it to 6 without downtime. But, after adding two more shards, rebalancer kicks in and it doesn't allow reads/writes to happen.…
jeevan sirela
  • 23
  • 1
  • 7
2
votes
2 answers

Any ways to use "space:delete" by part of partial key in Tarantool?

The documentation says "delete cannot work with partial keys". What is your recommendation how to solve it. For example create new index, use cycle delete or any way?
Ivan Medvedev
  • 63
  • 1
  • 4
2
votes
1 answer

Tarantool app memory limit

good day i'm a newibe to tarantool and i hava question about memory limit for client application inside tarantool i have in-memory database for 300 millions items and lua application that select part of them, after select i wrap result to 'class'…
anatoly.kryzhanosky
  • 185
  • 1
  • 1
  • 18
2
votes
1 answer

insert NULL values in tarantool using python

i'm having troubles with storing data in tarantool. In documentation stated that tarantool uses msgpack Data Types(https://tarantool.io/doc/1.7/book/box/data_model.html#data-types) . Msgpack has NULL, however python does not have NULL, also it seems…
UGeorge
  • 101
  • 2
  • 8
2
votes
1 answer

Sorting in tarantool with min() if several records have equal secondary index

local orders = box.schema.space.create('orders') box.schema.sequence.create('orderId') orders:create_index('id', {sequence='orderId'}) orders:create_index('price', {unique=false, parts={2, 'integer'}}) local bestOrder =…
farwayer
  • 3,872
  • 3
  • 21
  • 23
2
votes
1 answer

Tarantool queue via .Net

I use Tarantool as a database and Web API in my .Net project. But besides that, I would like to use the built-in Tarantool queues, but I could not find adapters to work with Tarantool queues under .Net (like this, this or this one). Is it possible…
iPhosgen
  • 53
  • 1
  • 10
2
votes
2 answers

Tarantool in Python - how to call auto_increment function

I need to call auto_increment function in Tarantool 1.6 using python client. I have tried without success: database = tarantool.connect("localhost", 3301) s = database.space("customer") s.call('auto_increment','foo') Could someone clarify how to…
M.E.
  • 4,955
  • 4
  • 49
  • 128
2
votes
1 answer

Tarantool - Named fields?

Is there any way to name fields similar to columns in SQL? The idea is that I might want to insert a customer record with: - Name - Phone - Email - Website some fields might be present sometimes, other not, and they might be presented in different…
M.E.
  • 4,955
  • 4
  • 49
  • 128
2
votes
1 answer

Can't connect to Tarantool container inside Docker through Nodejs

I want to connect to the tarantool cotainer using this code: import TarantoolConnection from 'tarantool-driver' let connection = new TarantoolConnection('192.168.99.100:3301'); connection.ping().then((res) => { console.log(res); }); Before that…
Nikita Ryanov
  • 1,520
  • 3
  • 17
  • 34
2
votes
0 answers

Tarantool sharding - how to search by secondary index?

For sharding on tarantool I'am using rocks https://github.com/tarantool/shard and it works perfect for searching by primary index. I have space events with primary key and secondary…
mbalus
  • 21
  • 2
2
votes
1 answer

Is it possible to select only keys (not whole tuple) from Tarantool DB?

Is it possible to select only keys (not whole tuple) from Tarantool DB space? Is there a function similar to something like this: keys = box.space.tester:select_keys{55}
2
votes
2 answers

Store date and time in tarantool

Suppose I need a field in tuple which should be date with time. Tarantool doesn't support date and time types out of the box. I see two solutions: Store date and time as string and parse it. Store date and time in epoch seconds and convert it when…
Vadeg
  • 1,156
  • 10
  • 22
2
votes
1 answer

Tarantool: limit/offset in index.indexName:pairs call

I need to fetch some records from space users. This space has a secondary index category_status_rating. I need select users with category=1, status=1, rating<=123456789: for _, user in box.space.users.index.category_status_rating:pairs({ 1, 1,…