问题标签 [tarantool]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
342 浏览

tarantool - tarantool SQL 支持在哪里?

我无法在 tarantool community 1.9 中执行任何 SQL 语句。

很多地方都说1.8版本支持:

https://medium.com/@Dimitryophoto/mail-ru-groups-tarantool-dbms-now-supports-sql-6e2636a0abef

http://ocelot.ca/blog/blog/2017/12/14/the-tarantool-sql-alpha/

发生了什么事?它已从 1.9 版中删除,仅适用于企业版?

0 投票
1 回答
421 浏览

lua - Tarantool 应用程序内存限制

美好的一天,我是 tarantool 的新手,我对 tarantool 内的客户端应用程序的内存限制有疑问,我有 3 亿个项目的内存数据库和选择其中一部分的 lua 应用程序,选择后我将结果包装到“”更简单的代码交互。例如:

和用法:

在大多数情况下第一次运行时它运行成功,但第二次它以 100% 的概率失败并显示消息(tarantool 消息):

我了解,内存使用存在问题(未释放的内存),但我对限制有疑问 - lua 应用程序是否有一些限制?因为我在监视器中看到内存消耗并注意到有足够的可用内存并且在应用程序开始使用超过 1.2 Gb 后出现故障

0 投票
1 回答
109 浏览

tarantool - Tarantool 的缓存一致性

  • 我了解 Tarantool 在存储过程中有 ACID 事务。我的问题是:它是否还确保内存数据与持久文件系统数据同步?例如,如果我使用存储过程更改 5 条记录,并且在将更改写入 WAL 文件时出现问题,内存缓存是否会回滚到所有 5 条记录的原始值?

  • 此外,当更新事务正在进行时,其他读者是否会看到“脏”的未提交记录或记录的一致视图,因为这些记录在事务开始之前就存在?

谢谢

0 投票
2 回答
414 浏览

c - 重新加载模块而不重新启动服务器

再会!我有一个关于在 tarantool 中重新加载 c 模块的小问题,例如:我有 c 模块,它公开了一个方法:

另外我声明了入口点:

现在,我在 tarantool 中加载这个模块(“testmodule.so”):

现在我从我的 c# 客户端调用这个方法:

它按预期工作 - 执行方法计算并返回结果

但是如果我想更新我的模块而不是问题开始:在我替换so文件并调用计算方法后,我的tarantool重新启动,我可以在dmesg中看到类似“tarntool invalid opcode in testmodule.so”的内容

阅读文档后,我在函数定义中看到了额外的参数,如下所示:

但在此之后,如果我从 c# 调用它,我会收到异常消息“无法动态加载函数未定义符号计算”

我在 ubuntu 上使用 tarantool 1.7 我用 gcc 8.1.0 编译

0 投票
1 回答
287 浏览

python - Tarantool 和 MySQL 与 Django 的使用

我如何将 Tarantool 与 Django 和 MySQL 结合使用进行缓存(而不是 Redis)和/或从某种意义上说所有读取事务都进入 Tarantool(在确保 MySQL 复制之后)并且所有写入进入 MySQL(首选选项)有样品吗?

0 投票
2 回答
288 浏览

backup - 如何正确备份 Tarantool memtx?

设置:

tarantool 实例,使用 memtx/vinyl 存储。box.cfg.snapshot_period(memtx 拍摄磁盘快照的频率)设置为 14400(每 4 小时一次)。

用户几乎永久地将他们有价值的提交提交到数据库中。

备份系统:

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

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

我已经检查了备份文件中是否包含任何 *.xlog(据我所知,memtx 将所有信息放在提交上的位置)文件中 - 但它们没有。

我想澄清的事情:

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

  2. box.backup.start() 是否有任何参数来备份所有信息,如果在快照之间发生备份,则存储在 memtx 中?

通过在每次备份之前拍摄快照,我看到了可能的解决方法,但我想确保在实施之前无法备份 xlog 文件。

0 投票
1 回答
408 浏览

lua - 如何在 Tarantool 中运行复杂的查询

我一直使用关系数据库,最近决定将性能关键服务从 SQL Server 迁移到 Tarantool,希望能够利用快速的内存搜索和处理。在计划迁移时,我有几个问题。

我有一张包含大约一百万条记录的表格,其中包含定价信息,这意味着我主要处理数字和 uuid。首先,我需要运行一个包含多个条件的选择来获取数据的子集,例如

Q1:在 Lua 中运行这样的查询的策略是什么?我是为谓词中的每个字段创建一个索引,还是可以使用一个二级复合索引?

Q2:在 SQL (box.sql.execute) 中运行这样的查询会比在纯 Lua 中更方便吗?它会比在纯 Lua 中运行相同的查询慢很多吗?

Q3:如果我使用 SQL,是否可以查看执行计划以确保我运行的查询确实使用了我在空间中定义的索引?

好的,在获得第一个查询的结果后,我需要分析数据,然后根据分析结果,对第一个查询返回的数据集再运行一个查询。

Q4:Tarantool 可以帮我处理中间数据集吗?更具体地说,我可以利用空间中创建的索引以某种方式对元组的中间子集运行更多查询吗?或者,我需要实施替代策略,例如将 intrim 结果重新添加到具有预定义索引的临时空间,然后再进行选择,或者自己实施进一步搜索?

谢谢!

0 投票
1 回答
197 浏览

tarantool - tarantool-c 中的 read_reply 太慢了

我正在设置一个c服务器并使用 tarantool 作为数据库使用 tarantool-c。但是,每次我设置read_reply()每秒请求时,它就像使用 mysql 一样。如何解决?

0 投票
2 回答
784 浏览

postgresql - 一起使用 Tarantool 和 Postgres

我正在构建一个预测高负载的项目。我需要一些缓存系统,而 Tarantool 看起来非常适合我的任务。我很好奇是否可以将 Tarantool 用作缓存系统(人们说它具有某种智能缓存),但是将 Postgres 串联作为主存储,因为将来我们想向客户端等显示一些统计数据,我怀疑 Tarantool 没有复杂的分组和加入可能性。

好的,我的问题是 Tarantool 是否有可能在某种事务中缓存并保存到 Postgres 中,所以我永远不会出现不一致。抱歉这里没有显示任何代码,我只是没有。

0 投票
2 回答
260 浏览

tarantool - 有什么方法可以通过 Tarantool 中的部分键使用“空格:删除”?

文档说“删除不能使用部分键”。你有什么建议如何解决它。例如创建新索引,使用循环删除或任何方式?