问题标签 [tokyo-cabinet]
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.
nosql - 京都内阁和多个流程?
我已经阅读了文档,发现很少有关于访问单个 kyotocabinet 数据库的多个进程(读取器和写入器)。看来您可以创建多个读取器,但除非您指定 ONOLOCK 多个写入器将阻止尝试打开数据库。任何人都可以阐明这是如何工作的或是否可能?我知道KyotoTycoon 是一种选择,但我特别对KyotoCabinet 感到好奇。
c - 列表中的内存泄漏 tokyocabinet
使用后是否要使用该功能free()
:
或使用足够的:
我要free(p)
for:p = (lk_key*) tclistval(list,...)
还是tclistdel(list)
删除 list 的所有元素?
c - Tokyocabinet:循环遍历BTree文件
我通过光标遍历 BTree(来自文档的示例)
见下面的代码:
我得到了 562 418 条记录 tcbdbrnum()
,但我有循环,其中counter
超过 150 000 000 甚至更多......我没有循环完成。
可以是什么问题?
我发现循环大小为 150652 cylses,循环偏移量接近 1.3 * 150652 所以,我将文件增加到 1 042 638 个键,并且我有 loopsize = 280299 比率 recsize / loopsize = 3,73 ...
做什么,有unlooping?为什么我有循环?
所有密钥都是随机的,大小为 64 位(8 字节)。可以删除一些键。
tokyo-cabinet - 京都内阁 HashDB 插入不是 O(1)
我正在试验京都内阁 HashDB。我的数据库将增长到 110 TB。键是 20 字节,值是 128 KB。我正在尝试插入大约 5 亿条记录。这是迄今为止我得到的最好的表现:
时间以秒为单位。'n' 是输入的 10000 条记录的数量。例如,第 10000 条记录需要 1 秒。第 5 条 10000 条记录耗时 5 秒,以此类推。如您所见,在输入大约 200 万条记录后性能开始下降。我创建了存储桶编号设置为 70 亿的数据库,其他一切都是默认设置。我正在使用 C/C++ 库,并将内存映射容量设置为 30 GB(我有 32 GB RAM)db.tune_map(30LL << 30);
。
有什么方法可以将性能线性保持在每 10000 条记录大约 9-10 秒?
perl - TokyoCabinet 写入速度太慢
我有一个perl 脚本(在 Ubuntu 12.04 LTS 中)写入 26 个 TCH 文件。密钥大致均匀分布。在 300 万次插入后写入变得非常慢(平均分配给所有文件),速度从开始时的240,000 次插入/分钟下降到3 MM 插入后的 14,000 次插入/分钟。单独的分片文件不超过 150 MB,总体大小约为 2.7 GB。
在每个 TCH 文件插入 100K后,我对每个 TCH 文件运行优化,bnum为 4*num_records_then,选项设置为TLARGE,并确保 xmsiz 与 bnum 的大小匹配(如为什么东京暴君在调整 bnum 后速度会呈指数下降? )
即使在此之后,插入以高速开始,然后从 240k 插入/分钟缓慢降低到 14k 插入/分钟。可能是因为在单个脚本中保存了多个 tch 连接(26)?或者是否有配置设置,我错过了(会禁用日志帮助,但上面的线程说日志只有在 tch 文件变得大于 3-4GB 后才会影响性能,我的碎片是 <150MB 文件..)?
freebsd - 如何使用 ttservctl 文件启动东京暴君服务器
我成功东京暴君和东京内阁现在我必须在运行命令时启动东京暴君服务器
./ttservctl 开始
而不是启动服务器,它给了我错误,输出是
如何解决此错误我是东京暴君的新手,请指导!
c - 东京内阁在 *sp = rec->vsiz 上的 tcbdb.h 中给出分段错误;
我正在使用 Tokyo Cabinet 来创建持久存储数据库。
我正在使用void *tcbdbget(TCBDB *bdb, const void *kbuf, int ksiz, int *sp);
它在 tcbdb.h 文件中给出段错误*sp = rec->vsiz;
。
东京内阁有错误还是我遗漏了什么?
因为插入记录工作正常,这意味着所有 void 指针都被完美地插入,只是查找有问题。插入功能是 this bool tcbdbput(TCBDB *bdb, const void *kbuf, int ksiz, const void *vbuf, int vsiz);
。
tokyo-cabinet - 东京内阁:与 .tcb 文件一起创建的 .tcb.wal 文件。删除记录时 Db 大小不会减小
我正在使用 tokyo cabinets B+ 树 API 创建查找数据库。在 linux 环境中,我看到一个 .tcb.wal 文件与实际的 .tcb 数据库文件一起创建。该文件的大小为0。我想知道它是否是为帮助同步而创建的锁定文件。此外,当我从数据库中删除记录时,文件的大小不会减小。它的行为有什么原因吗?
c - 在 C 中使用 tokyo cabinet 按值自定义排序
我正在使用 tokyo cabinet 实现一个 btree,但我想知道是否可以对值进行排序。我知道我可以使用 atcbdbsetcmpfunc
为键设置自定义比较功能,但不确定值?
我问这个是因为大多数时候我只需要前 1000 条记录,假设我的值已排序。否则我将不得不对数百万条记录进行循环排序并获得前 1000 条记录,这可能会很慢。
例如:
hashtable - 东京内阁哈希表在达到 65 GB 时中断
我通过 PyTyrant 模块使用 Tokyo Cabinet 数据库,将数据存储在哈希表(*.tch 文件)中。当文件大小达到 65 GB 时,会出现以下错误:当向数据库添加新条目时,查询新键会给出“没有这样的键错误”。但是,当我查询所有键的列表时,会列出新键。此外,不能从表中删除有问题的条目。
谁能解释一下?
编辑: 'tcrmgr inform -st -port 1978 localhost' 在错误之前的输出:
并在添加另一条记录后,出现错误: