关于ArangoDB的KeyValue模型,有人知道每个Value的最大大小吗? 我花了几个小时在互联网上搜索这个信息,但没有用;你会认为这是一个机密信息。先谢谢你了。
答案取决于不同的东西,比如存储引擎和你指的是理论上的还是实际的限制。
在MMFiles的情况下,最大文件大小由启动选项决定。wal.logfile-size
如果 wal.allow-oversize-entries
是关闭的。如果是开启,那么就没有直接的限制。
对于RocksDB来说,它可能会受到一些服务器启动选项的限制,如 rocksdb.intermediate-commit-size
, rocksdb.write-buffer-size
, rocksdb.total-write-buffer-size
或 rocksdb.max-transaction-size
.
当使用 arangoimport 导入一个 1GB 的 JSON 文档时,你将会遇到默认的 batch-size
限制。你可以增加它,但似乎最大限度的805306368字节(0.75GB)。HTTP API似乎也有同样的限制(/_api/cursor
与bindVars)。)
你应该记住的是:由于存储层的仅附加性质,突变文档可能是一个缓慢的操作。换句话说,带有新修订号的文档新副本会被持久化,而旧的修订版会在一段时间后被压缩掉(我不熟悉所有的技术细节,但我认为这是公平的说法)。对于一个500MB的文档,在一个相当强大的系统上使用RocksDB更新或复制它似乎需要几秒钟。有很多但很小的文档会好很多。