Apache Ignite的索引如何工作?我没有在文档中找到那些技术细节。
是否正在使用B树? 索引存储在哪里? 如何存储? 内置使用后,索引提供什么性能(以Big-O表示)? 它的构建速度如何,何时构建? Ignite可以存储任意可序列化的Java对象。当我要为子子对象的字段建立索引时,它如何处理复合 Material ? Ignite缓存是一个键值存储。我可以将不同的类(=类型作为对象)作为值吗?换句话说,是Ignite Cache Schemaless吗?如果是,这与我的SQL查询如何匹配? Ignite缓存是一个键值存储。如果我通过SQL查询我的值,键如何发挥作用?我要查询什么? 键可以是任意的,可序列化的Java对象-我可以查询键还是仅查询值? 该信息在文档中并未涉及太多,因为它主要是实现细节,并且可能因版本而异。毕竟,如果您对详细信息感兴趣,则可以使用所有源代码。
具体来说,我说的是即将发布的Ignite 1.5。
在1.5之前,默认的数据结构是快照树(avl树的变体),因为还添加了1.5 skip-list选项,现在它是默认的。 在Java堆中或在堆外内存中,具体取决于配置。 可靠地:)我不明白这个问题。 更新和查找时使用log(N)。 每次事务提交时都将更新索引(如果是原子缓存,则仅更新缓存),没有单独的构建阶段。您可以期望每次更新后索引都处于正确的状态。 Ignite有两个选项(从1.5开始):以二进制格式存储对象,该格式允许获取单独的字段值,或者保持整个对象反序列化并使用反射。 等。
玩得开心!