目录
背景简介
Gorilla是Facebook内部使用且已开源的时序数据库的软件原型,该时序库主要是针对互联网系统的基础监控,主要目的在于对海量时序数据进行快速入库,快速聚合查询,秒级响应前端呈现;优点在于节省了网络传输带宽和存储带宽。
但是,Gorilla的具体实现Beringei,考虑详尽,依赖众多,是一个大型的C++工程。菜鸟一枚,重构整个大的工程并不现实。在过去阅读源码的时间里面,有很多收获和感触,比如Facebook这样的大厂是如何来降低圈复杂度的,函数提取和数据表驱动;如何从细节处一点一点的抠性能的,STL;该如何实现线程安全,局部变量到加锁再到无锁编程。同时也很痛苦,文档匮乏,只能一点点地去摸索具体的数据结构;多重继承,即使在Source insight里面看,都不能完整地整理出接口的调用关系(捂脸,当时太水了,只会IDE调试不会调gdb调试);知道它的局限,却不知如何做功能的改进和性能的调优。自学校毕业后一年多来都在测试,终究是编码水平有限,应当多思