
分布式系统
文章平均质量分 94
进德
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Kubernetes的RecognizingDecoder解析
前言在Serializer文章中提到了,Serializer虽然抽象了序列化/反序列化的接口,但是反序列化不同格式的数据需要不同的Serializer对象,并不是很通用。有没有一种类型可以反序列化任意格式的数据呢?答案是有的,但是在介绍这个“万能解码器”之前,需要引入RecognizingDecoder接口。本文引用源码为kubernetes的release-1.21分支。RecognizingDecoder如果笔者自己实现“万能解码器”,我抽象一个接口用于判断解码器是否能够解码当前格式的数原创 2021-06-08 22:17:42 · 2090 阅读 · 1 评论 -
Kubernetes的Serializer解析
前言序列化和反序列化在很多项目中都有应用,Kubernetes也不例外。Kubernetes中定义了大量的API对象,为此还单独设计了一个包,方便多个模块引用。API对象在不同的模块之间传输(尤其是跨进程)可能会用到序列化与反序列化,不同的场景对于序列化个格式又不同,比如grpc协议用protobuf,用户交互用yaml(因为yaml可读性强),etcd存储用json。Kubernetes反序列化API对象不同于我们常用的json.Unmarshal()函数(需要传入对象指针),Kubernetes需要原创 2021-06-08 22:12:42 · 3889 阅读 · 0 评论 -
kube-scheduler的EventHandlers解析
前言笔者已经在调度队列、调度框架、调度插件、调度缓存以及调度扩展器等文章中解析了kube-scheduler基本的调度原理与实现,但是有没有发现几个问题?需要调度的Pod是怎么进入调度队列的? 调度完成的Pod是如何被更新到调度缓存的? Node的上线、下线等状态更新是如何更新到调度缓存的? 调度插件依赖的各种资源(比如PV)是如何影响调度的?只有解答了以上问题后,才能把kube-scheduler各个功能模块串接起来,形成闭环。本文的目标就是解析kube-scheduler是如何感知调度依原创 2021-05-31 22:12:26 · 3337 阅读 · 0 评论 -
Apollo:云规模计算的可扩展协同调度
摘要在云规模的计算群集上有效地调度数据并行计算作业对于作业性能、系统吞吐量和资源利用率至关重要。随着集群规模和具有各种特征的更复杂的workload的增长,这变得越来越具有挑战性。本文介绍了Apollo,这是一种高度可扩展协同调度框架,已部署到Microsoft的生产集群上,可每天高效地在数万台计算机上调度数以千计的计算(数百万个任务)。该框架通过松散协调的机制利用全局群集信息以分布式方式执行调度决策。每个调度决策都会考虑未来的资源可用性,并在一个统一的模型中一起优化各种性能和系统因素。Apollo具有原创 2020-08-30 15:04:48 · 15244 阅读 · 0 评论 -
Sparrow:分布式低延迟调度
1.摘要大型数据分析框架正在朝着缩短任务执行时间和提高并行度的方向发展来提供低延迟,任务调度器面临的主要挑战是在几百毫秒内完成高度并行的作业调度,这需要在合适的机器上每秒调度数百万个任务,同时提供毫秒级的延迟和高可用性。本文证明了去中心化、随机抽样方法可提供最佳性能,同时避免了中心化设计存在吞吐量和高可用的问题。本文在110台计算机集群上部署Sparrow,并证明Sparrow的性能与理想的调度程序的误差在12%以内。2.介绍当今的数据分析集群运行的时间越来越短,作业的任务越来越多。在对低延迟交原创 2020-06-05 23:24:42 · 15883 阅读 · 0 评论 -
etcd的raft实现之node
1.前言在阅读本文之前希望先阅读笔者的《etcd的raft实现之log》和《etcd的raft实现之tracker&quorum》,没有前两篇文章的背景知识,本文提到的一些概念可能难以理解。当然,如果读者已经有一定的相关知识可以直接略过。node给人第一个印象应该是raft节点功能的实现,其实并不是很准确。在笔者看来,node应该是raft的接口类,如果把raft看做一个库/包的话...原创 2019-09-19 23:43:54 · 15875 阅读 · 0 评论 -
etcd的raft实现之log
1.前言raft是什么我想应该不需要我过多解释,网上的文章也多如牛毛,raft的实现也不在少数,笔者唯独选择etcd这个实现版本,原因很简单:个人梦想开发一个分布式操作系统,这个分布式操作系统的核心需要一个高可靠、高性能的对象存储。etcd是一个非常优秀的项目,很多其他优秀的项目(比如kubernetes)都是基于etcd开发,所以我开始更深入的了解etcd。在开始本文正式内容之前,笔者现...原创 2019-08-21 23:43:04 · 17317 阅读 · 2 评论 -
etcd的raft实现之tracker&quorum
1.前言在阅读本文之前请现阅读《etcd的raft实现之log》,笔者的etcd的raft系列通过一个点(就是log)进行展开,能够让读者比较容易的理解etcd的raft实现,解决读者无从下手的难题。在开始分析之前,先做一些名词解释,在《etcd的raft实现之log》中提到的概念本文就不在重复了:Peer:原意是同龄人或者同辈份的人,在raft中是参与选举和投票的节点,寓意raft节...原创 2019-08-24 20:16:50 · 16665 阅读 · 1 评论 -
一个去中心化的数据中心操作系统模型
目录前言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总结前言本文是Malte Schwarzkopf的博士论文《Operating system support for warehouse...翻译 2019-01-11 23:11:52 · 16950 阅读 · 0 评论 -
仓库规模操作系统的背景之集群调度
前言本文是Malte Schwarzkopf的博士论文《Operating system support for warehouse-scale computing》一个翻译版本,融入了作者自身的经验和理解,读者如果想阅读原文,可以访问:http://people.csail.mit.edu/malte/pub/dissertations/phd-final.pdf编写本文的目的是提供一个...翻译 2019-01-01 14:30:36 · 15202 阅读 · 0 评论 -
仓库规模操作系统的背景之仓库规模计算机
目录前言背景仓库规模计算机工作负载分布式基础设施系统应用与用户作业硬件异构同位干扰总结前言本文是Malte Schwarzkopf的博士论文《Operating system support for warehouse-scale computing》一个翻译版本,融入了作者自身的经验和理解,读者如果想阅读原文,可以访问:http://people.cs...翻译 2018-12-17 23:20:07 · 16809 阅读 · 0 评论 -
仓库规模操作系统的背景之操作系统
目录前言操作系统经典分布式操作系统数据中心操作系统问题和挑战效率安全观察新抽象的可行性总结前言本文是Malte Schwarzkopf的博士论文《Operating system support for warehouse-scale computing》一个翻译版本,融入了作者自身的经验和理解,读者如果想阅读原文,可以访问:http://peopl...翻译 2018-12-26 23:29:05 · 15459 阅读 · 0 评论