一种多维数据库的数据事务专利解读

news2024/11/9 2:14:39

什么是事务?

事务是数据库系统中的核心机制。我们要理解下事务概念:什么是事务呢?事务是并发控制的单位,是用户定义的一个操作序列。有四个特性(ACID)

原子性(Atomicity): 事务是数据库的逻辑工作单位,事务中包括的诸操作要么全做,要么全不做;

一致性(Consistency): 事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的;

隔离性(Isolation): 一个事务的执行不能被其他事务干扰;

持续性/永久性(Durability): 一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。

以上是书面解释,简单来说就是把你的操作统一化,要么所有操作都成功,要么就都不成功,如果执行中有某一项操作失败,其之前所有的操作都回滚到未执行这一系列操作之前的状态。

同时事务拥有三种隔离级别,分别是脏读、幻读、不可重复读。分别理解下几个的含义。

脏读

A事务读取B事务尚未提交的数据,此时如果B事务发生错误并执行回滚操作,那么A事务读取到的数据就是脏数据。就好像原本的数据比较干净、纯粹,此时由于B事务更改了它,这个数据变得不再纯粹。这个时候A事务立即读取了这个脏数据,但事务B又用回滚把数据恢复成原来干净、纯粹的样子,而事务A却什么都不知道,最终结果就是事务A读取了此次的脏数据,称为脏读。

这种情况常发生于转账与取款操作中:

幻读(前后多次读取,数据总量不一致)

事务A在执行读取操作,需要两次统计数据的总量,前一次查询数据总量后,此时事务B执行了新增数据的操作并提交后,这个时候事务A读取的数据总量和之前统计的不一样,就像产生了幻觉一样,平白无故的多了几条数据,成为幻读。

不可重复读(前后多次读取,数据内容不一致)

事务A在执行读取操作,由整个事务A比较大,前后读取同一条数据需要经历很长的时间 。而在事务A第一次读取数据,比如此时读取了小明的年龄为20岁,事务B执行更改操作,将小明的年龄更改为30岁,此时事务A第二次读取到小明的年龄时,发现其年龄是30岁,和之前的数据不一样了,也就是数据不重复了,系统不可以读取到重复的数据,成为不可重复读。

因此数据库系统中需要一种事务机制从而可以解决数据库基本操作读、写所带来的各种一致性问题。保证数据的正确性便是数据库系统最基本也是最重要的课题了。

数据事务对多维数据库的意义

元年多维数据库需要一种简单、稳定高效且极易扩展的事务机制,最基础的功能便是要实现及达到读写分离的目的,读不能影响写,写的同时也不能影响读。

根据多维数据库特有的模型及建模特点,并结合参考MVCC的原理,设计出一种适合元年多维数据库的事务机制。

这种事务机制是可以保证数据库的所有操作都是事务性的,同时也是可以保证事务的ACID特性的,同时对事务的回滚也有相应的处理。是一种最简单,安全可靠的事务机制,同时结合多维的特点,对数据和元对象做了事务的隔离解耦,保证了未来的高扩展性。

通过以上机制变可以实现一个简单且稳定的事务机制。这种事务机制结合了多维模型的特点,同时对于OLAP中大量的读操作是可以达到并行处理的目的的,即当用户在数据库中做任何的写操作时不会影响读的操作,同时任何读也不会去影响写的行为。例如当用户在某个时间对某段数据做了修改,那么在该时间之前发生的读操作一定是获取了修改之前的数据,当在修改之后发生的读操作,那么获取一定是修改完成后的数据了。

事务是一切数据库必备的基石,没有这个基石,那么一切数据库的功能,一切数据库的业务处理都会变得没有任何意义,因为丧失了数据的一致性,因此事务主要的目的之一就是解决了数据的一致性问题。

在项目上事务的成功表现

在华为项目上元年内存多维数据库被客户在预算产品线,合并产品线等多个产品线上频繁使用,期间会有大量的用户同时在线进行了频繁的读写操作,在这些频繁的读写操作中,数据信息正确,没有发生过一次数据错乱现象,同国外的同类型数据库产品相比毫不逊色,同时在某些场景的读写上性能表现更好,让用户体验更舒服。正是由于事务这种基础机制的表现才可以让元年内存多维数据表现的如此稳定。在所有的基础软件的成功应用下,必然隐藏着安全、稳定可靠的各种基础组件。因此事务是数据库系统中的三大基础组件之一是非常重要的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/141819.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用 VSCode 开发的必备插件,你都安装了吗?

0️⃣前言 VSCode是由微软研发的一款免费、开源的跨平台代码编辑器,目前是前端开发使用最多的一款软件开发工具。 因为每个开发者所接触项目、所有技术不同, 用到的插件不同, 但总有几个插件基本是必备的, 以下就给出一些插件推荐,希望能给大家一些参考。…

腾讯会议发布录屏工具“会记”,让云端视频协作随用随录、随享随看

随着云端协同成为新常态,企业和组织沟通的形式也在不断丰富。1月5日,腾讯会议发布云端录屏工具“会记”, 用户在腾讯会议中就能自由使用人像、屏幕、声音、窗口等多种组合方式进行录制,录制完成后视频将自动上传至云端&#xff0c…

Centos7.9安装WebLogic详细步骤

目录 一、weblogic下载 二、准备环境 三、创建用户和组 四、安装jdk 安装 五、安装WebLogic 1、使用root用户创建目录/opt/weblogic并授权 2.创建 oraInst.loc 文件 3、创建wls.rsp 响应文件 4、安装weblogic 5、静默创建域 六、启动weblogic 一、weblogic下载 直…

程序员面试中一面、二面、三面有什么区别?

很多公司面试都分一面、二面、三面甚至更多,大家可能会好奇,为什么要面这么多面,每一面又有啥区别呢? 首先我来回答下为什么要这么多面,最核心的是最后3点: 如果光是一个人面,担心会看走眼&…

解决IDEA中ctrl+shift+f快捷键搜索没反应的问题

文章目录0写在前面1 问题解决1.1 直接切换英文输入法1.2 win10 输入法1.3 搜狗输入法1.4 其他2 写在末尾0写在前面 今天想使用《在文件中查询》功能,使用ctrlshiftf进行搜索的时候,疯狂的按组合键一直没用。最后用手点的…… 原因是IDEA的快捷键与输入…

【 java 集合】List接口常用方法总结

📋 个人简介 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜📝 个人主页:馆主阿牛🔥🎉 支持我:点赞👍收藏⭐️留言&#x1f4d…

五、条件构造器和常用接口

文章目录五、条件构造器和常用接口1、wapper介绍2、QueryWrapper2.1 例1:组装查询条件2.2 例2:组装排序条件2.3 例3:组装删除条件2.4 例4:条件的优先级2.5 例5:组装select子句2.6 例6:实现子查询3、UpdateW…

基于opencv的数字识别系统

一、目的 想要实现的功能:帮助我们在泵中扫描燃油,并在应用程序中输入燃油信息。 所需技术:①python程序对于拍摄的汽油泵的图像,尝试从中读取数字。——opencv实现。②先使用python对其进行原型设计,然后将代码转换…

TiDB分布式数据库部署与安装详解

TiUP 是 TiDB 4.0 版本引入的集群运维工具,TiUP cluster 是 TiUP 提供的使用 Golang 编写的集群管理组件,通过 TiUP cluster 组件就可以进行日常的运维工作,包括部署、启动、关闭、销毁、弹性扩缩容、升级 TiDB 集群,以及管理 TiD…

EMQX Enterprise 4.4.124.4.13 发布:集群负载重平衡、TDengine 3.0 适配以及子表批量插入

我们很高兴地告诉大家,EMQX Enterprise 4.4.12 以及 4.4.13 版本正式发布! 在本次发布中,我们带来了集群负载重平衡与节点疏散功能为运维人员提供更灵活的集群管理方式,适配了 TDengine 3.0 版本并新增分表批量插入功能&#xff…

ECMAScript 2022 中的新特性!

新钛云服已累计为您分享718篇技术干货本文盘点ECMAScript 2022 中的新特性,包括顶级等待、RegExp 匹配索引、新的公共和私有类字段等。一、公共和私有实例字段最新的 ES13 规范允许我们将成员字段内联定义为类主体的一部分,我们可以使用#来表示私有字段。…

Python打包(问题记录,带解决)

引言 文章用于测试在Python3.8的版本,打包Obspy地震包,最后集成到PyQt5上。 部署或冻结应用程序是 Python 项目的重要组成部分, 这意味着捆绑所有必需的资源,以便应用程序找到它需要的一切 能够在客户端计算机上运行。 但是&…

Ethereum 基础(一)

以太坊(Ethereum)是社区运行的技术,为加密货币以太币(ETH)和数千个去中心化应用程序提供动力。 ethereum.org是您进入以太坊世界的门户。这项技术是新的、不断发展的——有个向导会有帮助。如果你想深入研究,我们建议你这样做。 …

Linux内核定时器

1.概念 在linux内核内部开发者设计了内核定时器,它的工作原理和硬件定时器一样,使用它不需要关注底层的实现,只需要分配定时器对象,初始化对象,启用定时器即可,当定时时间到达之后执行定时器的处理函数。 …

2022年第十二届APMCM亚太地区数学建模竞赛1月加赛E题翻译以及思路

中文2022年亚洲及太平洋地区建模数学竞赛问题E有多少颗核弹可以摧毁地球?1945年8月6日,第二次世界大战已接近尾声。为了尽快结束战争,美国在日本广岛投下了名为 "小男孩" 的第二颗原子弹。这样一颗原子弹炸死了广岛的200000人&…

硬盘容量计算

硬盘容量(Hard drive capacity)以兆字节(MB)或千兆字节(GB)为单位,主流硬盘容量为500G~2TB,影响硬盘容量的因素有单碟容量和碟片数量。许多人发现,计算机中显…

Java--面向对象经典练习题

文章内容 一、文字版格斗游戏 二、对象数组1 三、对象数组2 四、对象数组3 五、对象数组4 题目代码如下: 文字版格斗游戏 格斗游戏,每个游戏角色的姓名,血量,都不相同,再选定人物的时候(new对象的时候)&#xf…

(Java高级教程)第三章Java网络编程-第一节1:网络编程必备网络知识1之网络初识和网络协议

文章目录一:计算机网络基本概念二:计算机网络发展三:网络协议(1)生活中的协议(2)网络协议(3)协议是谁制定的注意:本节会总结一些必要的网络知识,便…

第03讲:HTTP操作之ElasticSearch映射操作

3.1.3、映射操作 有了索引库,等于有了数据库中的 database。 接下来就需要建索引库(index)中的映射了,类似于数据库(database)中的表结构(table)。 创建数据库表需要设置字段名称,类型,长度,约束等;索引库也一…

P11 PyTorch Momentum

参考: 关于梯度下降与Momentum通俗易懂的解释_ssswill的博客-CSDN博客_梯度 momentum 前言: P9讲梯度的时候,讲到过这种算法的梯度更新方法 这边重点讲解一下原理 Momentum算法又叫做冲量算法,其迭代更新公式如下: 实…