Xodus:是否有键 and/or 值的最大长度?

Xodus: Is there a maximum length of a key and/or value?

Xodus 中的键 and/or 值 ByteIterable 是否有最大长度?如果有硬限制,该限制是多少(即多少字节)?如果 ByteIterable 超过该限制会怎样?

Xodus 是一个日志结构的数据库,所有的更改都按顺序写入日志,这是一个无限序列的.xd 文件。在最低级别上,任何 key/value 对都作为单个记录写入,该记录只能存在于单个 .xd 文件中。这意味着键和值的大小之和不能超过单个 .xd 文件的大小。更重要的是,存储 key/value 对大小接近单个 .xd 文件的大小是不好的,因为这会创建一个具有大量不可移动(通过数据库垃圾收集器)空闲的数据库 space。尝试写入太大的 key/value 对将失败并抛出 TooBigLoggableException

单个 .xd 文件的大小由 EnvironmentConfig.LOG_FILE_SIZE 设置控制。默认是8388608字节(0x800000,8MiB),所以问题的答案就像key和value的最大长度是8388608(0x800000)字节。

要处理任意大小的数据,请使用Virtual File Systems