在上一篇的筆記之中,我們討論了數據模型和查詢語言。在第三章之中我們來聊一聊不同的數據引擎內部是如何實現存儲和檢索的,以及不同設計之間的折中與妥協。 1.鍵值對數據庫 鍵值對數據庫是數據庫形式之中最簡單的一種模式,我們可以把它簡化的實現為下面兩個函數: 底層存儲格式也十分簡單:一個 ...
數據模型是開發軟件的最重要的部分,因為它們對應用程序有着深遠的影響:不僅是軟件的編寫方式,而且也影響我們如何解決的問題的方式。第二篇讀書筆記,我們聊一聊數據模型的設計。 .數據模型的分層 作為一個開發者來說,在一個復雜的應用程序中,是存在很多分層模型的,但基本思想還是一樣的:每一層都提供了一個干凈的數據模型,從而隱藏了底層的復雜性。通過這樣的抽象來允許不同的人群有效地協同工作。 每個數據模型都包 ...
2017-12-20 11:05 0 1413 推薦指數:
在上一篇的筆記之中,我們討論了數據模型和查詢語言。在第三章之中我們來聊一聊不同的數據引擎內部是如何實現存儲和檢索的,以及不同設計之間的折中與妥協。 1.鍵值對數據庫 鍵值對數據庫是數據庫形式之中最簡單的一種模式,我們可以把它簡化的實現為下面兩個函數: 底層存儲格式也十分簡單:一個 ...
坦白說也是機緣巧合,在碩士生階段進入分布式系統領域學習。無論是大規模存儲或計算,其核心也是運用分布式技術利用並行性來解決數據密集型應用的需求。最近開始在啃這本《Designing Data-Intensive Applications》大部頭,作者Martin Kleppmann在分布式數據 ...
上一篇聊了聊批處理的缺點,對於無界數據來說,流處理會是更好的選擇,“流”指的是隨着時間的推移逐步增加的數據。消息隊列可以將這些流組織起來,快速的在應用程序中給予反饋。但是消息隊列與傳統的數據庫之間又存在着“剪不斷,理還亂”的“糾葛”,最后我們將探討通過消息隊列之中與時序有關的一些問題 ...
之前的文章大量的內容在和大家探討分布式存儲,接下來的章節進入了分布式計算領域。坦白說,個人之前專業的重心側重於存儲,對許多計算的內容理解可能不是和確切,如果文章中的理解有所不妥,願虛心賜教。本篇將和大家聊一聊分布式計算的一個子集:批處理。 批處理系統通常也叫脫機系統,需要大量的輸入數據 ...
下面是這本書序言中的大部分內容,本人的英文水平有限,有理解不到位的地方還請大家指教,這算是自己對這本書的讀書筆記和總結。 數據是當今系統設計中許多挑戰的中心,一些難以解決的問題如系統的可擴展性,一致性,可靠性,有效性和可維護性等需要弄清楚。 另外,面對這些琳琅滿目的工具包括關系型數據 ...
基於分布式系統的線性一致性。 1.更強的一致性 大多數分布式數據庫至少提供了最終一致性,這意味着如果停止對 ...
相對於讀書筆記,本文更像是一篇閱讀大綱,在初步閱讀本書后,尚有許多疑難,借用此大綱,以后溫故而知新 DDIA講了什么 什么是data-intensive 原文這樣定義 Data-intensive applications are pushing the boundaries ...
什么叫不同分布的數據 舉幾個例子來說明 例子1,要訓練一個手機端的貓識別器,現在有 10000 張手機端的照片,並且被人為標記為是不是貓,然后我們可以從互聯網上得到 200000 張貓咪圖片,網絡上的照片和移動手機端的照片就屬於不同分布; 例子2,要訓練一個語音識別系統,將某個地址轉換成 ...