Skip to content

Instantly share code, notes, and snippets.

@locker
locker / varbinary_luac_ffi.diff
Last active June 13, 2023 13:35
Patch for Tarantool@41af3258487e that adds varbinary constructor in Lua C and FFI
diff --git a/src/lua/init.c b/src/lua/init.c
index c9dc6a49ac93..97d5dfdd2fd4 100644
--- a/src/lua/init.c
+++ b/src/lua/init.c
@@ -828,6 +828,32 @@ luaT_set_module_from_source(struct lua_State *L, const char *modname,
lua_pop(L, 1); /* modfile */
}
+struct varbinary {
+ size_t len;
@locker
locker / tnt-lost-msg.c
Last active August 5, 2021 10:59
Checks if Tarantool drops messages when client connection is closed
/************************ BUILD & RUN ************************
gcc tnt-lost-msg.c -o tnt-lost-msg \
-I$TARANTOOL_C_INCLUDE -L$TARANTOOL_C_LIB -ltarantool && \
LD_LIBRARY_PATH=$TARANTOOL_C_LIB ./tnt-lost-msg
*************************************************************/
#include <err.h>
#include <stddef.h>
@locker
locker / tnt-bench-future-pairs.lua
Created August 4, 2021 15:29
Tarantool net.box benchmark using future:pairs
clock = require('clock')
fiber = require('fiber')
net_box = require('net.box')
jit_p = require('jit.p')
cpuprof = require('gperftools.cpu')
URI = '127.0.0.1:3301'
ITERATIONS = 1000
CONCURRENCY = 2000
@locker
locker / tnt-bench.lua
Created July 23, 2021 10:17
Tarantool net.box benchmark
clock = require('clock')
fiber = require('fiber')
net_box = require('net.box')
URI = '127.0.0.1:3301'
SPACE = 'T'
TIMEOUT = 5
ITERATIONS = 3000
CONCURRENCY = 2000
@locker
locker / tarantool-fiber-cond-using-ffi.patch
Created July 9, 2021 16:20
POC: fiber.cond using ffi
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 324574fec748..1f55c37b0766 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -117,7 +117,6 @@ set (server_sources
lua/digest.c
lua/init.c
lua/fiber.c
- lua/fiber_cond.c
lua/fiber_channel.c
@locker
locker / tarantool-net-box-do-not-use-fiber-cond.patch
Created July 9, 2021 16:11
POC: do not use fiber.cond in Tarantool net.box
diff --git a/src/box/lua/net_box.lua b/src/box/lua/net_box.lua
index 3878abf21914..04e3f6c6b5a2 100644
--- a/src/box/lua/net_box.lua
+++ b/src/box/lua/net_box.lua
@@ -367,7 +367,7 @@ local function create_transport(host, port, user, password, callback,
local timeout = iterator.timeout
repeat
local ts = fiber_clock()
- request.cond:wait(timeout)
+ fiber.sleep(timeout)
@locker
locker / tnt-bench-call.lua
Created July 9, 2021 09:48
Tarantool net.box.call microbenchmark
clock = require('clock')
fiber = require('fiber')
net_box = require('net.box')
function test(n_args)
print('==== TEST(' .. n_args .. ' ARGS) ====')
local call_args = {}
for i = 1, n_args do
table.insert(call_args, {i, 123, {i, "abc", "def"}})
end
@locker
locker / tnt-bench-fiber.lua
Created July 8, 2021 14:08
Tarantool net.box connector microbenchmark implemented using fibers
clock = require('clock')
fiber = require('fiber')
net_box = require('net.box')
function test(method)
print('==== TEST(' .. method .. ') ====')
local conn = net_box.connect('127.0.0.1:3301')
local n_iters = 500
local n_reqs_per_iter = 2000
local n_reqs = n_iters * n_reqs_per_iter
@locker
locker / tarantool-net-box-call-in-c.patch
Last active July 8, 2021 14:29
POC: Rewrite Tarantool net.box.call in C
diff --git a/src/box/lua/net_box.c b/src/box/lua/net_box.c
index 3f43872ca2e4..edd7ea90b4c7 100644
--- a/src/box/lua/net_box.c
+++ b/src/box/lua/net_box.c
@@ -38,13 +38,16 @@
#include "box/iproto_constants.h"
#include "box/lua/tuple.h" /* luamp_convert_tuple() / luamp_convert_key() */
#include "box/xrow.h"
+#include "box/xrow_io.h"
#include "box/tuple.h"
@locker
locker / tnt-bench.lua
Created July 8, 2021 12:46
Tarantool net.box connector microbenchmark
clock = require('clock')
fiber = require('fiber')
net_box = require('net.box')
function test(method)
print('==== TEST(' .. method .. ') ====')
local conn = net_box.connect('127.0.0.1:3301')
local n_iters = 500
local n_reqs_per_iter = 2000
local n_reqs = n_iters * n_reqs_per_iter