随着Oracle Exalytics以及SAP HANA等内存分析设备的推出,业界的目光再一次聚焦在内存数据库产品之上。内存数据库(或IMDB)可以是一个独立的数据库管理系统(DBMS),如Oracle的TimesTen,或者从属于DBMS的一个特殊数据库,如SAP Sybase Adaptive Server Enterprise (ASE)。 IMDB的目标是通过使用计算机内存实现数据存储来提高吞吐量和降低延迟。这与使用磁盘存储的传统数据库管理系统不同。
由于内部优化算法更简单,而且执行的CPU指令较少,所以内存内数据的速度比基于磁盘的数据库快。访问内存数据可以提高响应速度。对于一些响应……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
随着Oracle Exalytics以及SAP HANA等内存分析设备的推出,业界的目光再一次聚焦在内存数据库产品之上。内存数据库(或IMDB)可以是一个独立的数据库管理系统(DBMS),如Oracle的TimesTen,或者从属于DBMS的一个特殊数据库,如SAP Sybase Adaptive Server Enterprise (ASE)。
IMDB的目标是通过使用计算机内存实现数据存储来提高吞吐量和降低延迟。这与使用磁盘存储的传统数据库管理系统不同。由于内部优化算法更简单,而且执行的CPU指令较少,所以内存内数据的速度比基于磁盘的数据库快。访问内存数据可以提高响应速度。对于一些响应时间要求较高的应用程序,如交易、电信和国防系统,一般都会使用IMDB。由于IMDB的这种特性,这些数据库使用内存要多于磁盘数据库产品。
Oracle TimesTen和Sybase ASE-IMDB是一种使用过程外主内存的数据库。它们实现了SQL的完整支持,也支持一些特殊语言、安全性和数据库管理。这两种数据库都支持通过SQL访问数据。它们都具有一些磁盘数据库产品的特性。因此,使用这些产品缓存SQL后台持久化数据库的SQL请求就很简单。
TimesTen、ASE-IMDB及现有的所有商业内存数据库都基于所谓的基于行的关系存储模型。这些产品很适合OLTP应用程序使用。
Oracle TimesTen内存数据库是什么?
Oracle TimesTen是一个全新设计的内存数据库。它使用基于行的关系模型(表、列、数据类型、索引等)实现数据存储,并使用SQL作为访问语言。它提供了许多API,并且支持Oracle PL/SQL。应用程序的访问方式与其他关系数据库完全相同。TimesTen与传统数据库的主要区别在于它的性能要远远高于传统数据库。虽然TimesTen完全运行在内存中,但是它也能够在磁盘中创建数据库副本,支持数据库重启和恢复。通过检查点和事务日志,这种副本能够保持更新,因此能够从任何故障事故中恢复。TimesTen支持一种用于实现高可用性的复制机制。它的Cache Connect功能可以作为后台Oracle数据库数据子集的高速缓存。在这种情况中,它就成为Oracle数据库的内存数据库缓存。
在C/S模式中,客户端API库通常使用TCP/IP(但是有时也会使用UNIX域套接字或本地共享内存连接)与TimesTen服务器进程交换请求和响应,以执行实际的数据库访问。这正是在TimesTen数据库主机之外运行应用程序的常用模式。除了网络回程所造成的延迟,各个数据库访问造成的代码增加、环境切换等问题也会对性能造成影响。
只有当应用程序和TimesTen运行在同一台主机上时,才会使用直接模式。在这种模式下,数据管理器API库基本上就是充当TimesTen数据库引擎的作用。API调用是进程内函数调用,而TimesTen数据库(共享内存片段)会映射到应用程序的地址空间。这样可以消除数据库访问路径的切换竞争,实现最高的性能和最低的延迟,从而保持稳定的输出。
TimesTen数据库也经常采用混合模式的并发访问,即不同的应用程序进程/线程会通过直接模式和客户端/服务器模式并发访问数据库。单个数据库可以支持最高2000个用户连接。如果TimesTen具有一个实例(管理多个TimesTen数据库),那么用户连接数限制为2500。
这两种模式在API层只有极少的差别,所以在一般的应用程序代码中,不需要知道或关心所使用的模式——它实际上只是一个在编译时或运行时的配置选择。
直接模式是TimesTen的特殊特性之一。大多数TimesTen生产部署都采用独立或直接模式。然而,在一些情况下也会使用客户端/服务器模式。
TimesTen缓存不能通过一般的关系工具访问。如果应用程序拥有以数据库为中心的数据访问方式——即,使用SQL和JDBS访问数据,那么TimesTen是最佳的选择。然而,TimesTen本身不支持与非Oracle数据库进行互操作,所以应用程序代码必须自行管理TimesTen与Sybase或其他数据库的数据传输。
翻译
TechTarget中国特约技术编辑,某高校计算机科学专业教师和网络实验室负责人,曾任职某网络国际厂商,关注数据中心、开发运维、数据库及软件开发技术。有多本关于思科数据中心和虚拟化技术的译著,如《思科绿色数据中心建设与管理》和《基于IP的能源管理》等。
相关推荐
-
专访麦科捷王蓉:内存数据库如何给客户带来价值
2001年成立于西雅图,eXtremeDB的“东家”McObject(麦科捷)公司在这十几年当中就只专注于一件事——开发内存数据库产品。
-
SAP HANA数据存储:列式数据存储技术
本文选自《Implementing SAP HANA》,我们主要介绍了列式数据存储技术以及SAP HANA的应用。
-
SAP HANA数据存储:OLTP与OLAP存储方法对比
本文选自《Implementing SAP HANA》,我们主要介绍了OLTP和OLAP所用到的不同数据存储方法。
-
SAP HANA数据存储:传统硬盘的瓶颈问题
本文选自《Implementing SAP HANA》,主要探讨了基于传统磁盘的数据库性能问题,以及我们如何解决这一问题。