说明:收录25万 73个行业的国家标准 支持批量下载
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210796704.9 (22)申请日 2022.07.06 (71)申请人 厦门飞鱼科技有限公司 地址 361006 福建省厦门市自由贸易试验 区厦门片区象屿路97号厦门国际航运 中心D栋8层0 3单元A之五 (72)发明人 郑宇 姚剑军 许艺清 李东君  (74)专利代理 机构 北京市盛峰律师事务所 11337 专利代理师 席小东 (51)Int.Cl. G06F 9/46(2006.01) G06F 16/2455(2019.01) (54)发明名称 内存数据操作的事务处 理方法 (57)摘要 本发明提供一种内存数据操作的事务处理 方法, 包括以下步骤: 当用户进程发送对内存的 用户数据的n条操作 指令时, 将n条操作指令放入 事务函数中; do事务执行函数在内层中创建日志 列表, 将事务函数作为参数, 传递给do事务执行 函数, 由do事务执行函数按执行逻辑执行对内存 的n条操作指令, 执行过程中, 将对内存的操作过 程实时添加到日志列表; 实时采用异常机制对操 作过程进行错误捕捉, 如果捕捉到错误, 进行回 滚。 本发明中, 自定义一套内存事务, 用于处理业 务层对内存的操作。 在对内存数据操作时, 通过 内存事务处理机制, 保证内存数据的完整性和正 确性, 并支持嵌套, 在服务器端和客户端均可使 用。 权利要求书2页 说明书4页 附图2页 CN 115185648 A 2022.10.14 CN 115185648 A 1.一种内存数据操作的事务处 理方法, 其特 征在于, 包括以下步骤: 步骤1, 在业务层和数据库之间加入内存作为缓存; 当业务层启动新的用户进程pro_ user时, 将数据库存 储的与所述用户进程pro_user对应的用户数据加载到内存; 步骤2, 当用户进程pro_user发送对内存的用户数据的n条操作指令时, 其中, n为自然 数, n条操作指 令具有执行逻辑关系, 根据n条操作指 令的执行逻辑关系, 定义与本次操作指 令对应的事务 函数tran(A), 将n条操作指令放入 事务函数tran(A)中; 步骤3, 创建与本次操作指令对应的do事务执行函数; do事务执行函数在内层中创建 tran_log日志列表, 并置t ran_log日志列表初始状态为空列表; 将事务函数tran(A)作为参数, 传递给do事务执行函数, 由do事务执行函数按执行逻辑 执行对内存的n条操作指 令, 在执行n条操作指 令的过程中, 一方面, 将对内存的操作过程 实 时添加到tran_log日志列表; 另一方面, 实时采用异常机制对操作过程进行错误捕捉, 如果 捕捉到错误, 则执行步骤4; 如果没有捕捉到错误, 表明成功执行完成对内存的n条操作指 令, 注销事务函数tran(A)、 tran_log日志列表和do事务执行函数, 本次的n条操作指令执行 完成, 然后执 行步骤5; 步骤4, 按顺序反向遍历tran_lo g日志列表, 根据tran_lo g日志列表记录的对内存的操 作过程, 回滚已经执行的操作过程, 实现对内存用户数据的还原, 将内存用户数据还原到未 执行本次n条操作指令的初始状态; 然后注销事务函数tran(A)、 tran_log日志列表和do事 务执行函数, 不再 执行本次的n条操作指令, 结束本次处 理流程; 步骤5, 将tran_log日志列表记录的对内存的操作过程发送到数据落地进程, 数据落地 进程将对内存的操作过程 转换成sql语句, 异步发送给落 地文件进程和落 地数据库进程; 落地文件进程将sql语句写成文件, 并保存在本地机器备份; 落地数据库进程通过 socket与mysql数据库连接, 发送sql语句到数据库, 完成对 数据库的操作, 实现数据库与内 存的同步, 完成数据落 地。 2.根据权利要求1所述的内存数据操作的事务处理方法, 其特征在于, 步骤3中创建的 do事务执行函数, 为具有嵌套关系的多层do事务执行函数, 包括外层do事务执行函数和内 层do事务执 行函数; 在将事务函数tran(A)传递给do事务执行函数时, 根据事务函数tran(A)内包含的n条 操作指令的执行逻辑, 将部分操作指令置入到内层do事务执行函数, 将部分操作指令置入 到外层do事务执 行函数内, 并且不 位于内层do事务执 行函数中。 3.根据权利要求2所述的内存数据操作的事务处理方法, 其特征在于, 对于具有嵌套关 系的多层do事务执 行函数, 共享同一个t ran_log日志列表。 4.根据权利要求1所述的内存数据操作的事务处理方法, 其特征在于, 对内存的操作指 令包括三类, 分别为: 插 入操作、 更新操作和删除操作; 如果为插入操作, 将插 入的新数据的key记录 到tran_log日志列表; 如果为更新操作, 将被更新的旧数据记录 到tran_log日志列表; 如果为删除操作, 将需要删除的旧数据记录 到tran_log日志列表; 在回滚时, 执 行以下还原操作: 如果为插入操作, 则根据tran_lo g日志列表读取到新数据的key, 并在内存中删除新数 据;权 利 要 求 书 1/2 页 2 CN 115185648 A 2如果为更新操作, 则根据tran_log日志列表读取到旧数据, 并采用旧数据更新对应的 新数据; 如果为删除操作, 则根据tran_log日志列表读取到被删除的旧数据, 并将 旧数据重新 插入到内存的对应位置 。权 利 要 求 书 2/2 页 3 CN 115185648 A 3

.PDF文档 专利 内存数据操作的事务处理方法

文档预览
中文文档 9 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共9页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 内存数据操作的事务处理方法 第 1 页 专利 内存数据操作的事务处理方法 第 2 页 专利 内存数据操作的事务处理方法 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 17:16:35上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。