zoukankan      html  css  js  c++  java
  • 数据库系统的并发控制的两种实现模型

    目前关系型数据库系统中有两种锁定模型:

    一种是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能力限制。所以它们一般是有个机制定期刷新数据到磁盘上。但是内存中的数据是不持久的,一旦掉电,内存中的数据都会没了,所以为了解决临时掉电等问题,保证数据持久化,所以每次操作都会写入一个日志文件。

    下回启动,就根据这个日志文件来恢复数据。

     欢迎指正!

  • 相关阅读:
    线程&进程
    C#入门基础
    .Net GC垃圾收集机制(下)
    .Net GC垃圾收集机制(上)
    GAC的理解及其作用
    C# DES加密,KEY和IV不同设置的写法
    常见加密算法简析
    密码学
    数字签名是什么?(数字证书)
    加密算法和MD5等散列算法的区别
  • 原文地址:https://www.cnblogs.com/wangtao_20/p/3505693.html
Copyright © 2011-2022 走看看