标签: tarantool

什么时候使用Redis?什么时候去塔兰图尔?

我不想进行详细的比较。我也不想定义“什么是最好或最快的”内存数据库。

它们都很相似,所以我想了解一下关键差异的概述。

那么它们是什么?

database in-memory nosql redis tarantool

7
推荐指数
1
解决办法
1472
查看次数

何时使用光纤以及何时在Tarantool中使用协同程序?

在Tar​​antool中,当Lua代码作者希望Tarantool安排执行时,会使用光纤吗?当Lua代码作者希望控制执行时,是否使用了协同例程(在Tarantool/LuaJIT过程中)?

tarantool

6
推荐指数
1
解决办法
540
查看次数

如何在 Tarantool Cartridge 角色的 `init` 函数中获取自定义选项?

Tarantool Cartridge 角色文件有一个函数init

我想从instance.yml文件中获取我的自定义选项。但是opts变量没有它。

我该怎么做?

lua cartridge tarantool tarantool-cartridge

6
推荐指数
1
解决办法
113
查看次数

连接到 tarantool 墨盒应用程序的默认密码是什么

我在 tarantool 墨盒(集群)上有一个默认应用程序。我想连接到集群的路由器。我使用命令:

tarantoolctl connect admin:_password_@localhost:3301
Run Code Online (Sandbox Code Playgroud)

在哪里可以找到默认密码?

tarantool tarantool-cartridge

6
推荐指数
1
解决办法
248
查看次数

如何启动tarantool控制台?

我安装了tarantool(tarantool_box)和tarantool-client.我可以开始tarantool了

/usr/bin/tarantool_box --background
Run Code Online (Sandbox Code Playgroud)

但是当我尝试连接到服务器时

/usr/bin/tarantool
Run Code Online (Sandbox Code Playgroud)

我只看到管理控制台

localhost>
Run Code Online (Sandbox Code Playgroud)

并且只能使用一些命令和类似SQL的查询.我不能使用用户指南中的任何命令,几乎所有以lua失败开头的命令:

lua console = require('console')
---
error: 'Lua error: [string "local console = require(''console'')"]:1: attempt to call global ''require'' (a nil value)'
...
Run Code Online (Sandbox Code Playgroud)

lua tarantool

5
推荐指数
1
解决办法
699
查看次数

如何正确备份Tarantool memtx?

设定:

tarantool实例,使用memtx / vinyl存储。box.cfg.snapshot_period(memtx多长时间获取一次磁盘快照)设置为14400(每4小时一次)。

用户几乎永久地将有价值的承诺提交给数据库。

备份系统:

我每15分钟执行一次备份,方法是调用box.backup.start()并使用一些外部脚本将列出的文件复制到备份存储中。

最近,我发现复制的文件的校验和仅在拍摄快照后(每4小时)才更改。

我已经检查了* .xlog(据我所知,这是memtx将所有信息提交的地方)的文件是否包含在备份文件中,而没有。

我想说的是:

  1. 有什么办法可以备份xlog文件吗?仅将它们与文件列表的其余部分一起复制就足够了吗?还是在box.backup.start()和box.backup.stop()之间的复制过程中更改它们并使它们变得不一致?

  2. 如果在快照之间进行备份,box.backup.start()是否有任何参数可以备份存储在memtx中的所有信息?

我通过在每次备份之前拍摄快照来查看可能的解决方法,但是我想确保在实施xlog文件之前没有办法对其进行备份。

backup tarantool

5
推荐指数
1
解决办法
158
查看次数

在 Tarantool 中处理日期的正确方法是什么?

有几种方法可以获得时间Tarantool

  • 使用clock模块
  • 使用fiber.time功能
  • 使用 os.date

但是处理日期的正确方法是什么?

tarantool

5
推荐指数
1
解决办法
195
查看次数

由于磁盘写入错误,Tarantool 无法启动

我正在尝试从头开始在 Docker 中启动 Tarantool(没有现有数据)。我使用他们在教程中建议的 Docker 命令并在 MacOS 10.15.6 (Catalina) 上的 Docker Desktop 2.4.0.0 下运行它:

docker run \
  --name mytarantool \
  -d -p 3301:3301 \
  -v /data/dir/on/host:/var/lib/tarantool \
  tarantool/tarantool:2.5.1
Run Code Online (Sandbox Code Playgroud)

/data/dir/on/host替换为我在笔记本电脑上的本地目录)。我也用最新版本 2.6.0 尝试过。

容器在启动后很快终止。docker logs显示这个:

2020-10-02 20:51:10.331 [1] main/103/tarantool-entrypoint.lua C> Tarantool 2.6.0-0-g47aa4e01e
2020-10-02 20:51:10.331 [1] main/103/tarantool-entrypoint.lua C> log level 5
2020-10-02 20:51:10.332 [1] main/103/tarantool-entrypoint.lua I> mapping 268435456 bytes for memtx tuple arena...
2020-10-02 20:51:10.332 [1] main/103/tarantool-entrypoint.lua I> mapping 134217728 bytes for vinyl tuple arena...
2020-10-02 20:51:10.335 …
Run Code Online (Sandbox Code Playgroud)

docker tarantool

5
推荐指数
1
解决办法
277
查看次数

如何在 Tarantool Docker 容器中查看 print() 结果

我正在使用tarantool/tarantool:2.6.0Docker 映像(目前是最新的)并为该项目编写 lua 脚本。我试图找出如何查看print()调用函数的结果。在没有 print() 工作的情况下调试我的代码是非常困难的。
在 tarantool 控制台中 print() 也无效。

使用简单的打印()

文档说 print() 适用于stdout,但是当我通过以下方式查看容器日志时没有看到任何结果docker logs -f <CONTAINER_NAME>

我还尝试将容器的日志驱动程序设置为local. 比我一次打印到容器的日志,但只有一次......

容器的/var/log目录始终为空。

使用 box.session.push()

box.session.push()在控制台中使用工作正常,但是当我在 lua 脚本中使用它时:

-- app.lua
function log(s)
  box.session.push(s)
end

-- No effect
log('hello')

function say_something(s)
    log(s)
end

box.schema.func.create('say_something')
box.schema.user.grant('guest', 'execute', 'function', 'say_something')
Run Code Online (Sandbox Code Playgroud)

然后say_something()像这样从 nodeJs 连接器调用:

const TarantoolConnection = require('tarantool-driver');

const conn = new TarantoolConnection(connectionData);
const res = await conn.call('update_links', 'hello');
Run Code Online (Sandbox Code Playgroud)

我得到错误: 在此处输入图片说明

有什么建议?谢谢!

tarantool

5
推荐指数
1
解决办法
143
查看次数

无法在slab分配器中为memtx_tuple Tarantool分配字节

写入 Tarantool memtx 时,客户端上出现“无法为 memtx_tuple 分配 153 个字节”错误的原因是什么?

lua tarantool

4
推荐指数
1
解决办法
1352
查看次数