技术开发 频道

Timesten内存数据库架构扩展应用实践

  【IT168数据库大会现场报道】2014年4月10日-12日,第五届中国数据库技术大会(DTCC 2014)在北京五洲皇冠国际酒店拉开序幕。在为期三天的会议中,大会将围绕大数据应用、数据架构、数据管理、传统数据库软件等技术领域展开深入探讨,并将邀请一批国内顶尖的技术专家来进行分享。本届大会将在保留数据库软件应用实践这一传统主题的基础上,向大数据、数据结构、数据治理与分析、商业智能等领域进行拓展,以满足于广大从业人士和行业用户的迫切需要。

借助SAP HANA实现文本分析和文本挖掘

  ▲点击进入第五届中国数据库技术大会(DTCC 2014)报道专题

  自2010年以来,国内领先的IT专业网站IT168联合旗下ITPUB、ChinaUnix两大技术社区,已经连续举办了四届中国数据库技术大会,每届大会与会规模超千人,大会云集了国内水平最高的数据架构师、数据库管理和运维工程师、数据库开发工程师、研发总监和IT经理等技术人群,是目前国内最受欢迎、人气最高的的数据库技术交流盛会。今年是中国数据库技术大会五周年,大会将继续秉承分享IT非常好的应用实践的宗旨,围绕传统数据库和大数据两条技术主线,在目前IT技术和管理快速的大背景下,更加深入地探讨数据库技术的现状和未来的发展方向,以及我们在这个转型过程中的实践经验和教训。

Timesten内存数据库架构扩展应用实践
▲汪洋:平安科技数据库技术支持部经理

  大数据使得内存数据库热了起来。调查显示,“内存数据库”成为仅次于“分布式存储与计算”的最受关注的新技术。内存数据库之所以受到越来越多的关注,与其性能上的飞跃和性价比的不断提升有着密不可分的关系。

  应用系统架构

  汪洋认为:理想情况下的应用系统架构,子系统应该是相对比较独立的,子系统之间关联较少,而且相互关联的子字体数量相对较少。

  实际情况往往是大相径庭的,子系统之间存在很高的耦合性。子系统内读写错综复杂,基本上不可能实现读写分离。

  面对这样的现实,出于成本和风险的考虑,很难做到子系统的解耦,理想情况也只能是理想了。

  数据库架构

Timesten内存数据库架构扩展应用实践

  对于一个系列的业务应用来说,肯定不可能通过单个数据库来实现的。需要的是一个数据库群。包含核心库、业务应用库,以及各种功能性的库,根据重要性做层级划分。

  数据库之间实现即时的数据同步,实现一套完整的数据库生态环境。厚重的架构很难进行数据库体系的解耦。

  子系统与数据库的对应

Timesten内存数据库架构扩展应用实践

  在一套完整的数据库生态系统中,子系统和数据库也不是能独立开的。理想情况是若干子系统分布在一个数据库中,数据库基本上是自包含的。现实仍然是残酷的,往往是子系统和数据库出现多对多的关系。

  现有架构做解耦、拆分、横向扩展只能是无动力驱动的高铁动车。

  标准的三层架构:WEB服务器接受用户请求、应用服务器封装业务逻辑、数据库服务器负责数据查询和处理

  数据库的负载:应用过来的所有负载、磁盘的IO问题、高并发问题。

  Oracle VS. TimesTen

  对于一些并发和响应速度要求较高的应用场景来说,TimesTen有明显的响应速度和即时吞吐量的优势;

  TimesTen小巧快捷,独立使用优势不大,应该尽可能与Oracle联合使用;

  TT支持Direct和C/S两种连接模式:Direct模式可作为中间件部署,C/S模式可作为独立数据库部署。

Timesten内存数据库架构扩展应用实践

  内存数据库基本判断规则

  规则 #1:内存数据库是整体装载在内存中的

  规则 #2:内存数据库不存在复杂的代码去判断数据的位置并访问数据,因此可以获得更低的延迟和更快的响应时间。

  TimesTen优势的秘密

  完全内存存储和内存读写,没有缓冲缓存管理开销;

  更短的SQL路径导致更快的性能,更少的CPU指令导致更少的CPU开销。

Timesten内存数据库架构扩展应用实践

Timesten内存数据库架构扩展应用实践

  ▲结构

  1、后台进程

  主进程(Daemon):

  监听功能(Listener);读取配置文件odbc.ini;分配和监视子进程。

  子进程(Sub Daemon):

  载入/卸载Data Store;将日志缓存写入日志文件;监视和解除死锁;执行检查点。

  2、内存结构

  Data Store

  - 保存所有数据库数据的区域

  日志缓存

  - 用于暂时存储记录Data Store变更的日志

  临时数据区域

  - 临时存储执行计划等数据的共享区域

  - 排序等等操作临时使用。

  3、文件结构

  配置文件odbc.ini:用于记录各个DSN的参数

  检查点(Checkpoint)文件

  - 保存于磁盘的数据库镜像。

  - 启动时,检查点文件的数据被装载到内存中

  - 运行时,隔一段时间进行一次检查点处理,仅保存改变的数据块,并删除无用的日志文件

  - 关闭时,用于保存Data Store内的数据

  日志文件

  - 保存数据库的变更

  - 有文件超过一定的大小,自动生成新的日志文件

  - 与检查点文件一起用于数据库的恢复

Timesten内存数据库架构扩展应用实践

  TimesTen高可用架构

  TimesTen支持多种容灾复制方式:

  - 主从复制(Active-Standby)

  - 双主复制(Active-Active)

  - 环形复制

  - 衍生复制

  架构设计原则

  - 主从复制方式足够了;

  - TimesTen本身就是轻量级的,简单至上;

  - 不要期望TimesTen能像Oracle一样强大。

 

Timesten内存数据库架构扩展应用实践

Timesten高可用架构

   架构演进

  之前为Oracle数据库全部存储在SAN传统存储设备上。 中间件直连Oracle数据库,对应用提供服务。

   引进Flash存储设备,将Redo日志和部分热点; 数据文件转存其上,获取较好的IO性能。

   引进TimesTen内存数据库,作为数据库中间件置于; 中间件与Oracle数据库之间,数据在TT和Oracle之间快速同步。

   将部分需要快速响应的业务分流到TimesTen上, 彻底缓解Oracle数据库压力。

 

0
相关文章