SlideShare ist ein Scribd-Unternehmen logo
1 von 34
内存数据库
            技术讨论




05/20/12           1
内存数据库技术
• 内存数据库概述

• 内存数据库应用

• 内存数据库功能

• 比较传统数据库

• 内存数据库产品

• 附录




05/20/12             2
内存数据库 概述

内存数据库:
  顾名思义就是将数据放在内存中直接操作的数据库
 。

     • 数据缓存、快速算法、并行操作
     • 高性能,高速的内存读写速度
     • 多为主拷贝,辅助主数据库




05/20/12                   3
内存数据库应用

• 电信行业 -- 实时查询

• 证券行业 -- 证券交易

• 金融行业 -- 网上银行

• 实时应用系统




05/20/12             4
内存数据库功能
• 数据管理,包括定义、存储、维护等

• 数据操作,如查询、存取、完整性检查

• 事务管理,包括调度与并发控制等

• 对存取的控制和安全性检验

• 具有数据库的可靠性恢复机制




05/20/12              5
比较 传统数据库 (一)




           内存数据库数据缓存、快速算法、并行操作优化


05/20/12                           6
比较 传统数据库 (二)

为什么内存数据库快 ?

•   数据访问的成本
•   主存和磁盘的地址映射
•   内存优化的索引结构
•   查询优化
•   日志和恢复




05/20/12                  7
比较 传统数据库 (三)

              内存数据库    传统数据库
架构            内存为中心    磁盘为中心
实施方式          可以嵌入应用   单独的服务器

IO操作          无        有
响应速度          微秒到毫秒    毫秒级
数据容量          较少       超大数据量
数据特性          短暂       持久




05/20/12                        8
内存数据库产品(一)

• 应用级共享内存技术
    专用程序开发、不支持关系性 SQL 、不支持事务等。



• 专业级内存数据库
    应用模式简单、不提供 ESQL 、 C/S 架构支持较差等。



• 通用级的内存数据库
    应用广泛、成熟,提供 ESOL 开发效率高等。




05/20/12                             9
内存数据库产品 (二)
商业:(通用级内存数据库)
• Oracle Timesten
• Altibase
•   eXtremeDB (实时与嵌入式数据库)

开源:(实时与嵌入式数据库)
• FastDB

开源:(分布缓存系统 , 基于 memcache 和 BerkeleyDB 开发, Key/Value 操作)
• MemcacheDB
• Dbcached
•   Tbstore (非开源)

其他:
• 内存表
    传统数据库提供的内存表 , 如: sqlite 、 mysql 临时表和内存表


05/20/12                                                  10
Oracle Timesten (一)

      Oracle TimesTen 实时数据管理软件由三个基于内
    存中数据库、数据复制和高速缓存技术的产品组成。

      1、内存优化的关系数据库;
      2、支持服务器间的实时数据复制,以获得高可
    用性和负载共享;
      3、应用程序层中的 Oracle 数据创建实时、 可
    更新的高速缓存。




05/20/12                           11
Oracle Timesten (二)
           内存数据库 TimesTen 与基于磁盘的 RDBMS 架构比
           较:




05/20/12                                     12
Oracle Timesten (三)
           TimesTen 模型 -- 包括 replication 和 Cache
           Connect :




05/20/12                                           13
Altibase (一)

      Altibase 是一个在事务优先的环境中提供高性能和
    高可用性的软件解决方案。

           Altibase 支持客户端 / 服务器架构或嵌入式架构。

           Altibase 产品已经走向混合型数据库。




05/20/12                               14
Altibase (二)
                 Altibase 产品




05/20/12                       15
Altibase (三)

             ALTIBASE 数据库的体系结构如下图所示:




05/20/12                               16
Altibase (四)

               Altibase 复制技术架构




05/20/12                         17
eXtremeDB (一)

•   实时与嵌入式数据库
•   系统开销少
•   速度达到微秒级
•   完全驻留在主内存中,不使用文件系统(包括内存盘)
•   数据管理量在 32BIT 下能达到 20G
•   提供 C/C++ 的 Library 方便程序开发
•   SQL ( eXtremeSQL )支持
•   日志( eXtremeLog )支持
•   高可用性( eXtremeHA )支持



05/20/12                    18
eXtremeDB (二)

                   eXtremeDB 运行时环境:
      系统架构:




05/20/12                              19
eXtremeDB (三)

           eXtremeDB 开发环境:   eXtremeSQL 操作概述:




05/20/12                                        20
eXtremeDB (四)
                             eXtremeDB Kernel Model 数据直接访问:
           eXtremeDB 日志管理:




05/20/12                                                      21
eXtremeDB (五)

               eXtremeDB 高可用性设计:




05/20/12                           22
FastDB
•   数据库文件被影射到虚拟内存空间 , 假定整个数据库存在于 RAM
    中

•   不支持 C/S 架构

•   提供 C++ 接口操作数据

•   支持一种语法和 SQL 非常类似的查询语言

•   支持事务

•   在线备份以及系统崩溃后的自动恢复


05/20/12                           23
MemcacheDB
•    前端 memcached 分布式缓存服务器

•    后端 Berkeley DB 的持久化存储,异步主辅复制机制

•    超高性能读写速度

•    不支持内存对象的遍历操作,不支持复杂的查询操作,以 key-value 模
     式访问数据

•    具备了事务恢复能力、持久化能力和分布式复制能力

•    相关技术介绍: memcache_engine



    05/20/12                           24
MemcacheDB 架构图




05/20/12                    25
MemcacheDB 多线程模式




05/20/12                      26
DBcached
•   DBcached 基于 Memcached 和 NMDB 的分布式 key-value 数据库内
    存缓存系统

•    QDBM 或 Berkeley DB 作为后端数据库

•   DBcached= Memcached + 持久化存储管理器 + NMDB 客户端接口。

• 以 key-value 模式访问数据

•   相关技术介绍
       Memcached 是一款高性能的,分布式的内存对象缓存系统。
       NMDB 是一款多协议网络数据库 (dbm 类 ) 管理器,它由内存缓存
    和磁盘存储两部分构成,使用 QDBM 或 Berkeley DB 作为后端数据
    库。
       QDBM 是管理数据库的例程库,读写速度比 Berkeley DB 要快。



05/20/12                                           27
dbcached 架构图




05/20/12                  28
MemcacheDB 和 DBcached 区别
•   Memcache 服务器池故障转移导致的数据丢失, DBcached 则会请求后端
    的 NMDB 取回数据。

•   MemcacheDB 只使用了 Memcached 的协议和网络层,抛弃了
    Memcached 的内存管理部分,而使用 Berkeley DB 数据库自身的缓存
    来实现,是围绕 Berkeley DB 进行开发的。

•   DBcached 的设计方向是发挥 Memcached 的内存缓存性能优势,使之
    成为一个具有“故障转移”、“数据持久化存储”、“多服务器同时读
    写”的高并发内存缓存系统,它是围绕 Memcached 进行开发的。




05/20/12                                         29
Tbstore
•   高性能、分布式的 cache 系统
•   基于 Berkeley DB
•   缺点是新增服务器大部分 Cache 内容失效
•   非开源,缺乏参考资料




05/20/12                     30
内存表

优点:
 利用传统数据库提供的接口,开发方便。

缺点:
 数据没有恢复机制,需要自行实现;
 受数据库锁限制,在大量并发时性能比较差。




05/20/12                31
附录 (1)--Memcached 概述
       Memcached 是一个高性能的分布式的内存对象缓存系统,通过在内
    存里维护一个统一的巨大的 hash 表,它能够用来存储各种格式的数据,
    包括图像、视频、文件以及数据库检索的结果等。

    工作机制:
       通过在内存中开辟一块区域来维持一个大的 hash 表来加快页面访
    问速度,和数据库是独立的。但是目前主要用来缓存数据库的数据。允
    许多个 server 通过网络形成一个大的 hash ,用户不必关心数据存放在哪
    ,只调用相关接口就可。存放在内存的数据通过 LRU 算法进行淘汰出内
    存。同时可以通过删除和设置失效时间来淘汰存放在内存的数据。




05/20/12                                   32
附录 (2)--Berkeley DB 概述
   Berkeley DB 是由 sleepycat software 开发的轻量级嵌入式数据库,它不仅适用于嵌入式系统
,而且可以直接连接到应用程序内部,和应用程序运行在同一地址空间。传统的数据库一般作为
独立服务器工作,而 Berkeley DB 是软件开发库,开发者将它嵌入到应用程序中,应用程序本身
就是一个服务器,而只是利用嵌入式数据库开发来实现定制的数据库逻辑,避免了与应用服务器
进程间通信的开销,因此 Berkeley DB 具有较高的运行效率,适用于资源受限的嵌入式系统。

一般而言, Berkeley DB 数据库系统可以大致分为五个子系统。
1 、 存取管理子系统( Access Methods )
  该子系统为创建和访问数据库文件提供基本的支持。在没有事务管理的情况下,该子系统中
的模块可单独使用,为应用程序提供快速高效的数据存取服务。
2 、 内存池管理子系统( Memory Pool )
  该子系统就是 Berkeley DB 所使用的通用共享内存缓冲区,该子系统可以被应用程序单独使
用。
3 、 事务子系统( Transaction )
  该子系统为 Berkekey DB 提供事务管理功能,保证操作的原则性、一致性和孤立性。事务子
系统适用于对需要事务保证的数据进行修改的场合。
4 、 锁子系统( Locking )
  该子系统提供进程之间以及进程内部的并发管理机制,为系统提供多用户读取和单用户修改
同一对象的共享控制。该子系统可以被应用程序单独使用。
5 、 日志子系统( Logging )
  该子系统采用的是先写日志的策略,支持事务子系统进行数据恢复,保证数据一致性。
05/20/12                                         33
附录 (3)--Berkeley DB 架构




05/20/12                            34

Weitere ähnliche Inhalte

Was ist angesagt?

百度数据库中间层
百度数据库中间层百度数据库中间层
百度数据库中间层yp_fangdong
 
美团点评技术沙龙010-点评RDS系统介绍
美团点评技术沙龙010-点评RDS系统介绍美团点评技术沙龙010-点评RDS系统介绍
美团点评技术沙龙010-点评RDS系统介绍美团点评技术团队
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践Wensong Zhang
 
有道云笔记架构简介
有道云笔记架构简介有道云笔记架构简介
有道云笔记架构简介drewz lin
 
淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践Feng Yu
 
基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构Sky Jian
 
Jkcn MySQLDB 架构
Jkcn MySQLDB 架构Jkcn MySQLDB 架构
Jkcn MySQLDB 架构Louis liu
 
高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践孙立
 
Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践Feng Yu
 
Feed服务架构-新浪微博新员工培训议题
Feed服务架构-新浪微博新员工培训议题Feed服务架构-新浪微博新员工培训议题
Feed服务架构-新浪微博新员工培训议题XiaoJun Hong
 
浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华zhuozhe
 
美团点评技术沙龙14:美团云对象存储系统
美团点评技术沙龙14:美团云对象存储系统美团点评技术沙龙14:美团云对象存储系统
美团点评技术沙龙14:美团云对象存储系统美团点评技术团队
 
Exadata那点事
Exadata那点事Exadata那点事
Exadata那点事freezr
 
腾讯大讲堂45 解剖ttc
腾讯大讲堂45 解剖ttc腾讯大讲堂45 解剖ttc
腾讯大讲堂45 解剖ttcareyouok
 
OTN软硬件结合数据库解决方案
OTN软硬件结合数据库解决方案OTN软硬件结合数据库解决方案
OTN软硬件结合数据库解决方案freezr
 
bada-data-beautiful
bada-data-beautifulbada-data-beautiful
bada-data-beautiful宗志 陈
 

Was ist angesagt? (17)

百度数据库中间层
百度数据库中间层百度数据库中间层
百度数据库中间层
 
美团点评技术沙龙010-点评RDS系统介绍
美团点评技术沙龙010-点评RDS系统介绍美团点评技术沙龙010-点评RDS系统介绍
美团点评技术沙龙010-点评RDS系统介绍
 
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践淘宝软件基础设施构建实践
淘宝软件基础设施构建实践
 
Memlink
MemlinkMemlink
Memlink
 
有道云笔记架构简介
有道云笔记架构简介有道云笔记架构简介
有道云笔记架构简介
 
淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践
 
基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构
 
Jkcn MySQLDB 架构
Jkcn MySQLDB 架构Jkcn MySQLDB 架构
Jkcn MySQLDB 架构
 
高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践
 
Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践
 
Feed服务架构-新浪微博新员工培训议题
Feed服务架构-新浪微博新员工培训议题Feed服务架构-新浪微博新员工培训议题
Feed服务架构-新浪微博新员工培训议题
 
浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华
 
美团点评技术沙龙14:美团云对象存储系统
美团点评技术沙龙14:美团云对象存储系统美团点评技术沙龙14:美团云对象存储系统
美团点评技术沙龙14:美团云对象存储系统
 
Exadata那点事
Exadata那点事Exadata那点事
Exadata那点事
 
腾讯大讲堂45 解剖ttc
腾讯大讲堂45 解剖ttc腾讯大讲堂45 解剖ttc
腾讯大讲堂45 解剖ttc
 
OTN软硬件结合数据库解决方案
OTN软硬件结合数据库解决方案OTN软硬件结合数据库解决方案
OTN软硬件结合数据库解决方案
 
bada-data-beautiful
bada-data-beautifulbada-data-beautiful
bada-data-beautiful
 

Ähnlich wie 内存数据库[1]

利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多ITband
 
Accelerate Database as a Service(DBaaS) in Cloud era
Accelerate Database as a Service(DBaaS) in Cloud eraAccelerate Database as a Service(DBaaS) in Cloud era
Accelerate Database as a Service(DBaaS) in Cloud eraJunchi Zhang
 
浅谈 My sql 性能调优
浅谈 My sql 性能调优浅谈 My sql 性能调优
浅谈 My sql 性能调优thinkinlamp
 
MySQL应用优化实践
MySQL应用优化实践MySQL应用优化实践
MySQL应用优化实践mysqlops
 
基于My sql的分布式数据库实践
基于My sql的分布式数据库实践基于My sql的分布式数据库实践
基于My sql的分布式数据库实践锐 张
 
豆瓣网技术架构变迁
豆瓣网技术架构变迁豆瓣网技术架构变迁
豆瓣网技术架构变迁reinhardx
 
Bdwf11 netezza james_zheng
Bdwf11 netezza james_zhengBdwf11 netezza james_zheng
Bdwf11 netezza james_zhengbigdatawf
 
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
開放原始碼 Ch2.4   app - oss - db (ver 1.0)開放原始碼 Ch2.4   app - oss - db (ver 1.0)
開放原始碼 Ch2.4 app - oss - db (ver 1.0)My own sweet home!
 
Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2redhat9
 
大众点评网的技术变迁之路
大众点评网的技术变迁之路大众点评网的技术变迁之路
大众点评网的技术变迁之路jeffz
 
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)Shanda innovation institute
 
RockStor - A Cloud Object System based on Hadoop
RockStor -  A Cloud Object System based on HadoopRockStor -  A Cloud Object System based on Hadoop
RockStor - A Cloud Object System based on HadoopSchubert Zhang
 
SQL Server 資料庫版本控管
SQL Server 資料庫版本控管SQL Server 資料庫版本控管
SQL Server 資料庫版本控管Will Huang
 
基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展Sky Jian
 
网站存储经验谈-pdf
网站存储经验谈-pdf网站存储经验谈-pdf
网站存储经验谈-pdfYu Lin
 
Hbase架构简介、实践
Hbase架构简介、实践Hbase架构简介、实践
Hbase架构简介、实践Li Map
 
Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用iammutex
 

Ähnlich wie 内存数据库[1] (20)

Altibase介绍
Altibase介绍Altibase介绍
Altibase介绍
 
利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多
 
Accelerate Database as a Service(DBaaS) in Cloud era
Accelerate Database as a Service(DBaaS) in Cloud eraAccelerate Database as a Service(DBaaS) in Cloud era
Accelerate Database as a Service(DBaaS) in Cloud era
 
浅谈 My sql 性能调优
浅谈 My sql 性能调优浅谈 My sql 性能调优
浅谈 My sql 性能调优
 
MySQL应用优化实践
MySQL应用优化实践MySQL应用优化实践
MySQL应用优化实践
 
基于My sql的分布式数据库实践
基于My sql的分布式数据库实践基于My sql的分布式数据库实践
基于My sql的分布式数据库实践
 
豆瓣网技术架构变迁
豆瓣网技术架构变迁豆瓣网技术架构变迁
豆瓣网技术架构变迁
 
Bdwf11 netezza james_zheng
Bdwf11 netezza james_zhengBdwf11 netezza james_zheng
Bdwf11 netezza james_zheng
 
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
開放原始碼 Ch2.4   app - oss - db (ver 1.0)開放原始碼 Ch2.4   app - oss - db (ver 1.0)
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
 
Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2
 
大众点评网的技术变迁之路
大众点评网的技术变迁之路大众点评网的技术变迁之路
大众点评网的技术变迁之路
 
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
 
RockStor - A Cloud Object System based on Hadoop
RockStor -  A Cloud Object System based on HadoopRockStor -  A Cloud Object System based on Hadoop
RockStor - A Cloud Object System based on Hadoop
 
Why use MySQL
Why use MySQLWhy use MySQL
Why use MySQL
 
SQL Server 資料庫版本控管
SQL Server 資料庫版本控管SQL Server 資料庫版本控管
SQL Server 資料庫版本控管
 
基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展基于MySQL开放复制协议的同步扩展
基于MySQL开放复制协议的同步扩展
 
Ibm solid db_基础
Ibm solid db_基础Ibm solid db_基础
Ibm solid db_基础
 
网站存储经验谈-pdf
网站存储经验谈-pdf网站存储经验谈-pdf
网站存储经验谈-pdf
 
Hbase架构简介、实践
Hbase架构简介、实践Hbase架构简介、实践
Hbase架构简介、实践
 
Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用Mysql HandleSocket技术在SNS Feed存储中的应用
Mysql HandleSocket技术在SNS Feed存储中的应用
 

Mehr von 小新 制造

Memory-Based Cloud Architectures
Memory-Based Cloud ArchitecturesMemory-Based Cloud Architectures
Memory-Based Cloud Architectures小新 制造
 
Storage: Alternate Futures
Storage: Alternate FuturesStorage: Alternate Futures
Storage: Alternate Futures小新 制造
 
架构大数据 挑战、现状与展望
架构大数据 挑战、现状与展望架构大数据 挑战、现状与展望
架构大数据 挑战、现状与展望小新 制造
 
Altibase管理培训 优化篇 v1.1
Altibase管理培训 优化篇 v1.1Altibase管理培训 优化篇 v1.1
Altibase管理培训 优化篇 v1.1小新 制造
 
Altibase管理培训 管理篇
Altibase管理培训 管理篇Altibase管理培训 管理篇
Altibase管理培训 管理篇小新 制造
 
Altibase管理培训 安装篇
Altibase管理培训 安装篇Altibase管理培训 安装篇
Altibase管理培训 安装篇小新 制造
 
Ibm solid db overview v6.3 20090320
Ibm solid db overview v6.3 20090320Ibm solid db overview v6.3 20090320
Ibm solid db overview v6.3 20090320小新 制造
 
Oracle clusterware overview_11g_en
Oracle clusterware overview_11g_enOracle clusterware overview_11g_en
Oracle clusterware overview_11g_en小新 制造
 

Mehr von 小新 制造 (8)

Memory-Based Cloud Architectures
Memory-Based Cloud ArchitecturesMemory-Based Cloud Architectures
Memory-Based Cloud Architectures
 
Storage: Alternate Futures
Storage: Alternate FuturesStorage: Alternate Futures
Storage: Alternate Futures
 
架构大数据 挑战、现状与展望
架构大数据 挑战、现状与展望架构大数据 挑战、现状与展望
架构大数据 挑战、现状与展望
 
Altibase管理培训 优化篇 v1.1
Altibase管理培训 优化篇 v1.1Altibase管理培训 优化篇 v1.1
Altibase管理培训 优化篇 v1.1
 
Altibase管理培训 管理篇
Altibase管理培训 管理篇Altibase管理培训 管理篇
Altibase管理培训 管理篇
 
Altibase管理培训 安装篇
Altibase管理培训 安装篇Altibase管理培训 安装篇
Altibase管理培训 安装篇
 
Ibm solid db overview v6.3 20090320
Ibm solid db overview v6.3 20090320Ibm solid db overview v6.3 20090320
Ibm solid db overview v6.3 20090320
 
Oracle clusterware overview_11g_en
Oracle clusterware overview_11g_enOracle clusterware overview_11g_en
Oracle clusterware overview_11g_en
 

内存数据库[1]

  • 1. 内存数据库 技术讨论 05/20/12 1
  • 2. 内存数据库技术 • 内存数据库概述 • 内存数据库应用 • 内存数据库功能 • 比较传统数据库 • 内存数据库产品 • 附录 05/20/12 2
  • 3. 内存数据库 概述 内存数据库:   顾名思义就是将数据放在内存中直接操作的数据库 。 • 数据缓存、快速算法、并行操作 • 高性能,高速的内存读写速度 • 多为主拷贝,辅助主数据库 05/20/12 3
  • 4. 内存数据库应用 • 电信行业 -- 实时查询 • 证券行业 -- 证券交易 • 金融行业 -- 网上银行 • 实时应用系统 05/20/12 4
  • 5. 内存数据库功能 • 数据管理,包括定义、存储、维护等 • 数据操作,如查询、存取、完整性检查 • 事务管理,包括调度与并发控制等 • 对存取的控制和安全性检验 • 具有数据库的可靠性恢复机制 05/20/12 5
  • 6. 比较 传统数据库 (一) 内存数据库数据缓存、快速算法、并行操作优化 05/20/12 6
  • 7. 比较 传统数据库 (二) 为什么内存数据库快 ? • 数据访问的成本 • 主存和磁盘的地址映射 • 内存优化的索引结构 • 查询优化 • 日志和恢复 05/20/12 7
  • 8. 比较 传统数据库 (三) 内存数据库 传统数据库 架构 内存为中心 磁盘为中心 实施方式 可以嵌入应用 单独的服务器 IO操作 无 有 响应速度 微秒到毫秒 毫秒级 数据容量 较少 超大数据量 数据特性 短暂 持久 05/20/12 8
  • 9. 内存数据库产品(一) • 应用级共享内存技术 专用程序开发、不支持关系性 SQL 、不支持事务等。 • 专业级内存数据库 应用模式简单、不提供 ESQL 、 C/S 架构支持较差等。 • 通用级的内存数据库 应用广泛、成熟,提供 ESOL 开发效率高等。 05/20/12 9
  • 10. 内存数据库产品 (二) 商业:(通用级内存数据库) • Oracle Timesten • Altibase • eXtremeDB (实时与嵌入式数据库) 开源:(实时与嵌入式数据库) • FastDB 开源:(分布缓存系统 , 基于 memcache 和 BerkeleyDB 开发, Key/Value 操作) • MemcacheDB • Dbcached • Tbstore (非开源) 其他: • 内存表 传统数据库提供的内存表 , 如: sqlite 、 mysql 临时表和内存表 05/20/12 10
  • 11. Oracle Timesten (一) Oracle TimesTen 实时数据管理软件由三个基于内 存中数据库、数据复制和高速缓存技术的产品组成。 1、内存优化的关系数据库; 2、支持服务器间的实时数据复制,以获得高可 用性和负载共享; 3、应用程序层中的 Oracle 数据创建实时、 可 更新的高速缓存。 05/20/12 11
  • 12. Oracle Timesten (二) 内存数据库 TimesTen 与基于磁盘的 RDBMS 架构比 较: 05/20/12 12
  • 13. Oracle Timesten (三) TimesTen 模型 -- 包括 replication 和 Cache Connect : 05/20/12 13
  • 14. Altibase (一) Altibase 是一个在事务优先的环境中提供高性能和 高可用性的软件解决方案。 Altibase 支持客户端 / 服务器架构或嵌入式架构。 Altibase 产品已经走向混合型数据库。 05/20/12 14
  • 15. Altibase (二) Altibase 产品 05/20/12 15
  • 16. Altibase (三) ALTIBASE 数据库的体系结构如下图所示: 05/20/12 16
  • 17. Altibase (四) Altibase 复制技术架构 05/20/12 17
  • 18. eXtremeDB (一) • 实时与嵌入式数据库 • 系统开销少 • 速度达到微秒级 • 完全驻留在主内存中,不使用文件系统(包括内存盘) • 数据管理量在 32BIT 下能达到 20G • 提供 C/C++ 的 Library 方便程序开发 • SQL ( eXtremeSQL )支持 • 日志( eXtremeLog )支持 • 高可用性( eXtremeHA )支持 05/20/12 18
  • 19. eXtremeDB (二) eXtremeDB 运行时环境: 系统架构: 05/20/12 19
  • 20. eXtremeDB (三) eXtremeDB 开发环境: eXtremeSQL 操作概述: 05/20/12 20
  • 21. eXtremeDB (四) eXtremeDB Kernel Model 数据直接访问: eXtremeDB 日志管理: 05/20/12 21
  • 22. eXtremeDB (五) eXtremeDB 高可用性设计: 05/20/12 22
  • 23. FastDB • 数据库文件被影射到虚拟内存空间 , 假定整个数据库存在于 RAM 中 • 不支持 C/S 架构 • 提供 C++ 接口操作数据 • 支持一种语法和 SQL 非常类似的查询语言 • 支持事务 • 在线备份以及系统崩溃后的自动恢复 05/20/12 23
  • 24. MemcacheDB • 前端 memcached 分布式缓存服务器 • 后端 Berkeley DB 的持久化存储,异步主辅复制机制 • 超高性能读写速度 • 不支持内存对象的遍历操作,不支持复杂的查询操作,以 key-value 模 式访问数据 • 具备了事务恢复能力、持久化能力和分布式复制能力 • 相关技术介绍: memcache_engine 05/20/12 24
  • 27. DBcached • DBcached 基于 Memcached 和 NMDB 的分布式 key-value 数据库内 存缓存系统 • QDBM 或 Berkeley DB 作为后端数据库 • DBcached= Memcached + 持久化存储管理器 + NMDB 客户端接口。 • 以 key-value 模式访问数据 • 相关技术介绍 Memcached 是一款高性能的,分布式的内存对象缓存系统。 NMDB 是一款多协议网络数据库 (dbm 类 ) 管理器,它由内存缓存 和磁盘存储两部分构成,使用 QDBM 或 Berkeley DB 作为后端数据 库。 QDBM 是管理数据库的例程库,读写速度比 Berkeley DB 要快。 05/20/12 27
  • 29. MemcacheDB 和 DBcached 区别 • Memcache 服务器池故障转移导致的数据丢失, DBcached 则会请求后端 的 NMDB 取回数据。 • MemcacheDB 只使用了 Memcached 的协议和网络层,抛弃了 Memcached 的内存管理部分,而使用 Berkeley DB 数据库自身的缓存 来实现,是围绕 Berkeley DB 进行开发的。 • DBcached 的设计方向是发挥 Memcached 的内存缓存性能优势,使之 成为一个具有“故障转移”、“数据持久化存储”、“多服务器同时读 写”的高并发内存缓存系统,它是围绕 Memcached 进行开发的。 05/20/12 29
  • 30. Tbstore • 高性能、分布式的 cache 系统 • 基于 Berkeley DB • 缺点是新增服务器大部分 Cache 内容失效 • 非开源,缺乏参考资料 05/20/12 30
  • 32. 附录 (1)--Memcached 概述 Memcached 是一个高性能的分布式的内存对象缓存系统,通过在内 存里维护一个统一的巨大的 hash 表,它能够用来存储各种格式的数据, 包括图像、视频、文件以及数据库检索的结果等。 工作机制: 通过在内存中开辟一块区域来维持一个大的 hash 表来加快页面访 问速度,和数据库是独立的。但是目前主要用来缓存数据库的数据。允 许多个 server 通过网络形成一个大的 hash ,用户不必关心数据存放在哪 ,只调用相关接口就可。存放在内存的数据通过 LRU 算法进行淘汰出内 存。同时可以通过删除和设置失效时间来淘汰存放在内存的数据。 05/20/12 32
  • 33. 附录 (2)--Berkeley DB 概述    Berkeley DB 是由 sleepycat software 开发的轻量级嵌入式数据库,它不仅适用于嵌入式系统 ,而且可以直接连接到应用程序内部,和应用程序运行在同一地址空间。传统的数据库一般作为 独立服务器工作,而 Berkeley DB 是软件开发库,开发者将它嵌入到应用程序中,应用程序本身 就是一个服务器,而只是利用嵌入式数据库开发来实现定制的数据库逻辑,避免了与应用服务器 进程间通信的开销,因此 Berkeley DB 具有较高的运行效率,适用于资源受限的嵌入式系统。 一般而言, Berkeley DB 数据库系统可以大致分为五个子系统。 1 、 存取管理子系统( Access Methods )   该子系统为创建和访问数据库文件提供基本的支持。在没有事务管理的情况下,该子系统中 的模块可单独使用,为应用程序提供快速高效的数据存取服务。 2 、 内存池管理子系统( Memory Pool )   该子系统就是 Berkeley DB 所使用的通用共享内存缓冲区,该子系统可以被应用程序单独使 用。 3 、 事务子系统( Transaction )   该子系统为 Berkekey DB 提供事务管理功能,保证操作的原则性、一致性和孤立性。事务子 系统适用于对需要事务保证的数据进行修改的场合。 4 、 锁子系统( Locking )   该子系统提供进程之间以及进程内部的并发管理机制,为系统提供多用户读取和单用户修改 同一对象的共享控制。该子系统可以被应用程序单独使用。 5 、 日志子系统( Logging )   该子系统采用的是先写日志的策略,支持事务子系统进行数据恢复,保证数据一致性。 05/20/12 33
  • 34. 附录 (3)--Berkeley DB 架构 05/20/12 34