Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 塞式料仓长度小于14_Java_Spring Data_Aerospike - Fatal编程技术网

Java 塞式料仓长度小于14

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和应用程序级别的业务对象

我有一个非常复杂的业务对象,其中包含超过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名称与每条记录一起写入磁盘。大小限制是一种保护措施,可以防止用户无意中用大的存储箱名覆盖存储层。