分析一个 rate-limiter 漏桶算法的实现机制
服务治理的面试中常被问到,面对突发流量如何应对,通常都是回答限流或则降级。再追问一句限流算法有哪些,通常都是会说令牌桶或者漏桶算法。原理说说容易,但到 ...
Read more
理解 LSM 树: 用于多写场景下的数据库实现
本文翻译自 “What are sparse and dense indexes? (yetanotherdevblog.com)“ 日志结构的聚合树 (Log-Structured Merge-Tree) 是一种典型用来处理存在很重的写操作的时候的数据结构。任意写的操作被优化成了顺序写。LSM tree 是很多数据库 ...
Read more
Pytest 源码解读 [5] - pytest 是如何测试 pytest 的
什么叫用 pytest 来测试 pytest 呢?其实就是构建一个 mini 的 pytest 集成测试环境。我们要对一个测试框架做端到端的测试,最基本的就是写一些测试用例,然后用测试框架来执行它们看是&# ...
Read more
Blog 重生记
​ 19年算是博客最高产的一年了,有些东西其实之前一直想写但是因为各种原因没有去落地 。19年因为出差比较多,每次回到酒店没啥事情干,就会拿出电脑写一点,日积月 ...
Read more
Pytest 源码解读 [4] - pluggy "_HookCall" 调用链分析
我们知道pm.hook.xxx(**kwargs) ,最后实际是调用了绑定的 _HookCaller对象的__call__方法,那么今天我们来看一下这个方法的逻辑是什么样的,废话少说,先上代码, 我们先看下_HookCaller的构造函数 def __init__(self, name, ...
Read more
Pytest 源码解读 [3] - [pluggy] plugin 注册逻辑分析
今天我们再仔细分析一下 plugin 的注册逻辑,这里面包含了pluggy 框架中的一些核心设计元素。代码在 manager.py中的PluginManager的register方法 首先是先判断一下这个plugin是否已经注册过了, plugin_name = name or self.get_canonical_ ...
Read more
Pytest 源码解读 [2] - [pluggy] 核心设计理念和代码结构
代码结构pluggy 的核心代码非常简介,把 repo 克隆到本地目录后,它的核心代码就是在 src目录下的4个文件 _tracing.py - 调试作用,把 hookspec 和 plugin 调用链路的分析打印出来,一般不开启 callers.py - 主要٢ ...
Read more
Pytest 源码解读 [1] - [pluggy] 插件框架介绍
前言今天是祖国母亲的70华诞,早上在家里和媳妇一起看了令人激动的阅兵,真心为自己做位一个中国人而自豪。国庆的上海天气有点操蛋,受到台风的影响外面是大风大८ ...
Read more
Pytest 源码解读 [0] - Kickoff 篇
Pytest 源码解读之前定的目标,2019 年要完成 pytest 的源码解读,实在是因为之前太忙耽搁下来,眼看已经到了8月份,再不开始的话估计就要黄了 (之前信誓旦旦立的Flag不能轻易打破)。 ...
Read more
愚人节澳门游记
借着媳妇儿给老丈人庆祝生日的机会,我也有幸跟着去了一次澳门,也算完成了港澳台观光计划的最后一块拼图。在这里要感谢媳妇儿的辛劳,在繁忙的工作之余还要负责 ...
Read more