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

分布式系统进阶

专栏作者
104
文章
146907
阅读量
30
订阅数
重读 Google File System
本着常读常新的原则,最近又一次阅读了Google三架马车之一的《Google File System》。它里面的一些设计思想,实现原则以及取舍,时至今日仍很有参考价值。
扫帚的影子
2021-02-02
9230
使用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
7090
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
7880
The Linux Scheduler: a Decade of Wasted Cores 译文 一
​ 作为资源管理的核心部分,OS的线程调度器必须保持下面这样简单,不变的特性: 确保ready状态的线程总是被调度到有效的CPU核上。虽然它看起来是简单的,我们发现这个不变性在Linux上经常被打破。当ready状态的线程在runqueue中等待时,有些CPU核却还会空闲几秒。以我们的经验,这类性能方面的问题会导致重度依赖同步的应用的性能成倍的下降,针对Kernel编译会多造成高达13%的延迟,针对广泛使用的商用数据库会造成23%的吞吐量降低。传统的测试技术和调试工具对于确认和了解这类问题是无效的,因此这些问题的症状经常是难以捕获的。为了能够推动我们的调查,我们构建了新的工具来在线检测这种违反不变性的情况并且将调度行为可视化。这些工具是简单的,易于在多个kernel版本间移植的并且使用的代价很小。我们相信这些工具将成为内核开发者工具链的一部分来帮助其避免这类问题的出现。
扫帚的影子
2019-11-04
6620
学习mmap
最近在工作中遇到一个mmap使用相关的问题,造成了一定的困惑,于是花了些时间补了下 mmap的功课,在这里分享给大家,错误和不足之处大家多指教。
扫帚的影子
2019-10-25
8140
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
Influxdb中的Compaction操作
Plan,PlanLevel,PlanOptimize返回的都是[]CompactionGroup, 它的类型其实是 [][]string, 即一组可以并行执行Compaction操作的tsm文件路径的列表;
扫帚的影子
2019-05-07
1.9K0
Influxdb中TSM文件结构解析之读写TSM
按给定的时间戳和排序规则,对所有datablock作排序后输出,每次调用Next后,都会输出一部分排序好的Datablock
扫帚的影子
2019-03-29
1.7K0
Influxdb中的Series file解析
其中的flag有两个可能的值: SeriesEntryInsertFlag:表示当前写入的SeriesKey是有效的; SeriesEntryTombstoneFlag:墓碑标识。
扫帚的影子
2019-03-01
2.8K0
InfluxDB中的inmem内存索引结构解析
tagKeyValueEntry 定义: type tagKeyValueEntry struct { m map[uint64]struct{} // series id set a seriesIDs // lazily sorted list of series.这两个字段存储的是相同的series id的集合 } 获取series id集合 func (e *tagKeyValueEntry) ids() seriesIDs { if e == nil {
扫帚的影子
2018-12-28
1K0
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档