0

关于 ArangoDB 的 Key/Value 模型,有人知道每个 Value 的最大大小吗?我花了几个小时在互联网上搜索这些信息,但无济于事;你会认为这是机密信息。提前致谢。

4

1 回答 1

0

答案取决于不同的事物,例如存储引擎以及您的意思是理论限制还是实际限制。

对于 MMFiles,最大文档大小由启动选项确定(wal.logfile-size如果wal.allow-oversize-entries已关闭)。如果打开,则没有立即限制。

在 RocksDB 的情况下,它可能会受到一些服务器启动选项的限制,例如rocksdb.intermediate-commit-size、或.rocksdb.write-buffer-sizerocksdb.total-write-buffer-sizerocksdb.max-transaction-size

使用 arangoimport 导入 1GB JSON 文档时,您将遇到默认batch-size限制。您可以增加它,但似乎最大为 805306368 字节 (0.75GB)。HTTP API 似乎有同样的限制(/_api/cursor使用 bindVars)。

您应该记住:由于存储层的仅附加性质,改变文档可能是一个缓慢的操作。换句话说,具有新修订号的文档的新副本被保留,并且旧修订将在一段时间后被压缩(我不熟悉所有技术细节,但我认为这是公平的说法)。对于一个 500MB 的文档,在相当强大的系统上使用 RocksDB 更新或复制它似乎需要几秒钟。拥有许多但很小的文档要好得多。

于 2020-05-22T17:20:15.320 回答