原创 etcd的raft實現之node

1.前言 在閱讀本文之前希望先閱讀筆者的《etcd的raft實現之log》和《etcd的raft實現之tracker&quorum》,沒有前兩篇文章的背景知識,本文提到的一些概念可能難以理解。當然,如果讀者已經有一定的相關知識可以直接略過

原创 Sparrow:分佈式低延遲調度

1.摘要 大型數據分析框架正在朝着縮短任務執行時間和提高並行度的方向發展來提供低延遲,任務調度器面臨的主要挑戰是在幾百毫秒內完成高度並行的作業調度,這需要在合適的機器上每秒調度數百萬個任務,同時提供毫秒級的延遲和高可用性。本文證明了去中心

原创 主導資源公平DRF:多種資源類型的公平分配

目錄 前言 摘要 1.介紹 2.動機 3.分配特性 4.主導資源公平(DRF) 4.1舉個栗子 4.2DRF調度算法 4.3加權DRF 5.可選的公平分配策略 5.1資產公平 5.2收入均等的競爭均衡(CEEI) 5.3與DRF比較 6.

原创 利⽤⽆鎖隊列實現的協程池,簡約⽽不簡單

前言 衆所周知,golang協程的創建、銷燬、調度是非常輕量的,但是即便再輕量,規模大了開銷也不能忽視的。比如利用協程處理http請求,每個請求用一個協程處理,當QPS上萬的時候,資源消耗還是比較大的。 協程池和線程池一樣,池子中都是熱協

原创 深入剖析kubernetes的API對象類型定義

目錄   1.背景 2.分析 2.1api 2.2metav1 2.2.1MetaType 2.2.3ListMeta 2.3runtime 2.3.1schema 2.3.2Object 3.總結 1.背景 在初學kuberentes的

原创 站在巨人的肩膀上-像kubernetes一樣用etcd存儲自定義對象

背景 衆所周知,kubernetes利用etcd存儲API對象,例如Pod、Deployment、StatefulSet等等。筆者認爲kubernetes這種API對象的設計方案當前來看非常先進,基於etcd實現對象存儲是這個設計方案的關

原创 etcd的raft實現之tracker&quorum

1.前言 在閱讀本文之前請現閱讀《etcd的raft實現之log》,筆者的etcd的raft系列通過一個點(就是log)進行展開,能夠讓讀者比較容易的理解etcd的raft實現,解決讀者無從下手的難題。 在開始分析之前,先做一些名詞解釋,

原创 etcd的raft實現之log

1.前言 raft是什麼我想應該不需要我過多解釋,網上的文章也多如牛毛,raft的實現也不在少數,筆者唯獨選擇etcd這個實現版本,原因很簡單:個人夢想開發一個分佈式操作系統,這個分佈式操作系統的核心需要一個高可靠、高性能的對象存儲。et

原创 golang的“雙向繼承”讓編程更優雅

1.背景 筆者開發⼀套分佈式系統的時候,在管理端實現了raft算法來避免整個系統的單點故障,整個系統的⼤致描述如下: 管理端的所有節點狀態是⼀致的,所以⽤peer定義管理端節點是⽐較貼切的;  在管理端所有節點中選舉出了⼀個leader,

原创 細節決定成敗之C++成員變量、構造函數初始化順序

筆試題 class Runnable { protected: Runnable () : thread(NULL) { pthread_create(&thread, NULL, Runnable::Run, this);

原创 一個去中心化的數據中心操作系統模型

目錄 前言 3.一個去中心化的數據中心操作系統模型 3.1定義和概念 3.2要求 3.2.1效率要求 3.2.2安全要求 3.2.3其他要求 3.3分佈式對象 3.4資源命名 3.5資源管理 3.6永久存儲 3.7併發訪問 3.8總結 前

原创 主導資源公平:多種資源類型的公平分配

目錄 前言 摘要 1.介紹 2.動機 3.分配特性 4.主導資源公平(DRF) 4.1舉個栗子 4.2DRF調度算法 4.3加權DRF 5.可選的公平分配策略 5.1資產公平 5.2收入均等的競爭均衡(CEEI) 5.3與DRF比較 6.

原创 倉庫規模操作系統的背景之集羣調度

前言 本文是Malte Schwarzkopf的博士論文《Operating system support for warehouse-scale computing》一個翻譯版本,融入了作者自身的經驗和理解,讀者如果想閱讀原文,可以訪問

原创 倉庫規模操作系統的背景之操作系統

目錄 前言 操作系統 經典分佈式操作系統 數據中心操作系統 問題和挑戰 效率 安全 觀察 新抽象的可行性 總結 前言 本文是Malte Schwarzkopf的博士論文《Operating system support for wareh