数据库系统的并发控制的两种实现模型
目前关系型数据库系统中有两种锁定模型:
一种是mvcc(Multi-Version Concurrency Control),方便并发控制的。
大多数rdbms都是使用这种方式实现。读不加锁,写加锁的机制。
另外一种是Lock-Based Concurrency Control
要多补充点数据库理论知识了
术语
ACID概念
原子性(Atomicity) A
一致性(Consistency) C
隔离性(Isolation)I
持久性(Durability)D
传统的关系型数据库必须会实现上面几个点的。而mongodb是不会的。发生crash(意外崩溃)数据容易出现问题。
mongodb采用的mmap机制,在断电和某些异常情况下有可能丢失数据或者crash,好消息是1.8以后可以打开journal日志来避免此类问题
schema less是一把双刃剑,因为什么数据都可以往里面存,不像mysql那样会有字段的概念可以对数据有效性把最后一道关,需要在编写程序的时候特别注意一下数据有效性
关系型数据库是怎么避免突然掉电、机器崩溃等意外事情数据仍然持久化?
通过写日志的形式。实际上关系型数据库在写入数据的时候,并不会马上写入到磁盘上去。而是在内存中,这样做的目的是,避免磁盘的i/0能力限制。所以它们一般是有个机制定期刷新数据到磁盘上。但是内存中的数据是不持久的,一旦掉电,内存中的数据都会没了,所以为了解决临时掉电等问题,保证数据持久化,所以每次操作都会写入一个日志文件。
下回启动,就根据这个日志文件来恢复数据。
欢迎指正!
数据库系统的并发控制的两种实现模型相关推荐
- 深度解析两种信用评估模型
"大数据"概念的最早出现,是从2012年2月份纽约时报一篇文章开始的.到目前为止,在大数据领域当中的投资已经越来越热,该领域企业越来越多.大数据在美国金融当中最直接的场景,主要运用 ...
- DIV+CSS两种盒子模型(W3C盒子与IE盒子)
在辨析两种盒子模型之前.先简单说明一下什么叫盒子模型. 原理: 先说说我们在网页设计中常听的属性名:内容(content).填充(padding).边框(border).边界(margin), CSS ...
- 以两种异步模型应用案例,深度解析Future接口
摘要:本文以实际案例的形式分析了两种异步模型,并从源码角度深度解析Future接口和FutureTask类. 本文分享自华为云社区<[精通高并发系列]两种异步模型与深度解析Future接口(一) ...
- css盒模型(css的两种盒模型:标准盒模型、怪异盒模型)和 css3指定盒子模型种类的box-sizing属性
所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用. CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:外边距(margin ...
- HTML的两种盒子模型
一.引入 在网站的制作中,一个复杂的页面,被划分为一个一个的小块. 通过这种划分,把网站的开发过程化整为零.化繁为简,以达到减少开发工作,减轻维护压力的目的. 在网页中,把这种划分后的小块形象的看成一 ...
- C/S和BS两种开发模型
C/S和BS两种开发模型 一.什么是C/S开发模式? 二.什么是B/S开发模式? 三.C/S和B/S的优缺点 一.什么是C/S开发模式? C/S⼜称Client/Server或客户/服务器模式.服务器 ...
- JMS的两种消息模型(Point-to-Point(P2P)和Publish/Subscribe(Pub/Sub))应用举例
http://wuzhaohuixy-qq-com.iteye.com/blog/908395 1.P2P模型 在P2P模型中,有下列概念:消息队列(Queue).发送者(Sender).接收者(Re ...
- CSS的两种盒子模型
前言 在CSS的学习过程中,经常会遇到由不同盒子模型带来的误解问题.这篇文章举例分析了两种不同的盒子模型:W3C盒模型和IE盒模型. 一.W3C盒模型(标准盒模型) 下图为W3C盒模型: CSS中设置 ...
- Hotspot虚拟机的两种架构模型
市面上的java虚拟机有很多种,整体来说分两种架构特点:栈.寄存器 一.基于栈架构的特点(市面上常见的java虚拟机大多的架构方式) 设计实现更简单 不需要考虑寄存器分配问题(使用零地址指令方式分配) ...
- java model1和model2_Java项目(4)——探究两种开发模型的异同-Model1与Model2
弱弱的说一句: jsp在web服务器上,这一点应该没有疑问吧? 首先很俗套地看下两个模型. Model1就是实现,实现就行,系统简单,谈不上架构,正如简单工厂并不算在23个常用设计模式之列一样.Mod ...
最新文章
- 经典相位法三维轮廓测量模型
- js端调用android端同步方法,JS怎样调用Android本地原生方法
- 0基础学python难吗-0基础学Python有多难?该怎么入门?
- ICC_lab总结——ICC_lab2:设计规划
- UltraGrid的Row,通过BindingSource,给ComboBox修改,修改后,内容无法即时反馈给UltraGrid的bug...
- webservice 原理
- Rectangle 属性
- 手机通讯录备份代码实现二
- 1.2 线性回归的keras实现
- CS61A自学者学习指南
- 微云Android2.2apk,微云安卓版V6.2.10
- HTML5小游戏源码收藏
- 8 岁小学生B站教编程惊动苹果,库克亲自送生日祝福!
- 换链接,群发和伪原创何时是尽头
- 【学习笔记】Splay
- 果然是WIFI引起局域网速度慢
- 《校园十大优秀青年评比》课程设计作品——顺利通过!!!
- 【前端基础】Vue学习笔记
- 17joys用户管理功能-模型
- Verilog学习手筏(一)
热门文章
- 多线程Socket传送文件的客户端和服务端源代码
- Wireshark实战分析之TCP协议(一)
- 对PAR DAR SAR的理解
- csdn中让图片居中
- cvtcolor函数_5 OpenCV几个函数操作实例
- ios 数组中的字典排序_iOS开发——根据数组中的字典中的某一元素排序
- 怎么用计算机输出手机的密码,手机连接wifi后怎么看密码?手机连接wifi后看密码的方法-太平洋IT百科...
- 计算机上可以插键盘吗,电脑键盘上这些按键竟然可以这样用?
- 软件页面安全性测试,软件Web安全性测试—SQL注入
- sqlserver 分组合并列_[雅思经验]?两个月备考,一战雅思7.5分经验分享!!!