Oracle内存数据库TimesTen 18.1新特性

2022-04-07 00:00:00 数据 数据库 支持 复制 吞吐量

    Oracle TimesTen是业界领先,面向 OLTP 应用程序的关系型内存数据库产品,拥有数以千计的大型企业客户,遍布全球许多行业。TimesTen在普通商用硬件上即可支持每秒数百万次事务的吞吐量,并且支持标准 SQL,标准数据库 API 和完整 ACID 事务属性。

    下图为研究机构The Forrester Wave于2017年新发布的内存数据库分析报告,Oracle在当前提供功能和战略两方面均处于首位(基于TimesTen+ 12c In-memory综合评估,参考资料:http://www.oracle.com/us/corporate/analystreports/forrester-imdb-wave-2017-3616348.pdf)。

    TimesTen需将整个数据放进内存中运行,因此数据库受到独立主机上物理内存容量的限制,不能实现类似于数据分片的功能,即将数据分布在不同的TimesTen实例上,实现对应用的优化,同时对应用透明。

    因此TimesTen数据库的事务吞吐量受限于单个主机上可实现的吞吐量。

为了解决这些限制,在版本 18.1 中,TimesTen 新增支持一个全新对应用透明的、无共享的、横向扩展的数据库部署模式,称为TimesTen Scaleout 。 这种横向扩展的体系结构使TimesTen内存数据库能够跨几十台主机扩展,达到数百 TB 的容量,每秒支持数百万次事务,而无需手动进行数据库分片或应用程序分区。

    下面先介绍TimesTen Scaleout全新的概念,比如Data Element、Data Distribution、父子表的数据分布以及高可用HA等。


Data Element:

  • 每个数据库由Data Element组成。

  • 每个Data Element保存数据库里面一部分数据(不是全部数据,可以理解为数据分片)。

  • 每个Data Element有自己的交易日志和检查点文件(确保Element自己的事务一致性)。

  • Data Element是数据的小单元,包括它的HA、Failure Recovery(是不是有点象ASM Allocation Unit)。

下图为Data Element架构图以方便大家理解。



Data Distribution:

  • 大表数据使用哈希方法分布到全部Elements。

  • 父子表数据会发布到相同Element以大化本地数据处理。

  • 小的读需求多的表复制到全部Elements。

哈希数据分布:

父子表和复制数据分布:




高可用性:

  • 可以定义TimesTen Grid,每台主机归属于一个Data Space Group。

  • 数据库的Element会逻辑组成不同的复制组比如Replica Set。

  • 每个复制组包含K个Elements(由K-Safety定义)。

  • 复制组里面的Element包含完全相同的数据。

  • 复制组中的Eletmet全部都是”Active”。

  • 使用两阶段提交而非复制保持他们的数据同步。

  • 复制组自动创建和自动管理,无需人工干预。

  • 大化数据的可用性。


如下图所示:

  • 从Replica Set 1到Replica Set 3都不会出现应用停机和数据丢失的情况。

  • Replica Set 4是个例外,就是复制组中的两个Element都出现故障。





弹性扩展:

TimesTen Scaleout根据业务需要提供非常强的弹性扩展能力,以保证业务发展的需求,并且数据会自动的分布到新加入的TimesTen实例,以起到负载均衡的作用。

  • 增加或者删除Element。

  • Data Space group里面的数据自动重新分布。

  • 应用负载自动使用新的Element。

  • 应用吞吐量提升级。




应用开发:

TimesTen Scaleout 兼容 Oracle 数据库的数据类型,支持 SQL 和 PL/SQL。它还提供了丰富的 API 以实现简单开发:

  • ODBC (C/C++)

  • TTClasses (proprietary ‘JDBC like’ C++ API)

  • JDBC (Java)

  • OCI (C/C++)

  • PRO*C (C/C++)

  • ODP .NET (.NET)

支持开源工具包括 PHP,node.js,Ruby,Python,Go,R 和 REST。




TimesTen Scaleout 技术架构图:

后来一张TimesTen Scaleout技术架构图。




TimesTen Scaleout 的主要特点:

  • 基于成熟、强大和高性能的内存数据库(TimesTen引擎)构建而成。

  • 将多台计算机的强大功能整合为一个无共享架构的单一逻辑数据库。

  • 为了简单起见,使用单个数据库映像进行透明的自动数据分发。

  • 通过 K-Safety 内建自动高可用性。

  • 完全分布式的高性能 ACID 事务处理可随时提供数据一致性。

  • 集中部署以便于管理和监控。

  • 使用标准数据库API和标准 SQL。

  • 支持用户数据中心部署,未来将支持公有云服务。

  • 支持弹性扩展。

  • 提供极限性能。



适用场景:

TimesTen Scaleout 主要针对 OLTP 和 IoT 的业务场景进行了优化。TimesTen Scaleout 还支持混合分析(HTAP)工作负载。特别适合有高并发、高吞吐量事务处理需求的业务场景。 

 典型用户场景包括(但不限于)以下内容:

  • 实时计费

  • 实时风控

  • 实时交易

  • 实时授权

  • 实时设备跟踪(IoT) 



编辑:殷海英


来自:https://mp.weixin.qq.com/s/5lToD74_VQr5g1jkmcdSAQ

相关文章