专栏名称: 程序人生
十年漫漫程序人生,打过各种杂,也做过让我骄傲的软件;管理过数十人的团队,还带领一班兄弟姐妹创过业,目前在硅谷一家创业公司担任 VP。关注程序人生,了解程序猿,学做程序猿,做好程序猿,让我们的程序人生精彩满满。
目录
今天看啥  ›  专栏  ›  程序人生

从微秒到纳秒:关于性能的奇妙旅程

程序人生  · 公众号  · 程序员  · 2021-03-08 08:04
    

文章预览

在上文:《 胖客户端,瘦服务器 》中,我们描述了一个从客户端收集事件,排序和存储事件的架构: 在这其中,比较有挑战的工作是如何构建一个足够高性能的带索引的 append only log。之前我拍脑门设计了这样的结构: 为了让磁盘的读写不成为瓶颈,我没有尝试建立缓冲区写文件的道路,而是直接使用了 mmap [1]。mmap 有它安全上的风险,但如果是本文描述的记录和存储事件的场景,安全问题还好。mmap 最让人心动的是,如果日志的索引或者日志本身既有读者又有写者,且它们分别在不同的进程,两者其实可以共享同一片物理内存(如果使用 MAP_SHARED ),这样即节省了内存开销,读者还可以直接获得写者的更新。不过要注意一点:如果写者扩展了映射的内存区域(比如 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览