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

Posted 程序员理想

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ignite内存计算平台与Oracle TimesTen Scaleout对比相关的知识,希望对你有一定的参考价值。

1.产品介绍

Ignite

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

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都未必是最佳的选择。

声明:推送内容及图片来源于网络,部分内容会有所改动,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

以上是关于Ignite内存计算平台与Oracle TimesTen Scaleout对比的主要内容,如果未能解决你的问题,请参考以下文章

索引 Apache Ignite 缓存与优化的内存 CassandraDB

Ignite: Ignite VS Spark

分布式数据库缓存系统Apache Ignite

Apache Ignite 与 Apache Storm(深入)

Tachyon与Ignite系统对比

Tachyon与Ignite系统对比