关于ArangoDB的键/值模型,有人知道每个值的最大大小吗?我花了数小时在Internet上搜索此信息,但无济于事。您会认为这是机密信息。预先感谢。
答案 0 :(得分:0)
答案取决于不同的事物,例如存储引擎以及您指的是理论极限还是实际极限。
对于MMFiles,如果关闭 public List<Test> findByExample(Test bean) {
ExampleMatcher matcher = DefaultExampleMatcher.exampleMatcher();
Example<FiledReport> exampleQuery = Example.of(bean, matcher);
return testRepo.findAll(exampleQuery);
}
,则最大文件大小由启动选项wal.logfile-size
确定。如果启用,则没有立即限制。
对于RocksDB,它可能受到某些服务器启动选项的限制,例如wal.allow-oversize-entries
,rocksdb.intermediate-commit-size
,rocksdb.write-buffer-size
或rocksdb.total-write-buffer-size
。
在使用arangoimport导入1GB JSON文档时,您将遇到默认的rocksdb.max-transaction-size
限制。您可以增加它,但最大显示为805306368字节(0.75GB)。 HTTP API似乎有相同的限制(bindVars为batch-size
)。
您应该记住的是:由于存储层的仅追加性质,对文档进行变异可能是一项缓慢的操作。换句话说,将保留具有新修订号的文档的新副本,并且稍后会压缩旧修订版(我不熟悉所有技术细节,但是我认为这是可以公平地说的)。对于一个500MB的文档来说,在相当强大的系统上使用RocksDB似乎需要花费几秒钟来更新或复制它。拥有许多但很小的文档会更好。