在上一篇的筆記之中,我們討論了數據模型和查詢語言。在第三章之中我們來聊一聊不同的數據引擎內部是如何實現存儲和檢索的,以及不同設計之間的折中與妥協。 1.鍵值對數據庫 鍵值對數據庫是數據庫形式之中最簡單的一種模式,我們可以把它簡化的實現為下面兩個函數: 底層存儲格式也十分簡單:一個 ...
上一篇聊了聊批處理的缺點,對於無界數據來說,流處理會是更好的選擇, 流 指的是隨着時間的推移逐步增加的數據。消息隊列可以將這些流組織起來,快速的在應用程序中給予反饋。但是消息隊列與傳統的數據庫之間又存在着 剪不斷,理還亂 的 糾葛 ,最后我們將探討通過消息隊列之中與時序有關的一些問題。 文件是批處理作業的輸入和輸出,而在流處理之中,作業的輸入輸出等價物是什么呢 在流處理之中,當輸入是文件時,第一 ...
2018-03-06 14:15 0 1304 推薦指數:
在上一篇的筆記之中,我們討論了數據模型和查詢語言。在第三章之中我們來聊一聊不同的數據引擎內部是如何實現存儲和檢索的,以及不同設計之間的折中與妥協。 1.鍵值對數據庫 鍵值對數據庫是數據庫形式之中最簡單的一種模式,我們可以把它簡化的實現為下面兩個函數: 底層存儲格式也十分簡單:一個 ...
之前的文章大量的內容在和大家探討分布式存儲,接下來的章節進入了分布式計算領域。坦白說,個人之前專業的重心側重於存儲,對許多計算的內容理解可能不是和確切,如果文章中的理解有所不妥,願虛心賜教。本篇將和大家聊一聊分布式計算的一個子集:批處理。 批處理系統通常也叫脫機系統,需要大量的輸入數據 ...
坦白說也是機緣巧合,在碩士生階段進入分布式系統領域學習。無論是大規模存儲或計算,其核心也是運用分布式技術利用並行性來解決數據密集型應用的需求。最近開始在啃這本《Designing Data-Intensive Applications》大部頭,作者Martin Kleppmann在分布式數據 ...
數據模型是開發軟件的最重要的部分,因為它們對應用程序有着深遠的影響:不僅是軟件的編寫方式,而且也影響我們如何解決的問題的方式。第二篇讀書筆記,我們聊一聊數據模型的設計。 1.數據模型的分層 作為一個開發者來說,在一個復雜的應用程序中,是存在很多分層模型的,但基本思想還是一樣的:每一層 ...
,NoSQL數據庫,流處理或批處理以及消息隊列等,我們該如何做出正確的選擇? 我們又該如何正確理解這些流行術 ...
上一篇聊了聊構建分布式系統所面臨的困難,這篇將着重討論構建容錯分布式系統的算法與協議。構建容錯系統的最佳方法是使用通用抽象,允許應用程序忽略分布式系統中的一些問題。本篇我們先聊一聊線性一致性,以 ...
相對於讀書筆記,本文更像是一篇閱讀大綱,在初步閱讀本書后,尚有許多疑難,借用此大綱,以后溫故而知新 DDIA講了什么 什么是data-intensive 原文這樣定義 Data-intensive applications are pushing the boundaries ...
【Broker簡述】 Broker是RocketMQ的核心,大部分“重量級”的工作都是由Broker完成的,包括: 1.接受Producer發過來的消息; 2.處理Consumer的消費信息請求; 3.消息的持久化存儲; 4.消息的HA機制; 5.服務端的過濾功能。 【消息 ...