Ignite内存计算平台与Oracle TimesTen Scaleout对比

1.产品介绍

Ignitejava

Ignite内存计算平台是一个高性能、集成化、混合式的企业级分布式架构解决方案,功能强大,有先进的集群管理功能,对于分布式内存数据库、流处理技术、分布式计算、分布式服务、分布式数据结构、持久化、Hadoop和Spark加速等功能,提供了普遍的支持,用于大规模的数据处理,比传统的基于磁盘或闪存的技术在性能上有指数级的提高。最新的版本在基于ZooKeeper的发现机制基础上,支持扩展至上千个节点。该软件由美国GridGain公司开发,于2014年将绝大部分功能捐赠给Apache基金会,命名为Ignite,目前为Apache基金会的顶级项目,GridGain公司还提供Ignite的企业版,具体能够根据须要进行选择。node

Oracle TimesTen Scaleout数据库

TimesTen Scaleout是Oracle TimesTen 18.1版本的一个新的产品分支,是Oracle第一个商用关系型内存分布式数据库,支持分布式,横向扩展。这种新的体系结构使TimesTen内存数据库可以扩展至几十台主机,达到数百TB的容量,而且每秒支持数百万次事务,而无需手动数据库分片或应用程序分区,特别适合有着高并发、高吞吐量事务处理需求的业务场景。设计模式

2.产品对比

基本属性缓存

序号 对比项目 Ignite TimesTen Scaleout
1 是否支持开源 Ignite自己为Apache2.0协议开源,还有企业版GridGain 商业软件
2 技术支持 有开源社区技术支持,也有商业技术支持 商业技术支持
3 线性扩展 支持,使用ZooKeeper的发现机制,支持扩展至上千个节点。 支持,最多扩展至64个节点
4 内存分布式数据库 内存分布式数据库是Ignite的主打功能之一。 是Oracle第一个商用的内存分布式数据库。以前的TimesTen为非分布式架构
5 扩展功能 Ignite基于本身特有的分布式架构,开发了完整的企业级分布式架构解决方案,包括分布式内存数据库、流处理技术、分布式计算、分布式服务、分布式数据结构、NoSQL数据库集成、Hadoop和Spark加速等 做为Oracle的商用内存分布式数据库产品,定位明确,功能专一
6 部署模式 支持多种部署模式,支持独立部署,嵌入式部署,也能够部署在云环境中,对Kubernetes等新技术也有普遍的支持 支持嵌入式和独立部署,能够脱离Oracle独立部署为内存分布式数据库。安装配置较为复杂,对于新的技术,云环境等支持较差。
7 客户端协议 支持SQL、ODBC/JDBC、除了Java还支持.NET平台,也支持Python、Ruby、PHP或者NodeJS,也能够考虑使用Ignite的二进制客户端协议 支持SQL和PL/SQL、支持ODBC/JDBC、OCI、ODP .NET,另外许多开源数据库API和适配器也能够与TimesTen一块儿使用,包括 PHP、node.js、Ruby、Python、Go、R和REST等
8 监控等企业级功能 企业版有完善的监控管理工具、安全、滚动更新、数据中心复制等功能,有完善的图形界面。Ignite自己提供命令行以及部分API,能够进行简单的监控方便运维。 提供命令行界面、图形界面、存储过程、API调用等多种形式的相关支持。
9 开发支持 提供了各类可能的方式方便开发,具体代码改动工做量,取决于架构设计模式以及软件使用方式。已有的代码可能改动较多,也可能改动不多。 对应用开发透明,能够轻易地将TimesTen部署进已有的系统中,代码改动较少。
10 多平台支持 支持常见操做系统平台和CPU架构 支持常见操做系统平台和CPU架构
11 综合成本 综合成本较低,技术支持有开源社区技术支持,也能够购买商业技术支持。 Oracle的综合成本高昂,包括软件受权费、技术支持费、培训费用等
12 成熟度 目前以每季度发布一个版本的速度快速迭代。 TimesTen有近20年的历史,可是TimesTen Scaleout为Oracle的第一款商用内存分布式数据库产品。

内存分布式数据库安全

序号 对比项目 Ignite TimesTen Scaleout
1 SQL支持 支持兼容ANSI-99的SQL标准,支持DDL、DML语句。 支持兼容ANSI-99的SQL标准,支持DDL、DML语句,透明支持Oracle的相关技术
2 事务 不完整,在键值API层次支持ACID事务,基于通过一阶段提交优化后的二阶段提交机制。SQL层,仅支持原子性。 支持完整的ACID事务、多语句事务、约束和全局二级索引。
3 数据库支持 支持提供JDBC/ODBC协议的传统关系型数据库,包括Oracle,也包括MySQL等其余数据库。 只支持Oracle。
4 数据同步 支持数据库的通读和通写,支持多种数据同步方式,提供开发人员接口,自定义能力强。 有很是完善的数据同步方式。
5 故障恢复 基于WAL和检查点等相关技术,有完善的故障恢复机制。同时也支持经过复制、备份等机制提升可用性。 TimesTen有事务日志和检查点文件存放在磁盘上。当系统重启或者意外宕机,内存数据库能够从检查点文件和事务日志中获得恢复。另外,还能够经过复制技术来提升可用性。
6 数据库模型 键值存储,经过H2引擎提供关系型功能。 关系型数据库
7 并置处理 经过将计算带到数据实际驻留的服务端节点,会在数据实际存储的地方执行高级的业务逻辑或者分布式SQL,甚相当联,避免了昂贵的序列化和网络开销 不支持
8 索引 支持 支持
9 缓存维护操做 使用标准DDL语法,添加了部分专有属性。 专有的CREATE CACHE等语法,须要一段时间的学习。
10 开发工具 支持JDBC协议的工具,均可以接入Ignite。 Oracle SQL Developer对TimesTen有更好的支持
11 开发便利性 Ignite为常见的、主流开发框架提供了集成的支持,包括Spring、Hibernate、MyBatis、Spring Data JPA等等。 仅提供JDBC/ODBC等标准协议的支持。
12 数据预热 若是开启了原生持久化,系统重启无需预热数据。 不支持

扩展特性网络

在内存分布式SQL数据库功能以外,Ignite相比TimesTen,还提供了大量的扩展特性,好比:数据结构

  • 分布式服务:分布式服务能够在集群中任意部署自定义的服务,能够实现和部署任意服务,好比自定义计数器,ID生成器,分级映射等;
  • 数据注入和流计算:Ignite流式计算能够以可扩展和容错的方式处理连续不中断的数据流。能够与主要的流处理技术和框架进行集成,好比Kafka、Camel、Storm或者JMS等,它们为基于Ignite的架构带来很是强大的功能;
  • 分布式计算:分布式计算是经过并行处理的方式来得到更高的性能,更低的延迟以及线性可扩展性,Ignite提供了一组简单的API,在集群内的多台计算机中执行分布式计算和数据处理,该功能针对传统的数据库存储过程,造成了完整的替代方案;
  • 分布式数据结构:Ignite以分布式的形式支持基于java.util.concurrent框架的大部分数据结构。好比,能够在一个节点上使用java.util.concurrent.BlockingQeque加入一些东西,而后在另外一个节点上获取它。或者有一个分布式的ID生成器,它能够保证全部节点上的ID惟一性;
  • 消息和事件:Ignite提供了集群范围的高性能的消息功能,支持基于发布-订阅以及直接点对点通讯模型的数据交换。当在分布式网格环境中发生各类事件时,Ignite的分布式事件功能可使应用收到通知。能够自动地收到集群内的本地和远程节点上发生的任务执行、读写和查询操做的通知;
  • 机器学习:Ignite的机器学习是一套简单、可扩展以及高效的工具,能够构建可预测的机器学习模型,而不须要昂贵的ETL;
  • 大数据组件支持 :Ignite为Apache体系的不少技术提供了普遍的支持,包括与Apache旗下的NoSQL数据库集成,好比Cassandra等,为Hadoop和Spark进行加速等。

3.总结

若是将Ignite做为一个内存分布式数据库,那么从功能性来讲,与Oracle的TimesTen Scaleout产品基本对等,TimesTen具备的功能,Ignite大致都有,可是TimesTen Scaleout做为一个专业的内存分布式数据库,在部分功能的细节设计上,在与Oracle产品的功能整合上,作的更好。但就Ignite来讲,它不只仅是一个内存分布式数据库,在已有的系统中,若是引入了Ignite,至关于引入了一个多功能的数据处理平台,为已有系统的将来发展和演进,提供了更多的可能,会极大地加强已有系统的扩展性,保护用户原有的投资。架构

而若是引入了Oracle的TimesTen软件,会进一步加强与Oracle的绑定,不论是从行业发展的趋势来讲,仍是从下降大型企业的IT支出成原本说,TimesTen都未必是最佳的选择。并发

相关文章
相关标签/搜索