iT邦幫忙

2022 iThome 鐵人賽

DAY 4
0
Software Development

NoSQL: Not Only SQL系列 第 4

[Day 4] NoSQL Database 的 BASE 特性

  • 分享至 

  • xImage
  •  

操作資料庫時,在資料處理的環節正確使用交易可以節省我們很多心力,但為了達到 ACID 同樣需要付出成本。NoSQL Database 選擇有策略的犧牲部分一致性以滿足高可用性和高可擴展性的需求,相較於 ACID,NoSQL Database 則具有 BASE 的特性。

技術持續發展至今,部分 NoSQL Database 已經提供交易的功能了,不過建議使用前確認一下該資料庫使用交易的成本和效果是否符合你的預期。

如果你以為 BASE 跟 ACID 一樣是四個特性的縮寫,那你就錯了,BASE 其實是 Basically Availible、Soft State 和 Eventually Consistent,感覺有點為了對應酸 (ACID) 所以想辦法兜出鹼 (BASE) 方便記憶。

Basically Availible 基本上可用

意思就是不保證「完整的」可用性,但基本上可以維持可用。由於 NoSQL Database 可以水平擴展,因此當其中一個節點有狀況無法回應請求時,其餘的節點仍可正常運行。例如今天有5個節點,若其中2號節點網路有問題無法連線,至少另外4個節點仍然可以正常處理請求。

https://ithelp.ithome.com.tw/upload/images/20220906/20151137SmIe8RHpzf.png

Soft State 軟狀態

相較於馬上同步且一定維持一致性的硬狀態,軟狀態表示資料庫會有暫時性的不一致,也就是目前取到的狀態有可能會因為時間而產生變化。

Eventually Consistency 最終一致

不保證現在立刻馬上維持一致,但保證資料庫最終會達到一致。像是在臉書動態牆上可能看到沒那麼即時的按讚數,但一段時間後重新查看就可以拿到正確的數字。

https://ithelp.ithome.com.tw/upload/images/20220906/20151137CJmF7xjqpD.png


上一篇
[Day3] 關聯式資料庫交易的 ACID 特性
下一篇
[Day 5] CAP理論:取捨取捨,到底取什麼捨什麼?
系列文
NoSQL: Not Only SQL30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言