在上一篇的筆記之中,我們討論了數據模型和查詢語言。在第三章之中我們來聊一聊不同的數據引擎內部是如何實現存儲和檢索的,以及不同設計之間的折中與妥協。 1.鍵值對數據庫 鍵值對數據庫是數據庫形式之中最簡單的一種模式,我們可以把它簡化的實現為下面兩個函數: 底層存儲格式也十分簡單:一個 ...
坦白說也是機緣巧合,在碩士生階段進入分布式系統領域學習。無論是大規模存儲或計算,其核心也是運用分布式技術利用並行性來解決數據密集型應用的需求。最近開始在啃這本 Designing Data Intensive Applications 大部頭,作者Martin Kleppmann在分布式數據系統領域有着很深的功底,並在這本書中完整的梳理各類紛繁復雜設計背后的技術邏輯,不同架構之間的妥協與超越,很 ...
2017-12-07 11:53 0 3760 推薦指數:
在上一篇的筆記之中,我們討論了數據模型和查詢語言。在第三章之中我們來聊一聊不同的數據引擎內部是如何實現存儲和檢索的,以及不同設計之間的折中與妥協。 1.鍵值對數據庫 鍵值對數據庫是數據庫形式之中最簡單的一種模式,我們可以把它簡化的實現為下面兩個函數: 底層存儲格式也十分簡單:一個 ...
數據模型是開發軟件的最重要的部分,因為它們對應用程序有着深遠的影響:不僅是軟件的編寫方式,而且也影響我們如何解決的問題的方式。第二篇讀書筆記,我們聊一聊數據模型的設計。 1.數據模型的分層 作為一個開發者來說,在一個復雜的應用程序中,是存在很多分層模型的,但基本思想還是一樣的:每一層 ...
上一篇聊了聊批處理的缺點,對於無界數據來說,流處理會是更好的選擇,“流”指的是隨着時間的推移逐步增加的數據。消息隊列可以將這些流組織起來,快速的在應用程序中給予反饋。但是消息隊列與傳統的數據庫之間又存在着“剪不斷,理還亂”的“糾葛”,最后我們將探討通過消息隊列之中與時序有關的一些問題 ...
之前的文章大量的內容在和大家探討分布式存儲,接下來的章節進入了分布式計算領域。坦白說,個人之前專業的重心側重於存儲,對許多計算的內容理解可能不是和確切,如果文章中的理解有所不妥,願虛心賜教。本篇將和大家聊一聊分布式計算的一個子集:批處理。 批處理系統通常也叫脫機系統,需要大量的輸入數據 ...
下面是這本書序言中的大部分內容,本人的英文水平有限,有理解不到位的地方還請大家指教,這算是自己對這本書的讀書筆記和總結。 數據是當今系統設計中許多挑戰的中心,一些難以解決的問題如系統的可擴展性,一致性,可靠性,有效性和可維護性等需要弄清楚。 另外,面對這些琳琅滿目的工具包括關系型數據 ...
基於分布式系統的線性一致性。 1.更強的一致性 大多數分布式數據庫至少提供了最終一致性,這意味着如果停止對 ...
相對於讀書筆記,本文更像是一篇閱讀大綱,在初步閱讀本書后,尚有許多疑難,借用此大綱,以后溫故而知新 DDIA講了什么 什么是data-intensive 原文這樣定義 Data-intensive applications are pushing the boundaries ...
2.1 用戶行為數據簡介 顯性反饋行為:用戶明確表示對物品喜好的行為。評分、喜歡、不喜歡。 隱性反饋行為:不能明確反應用戶喜好的行為。比如頁面瀏覽。 顯性反饋數據 隱性反饋數據 用戶興趣 明確 ...