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