Apache Ignite 内存网格数据库

Apache Ignite In-Memory Data Fabric is a high-performance, integrated and distributed in-memory platform for computing and transacting on large-scale data sets in real-time, orders of magnitude faster than possible with traditional disk-based or flash technologies. http://ignite.apache.org/

Introduce

Apache Ignite前身是GridGain,它包括了如下组件:DataGrid(数据网格),ComputeGrid(计算网格),ServiceGrid(服务网格),Streaming&CEP(流处理和复杂事件处理),并提供了分布式缓存,分布式消息,分布式的数据结构.

ignite_components

Grid网格听起来高大上,实际上就是集群中的所有节点组成了一个网格. 比如数据网格提供分布式存储,计算网格提供分布式计算.

ComputeGrid: 计算网格将计算单元分发到集群的每个Ignite节点,并聚合每个节点的返回结果

ignite_computegrid

DataGrid: 数据网格是一个分布式的缓存,数据从DB中加载后会分布到集群的每个Ignite节点, 与之交互的组件有SQL,计算网格等.

ignite_datagrid

数据存储在DB中, 发生在内存中的更新操作会write through到DB, 当请求的数据不再内存中,也会从DB中read-through加载到内存中.

ignite_dbcache

DataGrid是一个分布式的KeyValue数据库. 数据分布式的模式有partition(分区)和replicate(副本).
REPLICATED模式: 每个节点保存所有的副本数. PARTITIONED模式: 将数据切分平均分布在集群中.

复制模式: 因为一个节点保存了所有数据的副本, 所以JVM1的LocalClient都可以从自己的JVM进程中直接读取数据.
分区模式: 只有一个Primary和一个Backup. LocalClient读取A,C,D需要从其他进程获取.

replicate_cache
partition_cache

实际上还有一种本地模式: https://apacheignite.readme.io/docs/cache-modes. 本地模式是最轻量的模式,因为没有数据被分布化到其他节点

  • 分区化缓存适合于数据量很大而更新频繁的场合
  • 复制缓存适用于数据集不大而且更新不频繁的场合
  • 本地缓存适用于或者数据是只读的,或者需要定期刷新的场景中

Streaming&CEP:

  • 客户端节点通过Ignite数据流处理器向Ignite缓存中注入有限的或者持续的数据流;
  • 数据在Ignite数据节点间自动分区,每个节点持有均等的数据量;
  • 数据流可以在Ignite数据节点上以并置的方式直接并行处理;
  • 客户端也可以在数据流上执行并发的SQL查询。

文章目录
  1. 1. Introduce