首页
学习
活动
专区
工具
TVP
发布

分布式系统进阶

专栏作者
104
文章
144974
阅读量
30
订阅数
重读 Google File System
本着常读常新的原则,最近又一次阅读了Google三架马车之一的《Google File System》。它里面的一些设计思想,实现原则以及取舍,时至今日仍很有参考价值。
扫帚的影子
2021-02-02
8910
Linux Signal 一网打尽
Linux Signal想毕很多人都用过,比如在命令行下想要结束某个进程,我们会使用kill pid或者kill -9 pid,其实就是通过给对应的进程发送信号来完成。
扫帚的影子
2020-09-10
2.2K0
Linux PID 一网打尽
Linux 进程 PID 大家都知道,top命令就可以很容易看到各个进程的 PID, 稍进一步top -H,我们还能够看到各个线程的ID, 即TID。今天我们想深入到Linux Kernel, 看一看在 Kernel里PID的来龙去脉。
扫帚的影子
2020-08-20
3.1K0
Socket编程中的几点问题总结
Socket编程中的几点问题总结 epoll_ctl中 epoll_event参数设置 对于 EPOLLERR和EPOLLHUP,不需要在epoll_event时针对fd作设置,一样也会触发; EPOLLRDHUP实测在对端关闭时会触发,需要注意的是: 对EPOLLRDHUP的处理应该放在EPOLLIN和EPOLLOUT前面,处理方式应该 是close掉相应的fd后,作其他应用层的清理动作; 如果采用的是LT触发模式,且没有close相应的fd, EPOLLRDHUP会持续被触发; EPOLLRDH
扫帚的影子
2020-06-22
1.8K0
Filebeat 收集日志的那些事儿
最近因为云原生日志收集的需要,我们打算使用Filebeat作为容器日志收集工具,并对其进行二次开发。开源日志收集组件众多,之所以选择Filebeat,主要基于以下几点:
扫帚的影子
2020-05-27
2.4K0
如何确定Kafka集群适当的topics/partitions数量
在一个Kafka集群中如何选择topics/partitions的数量 翻译自How to choose the number of topics/partitions in a Kafka clus
扫帚的影子
2020-03-20
2.2K0
使用mvn创建java工程的极简教程
最近开始集中精力搞java的开源项目,在这时记录一下使用mvn创建java工程的比较简单的流程,以备不时之需,适用于我等java小白~~~ 文中相关代码已上传: https://github.com/DavidLiuXh/ExampleBank 使用mvn创建java工程 安装mvn 我们之前参考官网就好: Installing Apache Maven 创建java工程 命令行执行 mvn archetype:generate -DgroupId=com.mytest -DartifactId=tes
扫帚的影子
2020-03-20
6940
Linux中断一网打尽(1) —— 中断及其初始化
既然叫中断, 那我们首先就会想到这个中断是中断谁?想一想计算机最核心的部分是什么?没错, CPU, 计算机上绝大部分的计算都在CPU中完成,因此这个中断也就是中断CPU当前的运行,让CPU转而先处理这个引起中断的事件,通常来说这个中断的事件比较紧急,处理完毕后再继续执行之前被中断的task。比如,我们敲击键盘,CPU就必须立即响应这个操作,不然我们打字就全变成了慢动作~。说白了中断其实就是一种主动通知机制,如果中断源不主动通知,那想知道其发生了什么事情,只能一次次地轮询了,白白耗费CPU。
扫帚的影子
2020-02-25
1.5K0
Zookeeper的日志配置
zookeeper使用广泛,作为接近于开箱即用的一个服务,其日志的配置貌似没有作得很方便,接下来我们总结下这个日志配置的方法
扫帚的影子
2020-02-24
1.4K0
消息中间件的 "Style"
​ 现如今,消息中间件已经在很多公司的业务中被广泛使用:业务解耦,消峰填谷,对接大数据,流式计算等等各种玩法层出不穷。伴随着消息中间件的使用,你一定还听过 "消息队列",“pub-sub”这些名词,我们今天就来聊一下这些消息中间件提供给业务的可使用的 "Style"。
扫帚的影子
2020-02-18
4910
Linux中断 - IDT
中断描述符表简单来说说是定义了发生中断/异常时,CPU按这张表中定义的行为来处理对应的中断/异常。
扫帚的影子
2020-02-18
6.4K0
Linux 启动流程 -- 按下电源后发生的那些事儿
写在前面 从按下电源到Linux完全启动,发生的事情有太多太多,细节也太多太多,这里我们不会那么深入细节,但力求理清整体的脉络; 这里暂时只会介绍到 体系结构无关部分的初始化和体系结构相关部分的初始化
扫帚的影子
2020-02-10
9640
汇编实现的memcpy和memset
闲话不多说,今天来看看汇编中如何实现memcpy和memset(脑子里快回忆下你最后一次接触汇编是什么时候......)
扫帚的影子
2019-12-19
2.5K0
Linux Epoll 一网打尽
epoll同样是linux上的IO多路复用的一种实现,内核在实现时使用的数据结构相比select要复杂,但原理上并不复杂,我们力求在下面的描述里抽出主干,理清思路。
扫帚的影子
2019-11-20
1.6K0
Linux select 一网打尽
注:本文的所有内容均指针对 Linux Kernel, 当前使用的源码版本是 5.3.0
扫帚的影子
2019-11-13
2.2K0
The Linux Scheduler: a Decade of Wasted Cores 译文 二
决定一次负载均衡是否要发生有很多的规则,因此也就很难推断如果有工作可作时一个空闲核能够维持空闲多久,也很难推断在系统中有空闲核时,任务变为可运行状态前还要在运行队列里等待多久。因为之前极少数的开发者可以在第一次就写出完美的代码,这种复杂性又导致了bug的出现。弄明白这个bug是必要的,这样才能搞明白为什么他们避开了传统的测试和调试工具。因此,我们首先将描述这引起bug, 延后在展示我们所使用的工具。
扫帚的影子
2019-11-11
7830
The Linux Scheduler: a Decade of Wasted Cores 译文 一
​ 作为资源管理的核心部分,OS的线程调度器必须保持下面这样简单,不变的特性: 确保ready状态的线程总是被调度到有效的CPU核上。虽然它看起来是简单的,我们发现这个不变性在Linux上经常被打破。当ready状态的线程在runqueue中等待时,有些CPU核却还会空闲几秒。以我们的经验,这类性能方面的问题会导致重度依赖同步的应用的性能成倍的下降,针对Kernel编译会多造成高达13%的延迟,针对广泛使用的商用数据库会造成23%的吞吐量降低。传统的测试技术和调试工具对于确认和了解这类问题是无效的,因此这些问题的症状经常是难以捕获的。为了能够推动我们的调查,我们构建了新的工具来在线检测这种违反不变性的情况并且将调度行为可视化。这些工具是简单的,易于在多个kernel版本间移植的并且使用的代价很小。我们相信这些工具将成为内核开发者工具链的一部分来帮助其避免这类问题的出现。
扫帚的影子
2019-11-04
6540
学习mmap
最近在工作中遇到一个mmap使用相关的问题,造成了一定的困惑,于是花了些时间补了下 mmap的功课,在这里分享给大家,错误和不足之处大家多指教。
扫帚的影子
2019-10-25
8030
Apache BookKeeper中数据目录分析
Apache BookKeeper中数据目录分析 需要落盘的数据 Journals 这个journals文件里存储的相当于BookKeeper的事务log或者说是写前log, 在任何针对ledger的更新发生前,都会先将这个更新的描述信息持久化到这个journal文件中。 Bookeeper提供有单独的sync线程根据当前journal文件的大小来作journal文件的rolling; EntryLogFile 存储真正数据的文件,写入的时候Entry数据先缓存在内存buffer中,然后批量flush到En
扫帚的影子
2019-08-22
1.3K0
Apache BookKeeper之MetaData管理
在Apache BookKeeper中对MetaData的所有操作都被封装到一个抽象接口MetadataBookieDriver中;
扫帚的影子
2019-08-20
1.5K0
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
热点技术征文第五期
新风口Sora来袭,普通人该如何把握机会?
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品·最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档