关于 ArangoDB 的 Key/Value 模型,有人知道每个 Value 的最大大小吗?我花了几个小时在互联网上搜索这些信息,但无济于事;你会认为这是机密信息。提前致谢。
1 回答
答案取决于不同的事物,例如存储引擎以及您的意思是理论限制还是实际限制。
对于 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 更新或复制它似乎需要几秒钟。拥有许多但很小的文档要好得多。