Apache Ignite是Apache推出的一款以内存为中心的分布式数据库,Ignite自带的内存组件可以将RAM当成缓存层,并有着超强的持久性,可以根据需要打开或者关闭,作用自然也就不一样,另外,它还有非常强大的并置处理功能,可以极大的加快操作的速度和运行的性能。
1、耐用的记忆
Ignite的耐用内存组件不仅将RAM视为缓存层,而且还将其视为一个完整的功能齐全的存储层。这意味着用户可以根据需要打开和关闭持久性。如果持久性关闭,则Ignite可以充当分布式内存数据库或内存数据网格,具体取决于您更喜欢使用SQL还是键值API。如果启用持久性,Ignite将成为一个分布式的, 水平可伸缩的数据库,可确保数据完整性一致性,并且能够适应全集群故障。
2、Ignite持久性
Ignite 本地持久性是一个分布式,高度一致的磁盘存储,透明地集成了Ignite的持久内存。
3、ACID合规性
存储在Ignite中的数据在内存和磁盘上均符合ACID标准,使Ignite成为一个非常一致的系统。点火事务可以跨网络工作,并可以跨越多个服务器。
4、完整的SQL支持
Ignite提供对SQL,DDL和DML的全面支持,允许用户使用纯SQL与Ignite进行交互,而无需编写任何代码。这意味着用户只能使用SQL创建表和索引以及插入,更新和查询数据。拥有如此完整的SQL支持使Ignite成为独一无二的 分布式SQL数据库。
5、核心价值
Ignite中的内存数据网格组件是一个完全事务性的分布式键值存储,可以在集群中的100台服务器上水平扩展。启用持久性后,Ignite还可以存储比适合内存更多的数据,并保持整个群集重新启动。
6、并置处理
大多数传统数据库以客户端 - 服务器方式工作,这意味着数据必须带到客户端进行处理。这种方法需要从服务器到客户端的大量数据移动,而且通常不会扩展。另一方面,点火允许发送轻量级计算到数据,即将计算与数据并置。因此,Ignite可以更好地缩放并最小化数据移动。
7、可扩展性和耐久性
Ignite是一个弹性的,可水平扩展的分布式系统,支持按需添加和删除群集节点。Ignite还允许存储数据的多个副本,使其能够适应部分群集故障。如果启用了持久性,那么存储在Ignite中的数据也将在整个集群失败后继续存在。在Ignite中重启集群可以非常快速,因为数据可以直接从磁盘直接运行。因此,数据无需预加载到内存中即可开始处理,并且Ignite缓存将会懒散地恢复内存性能。
假设一场暴风雪正在接近纽约。作为一家电信公司,你必须向800万纽约人发送警告短信。使用客户端 - 服务器方法,公司必须将所有的800万(!)记录从数据库移动到客户端文本消息应用程序,该应用程序不会扩展。
更有效的方法是将文本消息传递逻辑发送给负责存储纽约居民的群集节点。这种方法在整个网络中只移动1个计算而不是800万个记录,并且性能更好。
下面是这个逻辑的例子:
1、Ignite是否是持久存储器或仅存储器?
两者。Ignite中的本地持久性可以打开和关闭。这使Ignite可以存储大于可用内存容量的数据集。实质上,较小的操作数据集只能存储在内存中,较大的不适合内存的数据集可以存储在磁盘上,使用内存作为缓存层以获得更好的性能。
2、Ignite是内存数据库(IMDB)吗?
是的。尽管Ignite耐久内存在内存和磁盘上运行良好,但可以禁用磁盘持久性,Ignite可以充当分布式内存数据库,并支持SQL和分布式连接。
3、Ignite是内存数据网格(IMDG)?
是的。Ignite是一个功能齐全的分布式键值数据网格,可以在纯内存模式下使用,也可以使用Ignite本地持久性。它也可以自动与任何第三方数据库集成,包括任何RDBMS或NoSQL存储。
4、Ignite是分布式缓存吗?
是的。当禁用本地持久性时,Ignite将成为分布式缓存。Ignite实现了JCache规范(JSR 107),并提供了比规范要求多得多的功能,包括分区和复制分布模式,分布式ACID事务,SQL查询,本地持久性等等。
5、Ignite是分布式数据库吗?
是的。Ignite中的数据要么跨多个节点的集群进行分区或复制。这提供了可扩展性并增加了系统的弹性。Ignite自动控制数据如何分区,但是,用户可以插入自己的分配(亲和)功能,并将各种数据组合在一起以提高效率。
6、Ignite是一个SQL数据库?
不完全。尽管Ignite旨在像其他任何关系SQL数据库一样工作,但Ignite在处理约束和索引方面存在差异。Ignite支持主索引和二级索引,但唯一性只能针对主索引执行。Ignite也不支持外键约束。
从本质上讲,Ignite故意不支持任何需要每次更新的集群范围广播消息的约束,并严重影响系统的性能和可扩展性。
7、Ignite是NoSQL数据库吗?
不完全。就像其他NoSQL数据库一样,Ignite具有高度可用性和水平可扩展性。但是,与其他NoSQL数据库不同,Ignite支持SQL和ACID事务。
8、Ignite是事务数据库吗?
不完全。ACID Transactions支持,但只在关键值API级别。Ignite还支持跨分区事务,这意味着事务可以跨越驻留在不同服务器上的不同分区中的密钥。
在SQL级别,Ignite支持原子级别,但尚未支持事务一致性。Ignite社区计划在版本2.5中执行SQL事务。
9、Ignite是一个多模型数据库吗?
是的。Ignite支持用于建模和访问数据的键值和SQL。此外,Ignite还提供强大的处理API,用于在分布式数据上进行计算。
10、Ignite是一个重要价值商店?
是的。Ignite提供了功能丰富的键值API,即兼容JCache(JSR-107)并支持Java,C ++ 和.NET。