B+;ApacheIgnite中的树和索引页

B+;ApacheIgnite中的树和索引页,ignite,Ignite,我试图理解ApacheIgnite的B+树和索引页的用途,如下所述: 我有几个问题: 索引页到底包含什么?属于索引页的键的哈希代码值的有序列表,以及将用于定位和索引到数据页以存储/获取键值对的“其他”信息 由于散列代码正在索引页中使用,如果发生冲突会发生什么情况 对于“典型”应用程序,我们是否期望数据页的数量远高于索引页的数量?(因为数据页包含键值对) 我们使用ignite.getOrCreateCache(名称)创建的分布式缓存与内存区域之间存在什么类型的关系?1对1、多对1、1对多还是多对多

我试图理解ApacheIgnite的B+树和索引页的用途,如下所述:

我有几个问题:

  • 索引页到底包含什么?属于索引页的键的哈希代码值的有序列表,以及将用于定位和索引到数据页以存储/获取键值对的“其他”信息
  • 由于散列代码正在索引页中使用,如果发生冲突会发生什么情况
  • 对于“典型”应用程序,我们是否期望数据页的数量远高于索引页的数量?(因为数据页包含键值对)
  • 我们使用ignite.getOrCreateCache(名称)创建的分布式缓存与内存区域之间存在什么类型的关系?1对1、多对1、1对多还是多对多
  • 考虑以下伪代码:
  • Ignite-Ignite=Ignition.start(“两个服务器节点配置”);
    IgniteCache cache=ignite.getOrCreateCache(“我的缓存”);
    cache.put(7,“abcd”)

  • Ignite如何确定要将密钥放入的节点
  • 一旦确定了放置密钥的节点,Ignite如何定位密钥所属的特定内存区域
  • 谢谢

  • 索引页包含哈希值的有序列表,以及指向持久内存中存储的键值对的链接。链接=页面ID+页面内部偏移量
  • 索引页中将显示指向具有冲突哈希的对象的所有链接。要执行查找,Ignite将取消引用链接并比较键
  • 这取决于对象大小。您可以粗略估计“典型”应用程序中数据页和索引页的比率为90:10。但是,如果添加额外索引,索引页的份额将增加:

  • 您还可以找到最新版本的文档:

    回答最后两个问题:

  • 多对一。同一内存区域可用于多个缓存
  • 这是基于亲和力的。基本上,缓存键被映射到关联键(默认情况下它们是相同的),然后调用关联函数来确定分区和节点。有关关联性的更多详细信息,请参见此处:

  • 谢谢Glukos,我又补充了两个问题,如果你能回答,我将不胜感激。