Java 塞式料仓长度小于14
我有一个非常复杂的业务对象,其中包含超过14个字符的变量名。我想知道为什么aerospike限制bin name length。简言之,答案是否定的。bin name硬编码为14个字符或更少。它与SSD上的每条记录一起存储,用于记录中的每个存储箱。因为每个记录都是自描述的,所以必须在每个记录的开销和最大bin名称大小之间进行权衡 是的,正如@pgupta所说,14个字符的限制是硬编码的。如果您确实想要保存,您可以做的是创建一个具有实际bin名称的映射,即14个字符长的id和应用程序级别的业务对象名称。可能会创建一个Java 塞式料仓长度小于14,java,spring-data,aerospike,Java,Spring Data,Aerospike,我有一个非常复杂的业务对象,其中包含超过14个字符的变量名。我想知道为什么aerospike限制bin name length。简言之,答案是否定的。bin name硬编码为14个字符或更少。它与SSD上的每条记录一起存储,用于记录中的每个存储箱。因为每个记录都是自描述的,所以必须在每个记录的开销和最大bin名称大小之间进行权衡 是的,正如@pgupta所说,14个字符的限制是硬编码的。如果您确实想要保存,您可以做的是创建一个具有实际bin名称的映射,即14个字符长的id和应用程序级别的业务对象
映射
或枚举您能解释一下吗必须在每个记录的开销和最大bin名称大小
之间进行权衡吗?好的,如果数据库设计者给您一个假设,即bin名称最多64个字符,那么对于记录中的每个bin,您将存储所有这些字符字节,不管你是用过还是用过。因此,作为一个设计决策,数据库设计者必须决定14个字符是否足够好——因为这个空间成为记录的相关开销。哦!是的,我明白了。你是对的。但14看起来仍然是一个奇数。使用它是否有一些特定的性能优势?@pgupta,无论您是否需要,我们都不需要占用N个字节。Aerospike 4.2(发布时)只需要bin名称本身的字节数+长度的1字节。@swayamraina,我不确定具体将大小限制为14个字符的确切动机。但当前将长度限制为少量字符的动机是,当前需要将bin名称与每条记录一起写入磁盘。大小限制是一种保护措施,可以防止用户无意中用大的存储箱名覆盖存储层。