• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
内存数据库[1]
 

内存数据库[1]

on

  • 836 views

 

Statistics

Views

Total Views
836
Views on SlideShare
836
Embed Views
0

Actions

Likes
0
Downloads
11
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    内存数据库[1] 内存数据库[1] Presentation Transcript

    • 内存数据库 技术讨论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