文章插图
介绍企业正在以巨大的速度积累数据,需要大量的存储空间 。由于要存储和处理数 TB 的数据,开发人员常常会陷入困境 。Apache Ignite 以内存为中心的分布式数据库、缓存和处理平台,用于事务性、分析性和流式工作负载,可以在PB级数据上享有内存级的性能 。Ignite 为应用和不同的数据源之间提供一个高性能、分布式内存中数据组织管理的框架 。
Ignite的一个突出特性是完全支持分布式的SQL关联,Ignite支持并置和非并置的数据关联 。并置时,关联是在每个节点的可用数据集上执行的,而不需要在网络中移动大量的数据,这种方式在分布式数据库中提供了最好的扩展性和性能 。Ignite和其他关系型数据库具有相似的行为,但是在处理约束和索引方面略有不同 。Ignite支持一级和二级索引,但是只有一级索引支持唯一性 。在持久化方面,Ignite固化内存在内存和磁盘中都能良好的工作,但是持久化到磁盘是可以禁用的,一般将Ignite作为一个内存数据库来使用 。
发展史
文章插图
特性
- 多层存储:Apache Ignite 多层存储实现了一种尖端的存储架构,它将内存的性能优势与基于磁盘的数据库的可扩展性和持久性优势相结合,存储模式包括内存模式、内存+外部数据库模式、多层数据库模式
- ACID兼容:存储在Ignite中的数据,在内存和磁盘上是同时支持ACID的,使Ignite成为一个强一致的系统,Ignite可以在整个网络的多台服务器上保持事务 。
- SQL支持:Ignite提供了完整的SQL、DDL和DML的支持,可以使用纯SQL而不用写代码与Ignite进行交互,这意味着只使用SQL就可以创建表和索引,以及插入、更新和查询数据 。有这个完整的SQL支持,Ignite就可以作为一种分布式SQL数据库 。
- 键-值:Ignite的内存数据网格组件是一个完整的事务型分布式键值存储,它可以在有几百台服务器的集群上进行水平扩展 。在打开持久化时,Ignite可以存储比内存容量更大的数据,并且在整个集群重启之后仍然可用 。
- 并置处理:大多数传统数据库是以客户机-服务器的模式运行的,这意味着数据必须发给客户端进行处理,这个方式需要在客户端和服务端之间进行大量的数据移动,通常来说不可扩展 。而Ignite使用了另外一种方式,可以将轻量级的计算发给数据,即数据的并置计算,从结果上来说,Ignite扩展性更好,并且使数据移动最小化 。
- 可扩展性和持久性:Ignite是一个弹性的、可水平扩展的分布式系统,它支持按需地添加和删除节点,Ignite还可以存储数据的多个副本,这样可以使集群从部分故障中恢复 。如果打开了持久化,那么Ignite中存储的数据可以在集群的完全故障中恢复 。Ignite集群重启会非常快,因为数据从磁盘上获取,瞬间就具有了可操作性 。从结果上来说,数据不需要在处理之前预加载到内存中,而Ignite会缓慢地恢复内存级的性能 。
- 机器学习:Ignite的机器学习(ML)是一套简单、可扩展以及高效的工具,可以构建可预测的机器学习模型,而不需要昂贵的数据传输 。
- 多语言支持:Ignite是以JAVA语言为主进行开发的,因此可以在JVM支持的任何操作系统和架构上部署和运行
场景三种主要使用场景
- 应用程序加速和横向扩展:使用 Ignite 作为内存缓存或部署在一个或多个外部数据库上的内存数据网格,将现有应用程序加速 100 倍 。
- 用于HTAP 工作负载的分布式数据库:通过将 Ignite 用作可扩展超出可用内存容量的数据库,构建支持事务和分析工作负载的应用程序 。
- 数字集成中心:创建一个高级平台架构,将多个后端系统和数据库聚合到一个低延迟和共享的数据存储中 。
存储模式Apache Ignite 多层存储实现了一种尖端的存储架构,它将内存的性能优势与基于磁盘的数据库的可扩展性和持久性优势相结合,存储模式包括内存模式、内存+外部数据库模式、多层数据库模式
内存模式
基于内存计算解决方案的所有优势 。以最低延迟和最高吞吐量存储和处理数据,整个数据集仅在内存层中可用,为了避免节点故障,建议在集群中至少保留一份数据的备份副本,适用于数据缓存、高性能计算、Web 会话缓存、实时处理连续数据流
推荐阅读
- 开机内存占一半,应用后台杀不死?那些不了解的Android后台机制
- 小米|小米MIUI Go曝光:小内存手机能流畅运行
- JVM内存管理机制
- Redis内存分析工具--rdr安装与使用
- 荣耀|千元5G手机也有“10GB”大内存!荣耀Play6T明日开售:1199元起
- 华为|华为新款V55智慧屏曝光:内存升级 加量不加价
- 海信电视内存不足怎么办 海信电视内存不足的解决方法
- AMD|联手三星优化 AMD锐龙7000将获得“轰动性”DDR5内存超频性能
- JAVA字节流、字符流、缓冲流、转换流、内存流、字符编码
- 关于前端内存泄漏