tarantool asyncio connector
Python Lua
Latest commit 832b265 Dec 21, 2016 @shveenkov bump version
Permalink
Failed to load latest commit information.
tests fix memory leack Apr 1, 2015
.gitignore inital aiotarantool Mar 28, 2015
MANIFEST.in inital aiotarantool Mar 28, 2015
README.rst fix for #3 warns Dec 11, 2015
README.txt fix doc Mar 30, 2015
aiotarantool.py bump version Dec 20, 2016
requirements.txt fix for #3 warns Dec 11, 2015
setup.py fix for #3 warns Dec 11, 2015

README.rst

Tarantool connection driver for work with asyncio

Connector required tarantool version 1.6:

$ pip install aiotarantool

Also, you need to install tarantool-python for python 3 from github:

$ pip install git+https://github.com/tarantool/tarantool-python.git@master

Try it example:

import asyncio
import aiotarantool

cnt = 0

@asyncio.coroutine
def insert_job(tnt):
    global cnt

    for it in range(2500):
        cnt += 1
        r = yield from tnt.insert("tester", (cnt, cnt))

loop = asyncio.get_event_loop()

tnt = aiotarantool.connect("127.0.0.1", 3301)
tasks = [asyncio.async(insert_job(tnt))
         for _ in range(40)]

loop.run_until_complete(asyncio.wait(tasks))
loop.run_until_complete(tnt.close())
loop.close()

Under this scheme the aiotarantool driver makes a smaller number of read/write tarantool socket.

See benchmark results time for insert/select/delete 100K tuples on 1.5KBytes:

call tarantool aiotarantool
insert 35.938047 12.701088
select 24.389748 12.746204
delete 35.224515 13.905095