CPU Profiling: What, How, and When
2025年3月10日 · 2862 字 · 6 分钟 · Performance Profiling
What: 什么是CPU Profiling 一种程序CPU性能分析的技术。通过收集程序执行时的详细数据(例如函数调用频率、耗时、调用栈等),帮助开发者识别性能瓶颈,优化代码效率。一般用于性能分析,根因诊断的场景。
2025年3月10日 · 2862 字 · 6 分钟 · Performance Profiling
What: 什么是CPU Profiling 一种程序CPU性能分析的技术。通过收集程序执行时的详细数据(例如函数调用频率、耗时、调用栈等),帮助开发者识别性能瓶颈,优化代码效率。一般用于性能分析,根因诊断的场景。
2025年2月8日 · 1373 字 · 3 分钟 · LevelDB MVCC Storage
LevelDB通过 MVCC 实现了 sstable 读写并发以及 Snapshot Read 的功能,让我们来看看它是怎么做到的。
2024年12月31日 · 5950 字 · 12 分钟 · Prometheus TSDB Storage
最近晋升,顺便总结一些以前的工作。工作里大规模数据库可观测系统占了很大一部分,不过这个和云原生监控系统Prometheus还是很不一样的。现在来学习一下开源监控的标准系统。
2024年2月19日 · 1166 字 · 3 分钟 · Borg Kubernetes Cluster Management Paper Reading
Borg 是一个集群管理系统,类似闭源的k8s。 通过准入控制、高效的任务装箱、超售、机器共享、以及进程级别的性能隔离,实现了高利用率。 为高可用应用提供了可以减少故障恢复时间的运行时特性,以及降低关联故障概率的调度策略。 提供声明式的作业描述语言、域名服务集成、实时作业监控、分析和模拟系统行为的工具。简化用户的使用。 文章本意在介绍系统设计的同时,讲述Google在背后的经验总结。但本文主要关心 …
2023年9月28日 · 2513 字 · 6 分钟 · Distributed System Transaction Paper Reading
好久没学习了,学点想学的。本次内容是分布式事务Percolator, 不翻译论文,没有算法细节,只记录自己的理解。
2023年8月1日 · 1159 字 · 3 分钟 · Distributed System Database Cloud-Native MIT6.824
这篇文章介绍了AWS的数据库产品Aurora的设计考虑,包括存算分离、一写多读、基于Quorum的NRW一致性协议等。同时,文章也提到了PolarDB参考Aurora进行设计,但在网络瓶颈和系统调用方面有所不同。 Aurora是AWS提供的一种数据库产品,主要面向OLTP的业务场景。 设计上,我觉得有这些值得参考的地方: Aurora设计的前提是,在数据库上云之后,得益于云基础设施的发展,数据库最 …
2023年2月8日 · 740 字 · 2 分钟 · Distributed System MIT6.824 Chain Replication
只是简单写写,有一些具体一点的设计建议去读一下原文。 简介 简单来讲,CR论文介绍了一种用于存储服务的满足线性一致性的复制状态机算法。它通过链式复制来提高算法的吞吐量,通过多副本来保证服务的可用性。
2023年1月3日 · 1455 字 · 3 分钟 · Distributed System MIT6.824 ZooKeeper
本文主要讲了ZooKeeper系统在设计和实践上的考量,如wait-free和lock,一致性的选择,系统提供的API以及特定语义上的抉择,这样的trade-off是本文的最大启发。
2022年5月10日 · 1385 字 · 3 分钟 · LevelDB LSM Storage
LevelDB源码阅读笔记第二章,有关LevelDB的Write流程。本文并不是step by step的源码阅读教程,而是仅仅作为我的学习笔记,简单记录我的问题与思考。
2022年4月15日 · 2336 字 · 5 分钟 · Raft Distributed System MIT6.824
之前因为想试一试GSOC,所以看了看Casbin-Mesh的代码,这是基于Raft的一个分布式Casbin应用。这个MIT6.824里的RaftKV很类似,所以正好借此机会写下这篇博客。
2022年4月9日 · 3152 字 · 7 分钟 · LevelDB LSM Storage
之前就听LevelDB是所有搞存储的人都会读的一个代码库。最近正好忙完了搞完了毕设的代码,稍微闲了一些,于是也打算看看LevelDB的源码。
2022年2月21日 · 1988 字 · 4 分钟 · Paper Reading Consensus Distributed System MIT6.824
这个寒假可算把搁置许久的Lab02给做完了。之前一直被卡在Test 2B的一个case里,寒假时候重新看看大佬们的实现思路,可算是完成了所有内容,于是简单记录一下。
2021年11月21日 · 1306 字 · 3 分钟 · Data Structure SkipList
之前闲来无事,打算尝试写一个简单的LSM存储引擎的模型。简单实现了一下SkipList和BloomFilter,BitSet之后,因为一些工作上紧急的需求以及下班后只想躺平摸鱼之类的原因,暂时搁置了下来。如今想起已经有些忘记了,于是姑且记录一下。
2021年10月6日 · 3596 字 · 8 分钟 · DFS Paper Reading Distributed System
组内的主要项目便是一种提供POXIS文件系统语义的DFS,其中解决losf(lots of small files)的思路就是对小文件单独处理。里面的思想来源应该就是Haystack。 于是大致阅读了一下这篇论文,写下学习笔记。 笔记依旧不深究具体细节,仅仅记录对问题的思考以及设计的思路。
2021年9月16日 · 6733 字 · 14 分钟 · Paper Reading MIT6.824 DFS Distributed System
之前在网上找到了别人翻译的BigTable论文,就顺手保存了下来,但一直没开始看。最近发现BigTable和目前组内做的项目有很多设计上相似的地方,于是用周末的时间快速的阅读了一遍。
2021年9月9日 · 5208 字 · 11 分钟 · GFS MIT6.824 Paper Reading
之前对GFS的理解并不能支持我写出满意的内容,于是一直搁置。最近刚转岗某司存储部门实习,回想起此文,于是在无所事事之时写下这个笔记。
2021年8月15日 · 3084 字 · 7 分钟 · OS Linux Network IO
先从epoll说起。 epoll是Linux内核的可拓展IO事件通知机制,设计的目的是取代select和poll,是为了处理大量文件描述符而改进的poll,支持打开文件描述符上限是系统最大文件打开数目,性能优异。
2021年5月2日 · 980 字 · 2 分钟 · CPU Cache Performance
起因只是因为面试时被问到的一个问题:什么是CPU伪共享? CPU缓存 让我们先从CPU缓存讲起。
2021年3月21日 · 890 字 · 2 分钟 · Database MySQL Index
数据库索引,是DBMS中一个排序的数据结构,以协助快速查询、更新数据库中数据。一般来说,用于构建索引的数据结构有B树,B+树,哈希表等。
2021年2月21日 · 1658 字 · 4 分钟 · Network HTTPS HTTP
HTTPS(HTTP over SSL)是为了解决HTTP中可能存在的信息窃听和身份伪装等安全问题而诞生的HTTP加密版本,通常使用 SSL 或者 TLS 来加密客户端和服务器之间所有的通信
2021年1月22日 · 2985 字 · 6 分钟 · MIT6.824 Distributed System Paper Reading
大三上学期课程有点硬核,一直没时间去继续6.824的学习,于是学习进度一直停在了Lab 1。寒假时间稍微充裕了点,于是打算继续推进。之后的每一个论文或者实验都会记录在文章中。
2020年11月10日 · 1697 字 · 4 分钟 · SQL Parsing Database Go
一直想去完成pingcap的tanlent Plan里面的tinySql路径,但一直没有开始。最近论坛上发现了pingcap创始人的tanlent plan入坑贴,下面的学长提示了这个从零实现数据库博客入门比较合适,于是写下这个博客。
2020年5月6日 · 1684 字 · 4 分钟 · Machine Learning NLP
基于朴素贝叶斯的中文垃圾电子邮件分类 训练数据和测试数据 本次主要使用了github上的开源数据 数据处理 首先使用正则表达式对训练集中的中文邮件的内容进行过滤,去除其中中文之外的其他字符,再将剩下的内容使用jieba进行分词,过滤掉中文停用字表中的内容。将垃圾邮件以及正常邮件的处理结果分别存放。