Xodus:键和/或值的最大长度吗?

时间:2018-11-09 08:24:27

标签: java xodus

Xodus中的键和/或值ByteIterable是否有最大长度?如果有硬限制,那么该限制是多少(即多少个字节)?如果ByteIterable超出该限制,将会发生什么?

2 个答案:

答案 0 :(得分:5)

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

单个.xd文件的大小由EnvironmentConfig.LOG_FILE_SIZE设置控制。默认情况下为8388608字节(0x800000,8MiB),因此问题的答案就像键的最大长度一样,其值为8388608(0x800000)字节。

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

答案 1 :(得分:-1)

似乎应该是Integer.MAX_VALUE。将进一步搜索并提供更新。