问题标签 [kyotocabinet]
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.
java - 创建和访问数据库的简单方法:(列表和 HashMap) 在java中
我不熟悉数据库,我通常受益于内存和数据结构,例如 Maps。但是现在我的数据很大,通过将其读入内存,它很快就会溢出,然后系统完全冻结(linux 12.04 LTS)。
所以我认为数据库可能是一个好主意,但是我需要一种快速而直接的方式来实现和访问它。它也应该是一种快速的数据库。例如京都或类似的东西。
所以我想将以下数据放入数据库:
然后以这种方式访问它们:通过键访问哈希图,通过列表索引访问列表。
提前致谢!
database - KyotoCabinet 数据库并发写入的快照
在京都内阁数据库中是否可以安全地制作数据库快照并同时写入数据库?
KyotoCabinet 数据库类 kyotocabinet.DB(用于 JAVA 等其他语言)提供以下方法:
这两个操作都可能很长。我没有直接测试这种方法,而是使用kcpolymgr
来自不同进程的实用程序。我发现这些操作会阻塞其他编写器进程-es ( kcpolymgr set
),直到操作完成。
当写入来自同一进程中的其他线程时,行为是否相同?
java - Kyotocabinet 和 Scala(Java):打开的 DB 文件的限制?
我编写使用大量 Kyotocabinet Db 文件的 scala 应用程序(我需要一次打开 500-3k 小 kyotocabinet 文件)。
但是在打开(创建)512个数据库文件后,我有一个错误“错误:成功:没有错误”,并且没有创建新的数据库文件。
谷歌搜索后,我在这里发现了与 Tokyo Cabinet + Java 类似的问题:https ://groups.google.com/forum/#!msg/tokyocabinet-users/ve6OsRm_hyU/hXC7795iqPsJ但没有解决方案。
那么有什么关系呢?如何在一个应用程序中打开更多的 kyotocabinet 文件?京都内阁可能有一些错误吗?
kyotocabinet - 在 OSX 10.9 上编译 kyotocabinet-1.2.76
我正在尝试在 OSX 10.9 上从此源编译京都内阁:
http://fallabs.com/kyotocabinet/pkg/kyotocabinet-1.2.76.tar.gz
但它失败了:
据我了解,C++ 库在 OSX 10.9 中发生了变化,但我不确定如何找到解决方案。任何帮助,将不胜感激。
database - KyotoCabinet (TreeDB) 的性能严重下降
我选择 TreeDB 作为京都内阁后端,希望它能够扩展到巨大的价值。不幸的是,有一个问题:
我打开一个 TreeDB,生成 2 个随机长度的随机字符串 ( 0<len<1024
) 并将它们分别用作键和值。编码:
这是什么原因?
更新:
我之前应该澄清一下,我不是在精确测量 KyotoDB 吞吐量之后,而是试图测试 KDB 的可扩展性,即 r/w 吞吐量如何随着数据库中键数量的增加而表现,即摊销成本添加/读取记录。
创建 1 个随机字符串的摊销成本为 O(1),创建 N 个随机字符串的摊销成本为 O(N)。只要每 1 个 DB 操作创建的随机字符串数量恒定,它所施加的惩罚就每秒组合操作而言是恒定的,因此它对每秒DB 操作数没有摊销影响。
我测量了随机字符串创建的吞吐量:
代码: http: //pastebin.com/yfVXYbSt
正如所料,成本为 O(n)。还要比较时间,例如创建随机字符串时 8192000 条记录大约 8 分钟,将它们写入数据库时大约 5 小时 5 分钟。
更新#2:
这似乎与唯一/冲突键有关。在此代码中:http: //pastie.org/8906676 我以类似于此处使用的方法的方式使用键和值:http: //blog.creapptives.com/post/8330476086/leveldb-vs-kyoto-cabinet -my-findings ( http://www.pastie.org/2295228 ),即生成带有线性递增整数后缀的“key”(“key1”、“key2”等)。
(更新后的代码也使用每 50,000 次写入的事务,这似乎有一些影响)
现在吞吐量下降很慢(如果确实存在的话):
再一次,请查看吞吐量的趋势,而不是绝对值。
理论上 TreeDB 是 B+ 树,因此向其写入记录应该是 ~O(log n)。
但事实并非如此。看起来好像在某处存在哈希冲突。
python - RocksDB 可以处理多个只读客户端吗?
我需要一个键值数据库,比如 redis 或 memcached,但不是在内存中,而是在磁盘上。在填充数据库(我们定期从头开始)之后,我实际上只需要get
操作,但是来自许多不同的进程(所以京都内阁和 LevelDB 不适合我)。
我需要大约 500 万个键和~10-30gb
数据,所以其他一些简单的数据库也不能正常工作。
我找不到任何关于RocksDB是否可以处理多个只读客户端的信息;在我的操作系统上构建并不简单,所以我想在这样做之前先问一下。如果不能,是否有任何数据库可以工作?最好使用 Ubuntu 包和 Python 绑定;-)。
我们现在只是在使用很多很多的小文件,但这真的很糟糕,因为我们想要简单的备份、复制等。我也怀疑这可能会导致速度变慢,但这并不重要。
tokyo-cabinet - 京都内阁和东京内阁都死了吗?
这些项目听起来很有趣,但我没有看到任何积极的开发,并且代码库依赖于过时的软件(GLIBC_2.14...)
还是我找错地方了?
php - 京都内阁`kchashmgr get`命令的输出格式是什么?
你好 Stackoverflow 同胞。
我正在寻找从京都大亨内阁文件中的缓存密钥中提取信息,特别是从京都内阁实用程序kchashmgr的输出中(参见:http ://fallabs.com/kyotocabinet/util.html#kchashmgr )
我试图从二进制/十六进制输出中提取kchashmgr的输出中的到期日期。
上面的输出格式是什么,所以从命令行 shell 实用程序我可以这样做:
最初我以为我可以对其进行压缩(安装需要 ZLIB),但这显然行不通。我还尝试使用-px开关来查看是否有帮助。
注意:我正在寻找一种可能比使用 PHP 脚本更快的 shell 解决方案。
感谢您花时间讨论这个问题。
附言
database - 如何将 tokyocabinet 内存中的哈希表数据库转储到文件中?
有没有一种简单的方法可以将 tokyocabinet 内存数据库转储到文件中?我在东京的文档中没有找到任何关于它的信息。有谁知道另一个提供这种东西的nosql数据库?我正在寻找一个非常高效的内存哈希表数据库,能够插入大约 80000 条记录/秒。转储到文件将每 10 秒发生一次。
谢谢
database - 京都大亨从内存中删除过期的录音机
我们有京都大亨 [Kyoto Tycoon 0.9.55 (2.18) on Linux (Kyoto Cabinet 1.2.75)] 的小型设置,它是完全内存数据库并在 3 中共享,每个共享的主从架构。
目前,我们对保留在内存中的过期记录存在问题,并且内存利用率上升。
当我检查此文档http://fallabs.com/kyototycoon/spex.html#tips时 ,我根据描述在其中找到“ktremotemgr Vacuum”,它执行完整的 GC 操作。
但我一直在寻找另一种方式,比如配置参数,它负责从内存中删除过期记录。
请对此有任何帮助
谢谢