代码之家  ›  专栏  ›  技术社区  ›  Vishal Sharma

主索引所需的内存

  •  1
  • Vishal Sharma  · 技术社区  · 6 年前

    According to Aerospike's website ,主索引将占用RAM中的空间,具体如下:

                64 bytes × (replication factor) × (number of records)
    

    如果这是每个副本将占用的空间,或者这是主索引总共占用的空间,即每个副本所需空间的总和,我会感到困惑。

    1 回复  |  直到 6 年前
        1
  •  4
  •   pgupta    6 年前

    您在Aerospike中存储的每个记录都有两个组件——数据部分和RAM中的主索引(需要64个字节),用于定位数据——您存储数据的位置。(您可以选择要存储数据部分的位置—它可以在进程RAM或SSD驱动器中,以及其他奇特的选项中。)Aerospike是一个分布式数据库—因此通常具有多个节点,您可以在这些节点上存储记录,并且易于水平扩展。为了避免丢失节点时丢失数据,通常会要求Aerospike存储每个记录的两个副本(r=2),每个副本位于不同的节点上。因此,当您只查看主索引在整个节点集群中的RAM使用情况时,您需要n x r x 64字节的RAM,仅用于PI。这是仅在集群中的所有节点上存储主记录和副本记录的主索引所需的所有RAM。

    因此,如果您在一个5节点集群上有100个记录、2个副本,那么在5个服务器上,仅为pi需要的RAM将是100 x 2 x 64字节,即每个服务器将需要大约(100 x 2 x 64)/5字节的RAM用于pi存储。(实际上,在企业版中,用于PI的RAM至少以1GB块的形式分配。)