简介
- Apache Ignite是一个开源的分布式数据库、缓存和处理平台,它以内存速度处理数PB的数据。
- 它提供容错、集群范围内的发布/订阅消息传递、在出现故障时动态重新平衡集群、内存文件系统、数据网格、数据库、流分析。它可以用来解决可伸缩性和性能问题
Ignite和经典分布式缓存的区别在于,除了键值对之外,Ignite还可以运行分布式SQL查询来连接和分组各种数据集。即使使用分布式SQL查询,我们也可以在共享或统一内存层的帮助下执行多记录和跨缓存ACID事务。
功能
- 具有容错性并支持完整的ACID事务。
- 使用发布/订阅(publish/subscribe,pub/sub)集群范围的消息传递,这是一种异步服务对服务通信的形式,用于无服务器和微服务体系结构。
- 发生故障时集群的动态再平衡。
- 内存文件系统、数据网格、数据库、流式分析以及用于机器和深度学习的连续学习框架。
- 内存中的事件驱动体系结构。
- 帮助解决可扩展性和高性能问题,支持提高实时性能。
- 插件NOSQL,MongoDb数据库。
- 支持大数据、机器学习
场景
1. 内存缓存:支持key-value和ANSI-SQL,低延迟,高性能内存缓存。
2. 内存数据网格:用于读/写直通缓存部署。它可以纯粹在内存中使用,也可以与本机持久性一起使用。它可以在RDBMS、Hadoop和其他数据源之上使用,通过在应用程序层和数据库层之间滑动作为内存中的数据网格,获得100倍的加速。
3. 内存数据库:它用于分布式多层存储,可跨RAM、NVRAM、闪存和磁盘进行扩展。Ignite可以在磁盘上完全运行,而无需从内存层预加载。
Apache Ignite的内存体系结构由两个存储层组成,即“持久内存”——内存层和磁盘层。它完全可以从内存层操作,但它也可以将数据存储在磁盘上,因此使其持久耐用。如果数据很大,那么内存层根据容量缓存同样多的数据。例如,如果数据库中有100个条目,内存层的容量是40,那么100个条目存储在磁盘中,只有40个条目被缓存。如果缓存未命中,ignite会自动从磁盘读取缓存,而不管API是什么,也不管您使用的是SQL、键值还是扫描查询。
它使用Unix的虚拟内存模型,通过分页进行内存空间管理和数据引用。但是,这里对整个数据集的索引存储在磁盘上(假设磁盘层已启用),而不是仅当磁盘内存不足时才将它们存储在磁盘上(用于交换)。
相关导航
暂无评论...