成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

數據庫的并發操作與一致性

運維 數據庫運維
要定義并發, 時間并不是一個影響因素: 如果兩個操作不知道對方(的開始和結束以及結果), 無論物理時間上他們何時發生, 我們都稱這兩個操作是并發的。

作為分布式強一致數據庫的開發者, 被多次問到:

如果我在新加坡和歐洲同時修改一條記錄, 如在新加坡 set a=1, 在歐洲 set a=2, 結果 a 是多少?

我的回答是:

可能是 a=1, 也可能是 a=2.

然后提問者會非常困惑和不滿:

你不是說數據庫是強一致的嗎? 為什么結果不確定呢?

我非常理解他的困惑, 但是, 他所提到的"并發操作"和"一致性"并沒有必然的聯系.

并發

Martin Kleppmann 提到并發(Concurrency)的定義:

For defining concurrency, exact time doesn’t matter: we simply call two operations concurrent if they are both unaware of each other, regardless of the physical time at which they occurred.

要定義并發, 時間并不是一個影響因素: 如果兩個操作不知道對方(的開始和結束以及結果), 無論物理時間上他們何時發生, 我們都稱這兩個操作是并發的.

有這樣的例子:

于 00:00:00 時間, 向服務器發起請求 A, 服務器一直沒有返回結果. 然后, 于 00:00:03 時間(顯然在上一個請求發起"之后"), 再向服務器發起請求 B.

那么, 是不是我們就能說 B 是在 A 之后呢? 結論是不能, 這兩個操作是并發操作! 雖然我們明確知道 B 是在 A 發起之后才發起, 但在 B 發起之時, (B)并不知道 A 的結果, 根據 Martin Kleppman 的定義, 兩個操作是并發的.

從時間區間上面來理解并發, 可能會更好. 一個操作由開始時間點和結束時間點, 組成一個時間區間, 如果兩個操作的時間區間有重疊, 則這兩個操作無法區分先后.

另一種定義并發的方法是:

  1. Martin Kleppmann:  An operation A happens before another operation B if B knows about A, or depends on A, or builds upon A in some way. 

如果不屬于此種情況, 即為并發.

一致性

一致性和3個因素密切相關:

  • 先后順序
  • 時間
  • 空間

我所理解, 一致性便是唯一預期. 也就是給定輸入條件, 能推導出唯一的結果. 對于某個操作場景, 無論我們重復驗證多少次, 觀察多少次(時間), 在哪里觀察(空間), 結果都恒定.

如果讀操作(觀察)是在寫操作之后, 那么觀察結果就是我們所預期的那一個確定的結果.

如果讀操作和寫操作是并發的, 那么, 可能觀察到舊值, 也可能觀察到新值. 但是, 一旦觀察到新值, 之后便不可能再觀察到舊值(也即 Linearizable 的意思).

 

責任編輯:張燕妮 來源: 推酷
相關推薦

2021-06-11 09:21:58

緩存數據庫Redis

2023-12-01 13:51:21

數據一致性數據庫

2019-08-30 12:46:10

并發扣款查詢SQL

2017-07-25 14:38:56

數據庫一致性非鎖定讀一致性鎖定讀

2020-09-03 09:45:38

緩存數據庫分布式

2022-10-19 12:22:53

并發扣款一致性

2024-10-28 12:41:25

2022-03-29 10:39:10

緩存數據庫數據

2018-09-11 10:46:10

緩存數據庫一致性

2021-06-22 10:22:08

業務IT一致性首席信息官

2025-04-27 08:52:21

Redis數據庫緩存

2019-09-20 21:50:47

數據庫緩存

2022-04-01 16:55:22

數據庫緩存日志

2022-02-23 09:17:09

數據庫分離變更

2022-03-31 08:21:14

數據庫緩存雙寫數據一致性

2021-07-26 06:33:42

CRDT數據CAP

2024-01-10 08:01:55

高并發場景悲觀鎖

2022-12-14 08:23:30

2017-10-19 18:37:57

數據庫分布式數據庫一致性原理

2021-12-01 08:26:27

數據庫緩存技術
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品乱码久久久久久蜜桃 | 97精品超碰一区二区三区 | 综合一区二区三区 | 欧美激情精品久久久久久 | 一区二区三区精品视频 | 亚洲国产高清在线 | 91在线精品视频 | 夜夜草天天草 | 天堂视频免费 | 日韩成人在线播放 | 久久亚洲精品视频 | 在线观看av网站 | 一区二区电影网 | 超碰在线免费av | 国产精品成人av | 国产精品久久久久久久久久久免费看 | 欧美一区二区三区在线观看 | 亚洲欧美激情精品一区二区 | 中文字幕日韩欧美 | 国产精品揄拍一区二区久久国内亚洲精 | 亚洲国产片 | 国产一区二区在线91 | 国产精品亚洲综合 | av高清 | 国产精品大全 | 国产精品自拍啪啪 | 一级毛片免费完整视频 | av片在线免费看 | 欧美电影免费观看高清 | 精品亚洲一区二区三区四区五区高 | 国产在线观看网站 | 精品少妇一区二区三区日产乱码 | 国产精品欧美一区二区三区不卡 | 国产精品日韩一区二区 | 成人日b视频 | 嫩草视频入口 | 日本又色又爽又黄的大片 | 久久久99国产精品免费 | 一区二区三区四区不卡 | 国产一区二区在线播放 | 亚洲精品久久久一区二区三区 |