




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020 4 18 1 一个内存数据库模型的设计与实现 荣垂田 2020 4 18 2 主要内容 1 课题背景 2 内存数据库概述 3 现有系统分析 4 内存数据库服务器的设计与实现 5 客户端软件开发包的设计 6 系统配置与管理工具的设计与实现 7 测试 2020 4 18 3 课题背景 随着电力系统的改革 电能量采集系统的地位越来越重要 系统由单纯服务于调度扩展到电力行业的计划 交易 营销等专业 数据量由单纯的电量扩展到需量 瞬时量 参变量等 为适应电力系统的发展满足电力改革的需求 决定在原有的电能量采集系统产品的基础上 研发面向未来的新一代采集系统 新系统要求系统的数据库具有高效的 稳定的实时特性 2020 4 18 4 内存数据库概述 实现的可行性分析 随着半导体工艺的提高 内存的集成度越来越高 计算机硬件也可以支持超大内存的管理 这样将整个数据库或者数据库的一部分常驻内存成为可能现代的应用需求需要高性能的数据库提供实时可靠的数据 像生产过程控制 CAD CAM 指挥系统 航空航天 电力系统等 使内存数据库有了的用武之地 2020 4 18 5 内存数据库概述 传统的磁盘数据库系统旨在处理永久 稳定的数据 强调维护数据的完整性 一致性 其性能目标是提高系统的吞吐量 尽可能多的处理事务 内存数据库则通过特殊的数据组织和访问方式 提高内存和CPU的利用率 数据的访问效率 数据的访问方式不同即使磁盘数据库有足够大的缓冲区 可以将所有的数据一次换入到缓冲区 也仍然不会获得内存的所有优点 因为其索引依然是按照访问磁盘来设计的 即使所有数据都在缓冲区 每次的数据访问依然要计算数据的物理地址 检查是否在缓冲区等 内存数据库 MMDBMainMemoryDatabase 与磁盘数据库 DRDBDiskResidentDatabase 的区别 2020 4 18 6 现有系统的分析 当前电量采集系统分析 2020 4 18 7 现有系统的分析 根据当前的形势分析 现有系统将面临以下的挑战实时数据的存储以某电网公司现有的电量数据为例 每天的电量表底数据 时段电量数据 加工统计数据就有上百万条记录 若加上需量 瞬时量 参变量等数据 每天的数据量可达到近千万级 数据访问的实时性随着实时交易 实时核算的需求 要求系统的数据采集 数据加工 系统监控等子系统都要具有较高的实时性 也就是说数据采集后要快速存入数据库以备各种统计 报表的数据加工之用 统计后的各种报表要通过快速的数据访问呈现给用户 数据库系统负荷新一代的电量系统不仅为调度专业服务 还要为电力系统的其它专业的系统提供数据 外系统对电量系统数据的访问必定增大电量系统数据库的负荷 2020 4 18 8 改进方案 2020 4 18 9 内存数据库服务器的设计与实现 内存数据库系统结构 由系统配置和客户端管理程序生成 是对内存数据库的定制 对内存数据库的运行起决定性的作用 记录数据库的运行状况 如是否为初次启动 是否有未更新到磁盘的数据及其数量等 记录所有对数据库数据有影响的操作的相关信息 这个文件能够保证所有更新的持久化即更新到磁盘数据库 以及故障后的恢复 用来管理来自客户端的请求 此部分用来实现多线程并发服务器 对于客户端的每个请求只要在服务器允许的情况下都有一个线程与之对应 实现客户端请求的分析和处理 包括SQL语句的处理 内存数据访问 索引的更新等 应用程序需要或更新过的数据 在数据库正常工作期间常驻内存 如索引 数据库信息 数据字典等 2020 4 18 10 物理数据组织与管理 内存数据的物理组织方式是内存数据库实现的基础 其存储结构 索引结构 中间数据存储结构都必须考虑内存直接存取这一特征 本系统的数据采用段页式组织方式和行存储模型 段是逻辑段 其空间不一定连续 每个段存放一个关系 也即存放一个表的全部数据 每个段由不同的页组成 页是空间分配和回收的基本单位 2020 4 18 11 2020 4 18 12 内存数据库的索引结构 在本次设计的数据库中使用由BTree和AVL树发展来的TTree索引 TTree索引既具有BTree存储效率高的优点也有AVL树查找速度快的优点操作通常会引起以下情况 插入引起节点溢出删除引起节点合并树的平衡处理 2020 4 18 13 内存数据库的工作流程 2020 4 18 14 并发服务器的创建 内存数据库服务器必须一直的工作 随时接收客户端的请求和数据 因而不能受外界信号的影响 所以把内存数据的主进程创建为守护进程 守护进程是脱离于终端并且在后台运行的进程 只要系统没有关机或者崩溃 守护进程将在系统中不间断地运行 该服务器是多线程服务器 对于客户端的每一个连接请求服务器端都有一个线程为之提供服务 线程的管理由线程池来实现 以连接为背景 主要包括 线程的创建及预创建 线程的分配 回收以及销毁 2020 4 18 15 SQL语句分析 内存数据库在设计的过程中为了不改变用户使用数据库系统的习惯 客户端的请求都以SQL语句的方式发送给服务器 服务器接收到客户端的请求后 经过SQL语句分析器分析 将其中的信息提取出来保存到一个设定的结构内 以供服务器程序根据此结构中的内容执行相应的操作 typedefstruct intmember sequence1 intmember sequence2 intoperation type union intvalue int charvalue str LENGTH un Search Parameter structOperation chartable name 20 Opertion Typetype Search Parametersp 2020 4 18 16 服务器与客户端之间的通信协议 为了使内存数据库正常的工作 保证客户端与服务器之间的通信 根据实际的工作需求制定了客户端与服务器之间的通信协议 根据客户端请求的不同可以将通信过程分为两类 一类是返回结果不包含结果集的 例如Update Delete Insert Create等语句 另一类请求是包含Select查询语句的请求 这类请求通常都要返回结果集以供客户端的应用程序使用 2020 4 18 17 无返回结果集 有返回结果集 2020 4 18 18 事务与并发控制 事务是用户定义的一个数据库操作的序列 这些操作要么全作要么全不做 是一个不可分割的工作单位 在关系数据库中可以是一条SQL语句 一组SQL语句或整个程序 在本内存数据库中把每一个客户端的请求也即SQL语句作为一个事务来处理 数据库是一个共享的资源 可以供多个用户使用 在这样的系统中 同一时刻并行运行的事务数可达数百个 然而这样事务的ACID特性可能遭到破坏 为了保证数据库的一致性 DBMS需要对并发操作进行正确的调度 数据库的并发调度机制 并发控制就是要用正确的方式调度并发操作 使每一个用户事务的执行不受其他事务的干扰 采用的主要技术是封锁机制 2020 4 18 19 故障恢复 为了保证操作的完整性和数据库的ACID特性 对数据库所做的每一个影响数据库数据的操作都将被记录到日志文件中 对于日志文件的记录使用WAL Write AheadLog 方法 即先将对表的操作记录到日志文件中 然后才进行数据的操作 数据库在启动的时候将建立两个日志文件 库中的每个表在两个日志文件的任何一个中都有自己的记录日志的空间 日志使用内存映射日志 数据库启动时首先将其中的一个日志文件映射到内存 这样每个表都有自己的日志空间互不影响 空间的大小可以由用户来设置 两个日志空间使用Ping Pang法轮换使用 日志空间 文件 的切换发生在以下情况 1 日志空间满 2 日志监视线程检查发现当前日志空间中的记录量达到用户的预定值 3 通过程序更改当前日志空间 2020 4 18 20 数据库故障恢复的过程 1 根据系统配置文件进行数据库的重建和相关信息的初始化 2 检查运行记录文件 检查数据库是否为首次启动 根据设计的要求 在数据库初次或者经过配置重新启动前要运行初始化脚本将所有的文件信息初始化 如果是初次起动则进入3 否则 无论是用户主动暂停运行还是被动停止都要根据运行记录文件和日志文件以及系统配置文件将两个日志文件中的操作更新到磁盘上 3 根据系统配置文件 将需要的历史数据读入到内存数据库 4 将运行记录文件 日志文件映射到内存 并启动日志定时监视进程 5 进行提供服务前的初始化工作 2020 4 18 21 内存数据库的客户端软件开发包 本内存数据库系统采用C S模式实现 客户端的请求都以SQL语句的形式发送给服务器 为了方便用户的使用 提供客户端软件开发包 提供此开发包的目的在于减少使用者的劳动量 屏蔽一些底层的实现 其中的功能主要有 连接的建立 SQL发送前的处理 通信协议的客户端实现 返回结果的提取等 2020 4 18 22 系统配置与管理客户端的设计与实现 本内存数据库在设计的过程中 是以传统的磁盘数据库作为内存数据库数据持久化的存储介质 内存数据库中的数据是最新的版本 是从远程装置采集来的 内存数据库中表结构的属性集合是磁盘数据库中表的属性的集合的子集由于本内存数据库和与其相关的磁盘数据库的特殊关系 在分析了现有内存数据库的配置方式的基础上 我们提供了配置工具 利用此工具可以快速对内存数据库的结构进行构造 2020 4 18 23 设计的原理 2020 4 18 24 配置工具的使用过程 首先要选择相应的数据库 登录数据库 这时工具界面显示的是其中的表信息 根据实际的需求选择需要在内存数据库中实现的表 这时显示的是表的整体信息 如创建时间 包含的字段数等 选择相应的表 再点击选择字段菜单 即进入字段选择界面 这时现实的是该表中包含的各个字段 选择要在内存数据库中出现的字段 使需要的字段出现在右边的多选框内 如果已经选择完毕 则可以点击生成文件按钮 这样这个表的选择结束 依次处理其他的表 2020 4 18 25 测试 1 实时数据的存储 2 提高了系统的实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 温差电器件制造工岗位操作技能考核试卷及答案
- 缩放排工异常处理考核试卷及答案
- 建筑方案设计平面布局图
- 游艇制作厂家施工方案
- 市政承台降水施工方案
- 校园防性侵安全教育方案
- 装修微信营销策划方案
- 罗平新年装修活动方案策划
- 建筑方案设计任务和内容
- 移动人工智能营销方案
- “七一”党课:从《党章》中汲取奋进力量把全面从严治党进行到底
- 游戏室工作室合同范本
- 抖音达人签约合同范本
- T/CCMA 0172-2023移动式升降工作平台施工现场管理规程
- 粮食代烘干协议书
- 铁路交跨协议书
- 2025年网络安全基础知识考试试题及答案
- 医疗卫生行业从业人员资格及工作经历证明(6篇)
- 航拍无人机转让协议合同
- 应急预案鲁西化工集团股份有限公司煤化工二分公司突发环境事件应急预案
- 电影院转让协议合同
评论
0/150
提交评论