
方法沉淀
文章平均质量分 91
WanderingScorpion
DoIT.
展开
-
高性能kv存储设计 之 cacheline对齐
最近在设计高读性能的kv存储,为了尽可能保证cache的命中,应尽可能将"同时读取"的数据放到一起,以此来保证数据大概率同时出现在高速cache中。当前大部分计算机的cacheline size为64字节对齐,即当读取地址0x403140(64的整数倍 + 0)的时候,会将0x403140 ~ 0x40317F(64的整数倍 + 63)中的内容都加载进缓存。以此为参考依据来设计数据结构的大小可以加强数据访问速率,在极端场景下获得较大收益。测试程序#include <stdio.h>#inc原创 2020-11-24 20:00:10 · 1078 阅读 · 0 评论 -
超大规模检索中的索引设计
一 问题背景1.1 业务背景精准广告场景中,人群定向的常用方法是:根据各种不同的规则,将每一个用户(User)打上丰富的标签。与此同时,广告主(Member)在根据规则圈选投放人群时,系统也会将广告(Ad)打上各种的标签。当一个Ad和一个User被打上同一个标签(Tag)时,就表示该Ad圈定了这个User,即该Ad会参与对该User的展现竞价。本次优化的难点出现在一个特定业务场景下,我们需...原创 2019-07-27 21:52:34 · 660 阅读 · 0 评论 -
pageblock_pfn_to_page性能热点问题排查
一 问题背景在一次广告检索内核的迁移过程中,偶然发现迁移新内核后的检索服务在一定条件下会触发rt毛刺问题。rt毛刺现象出现的条件如下,任何一条均可复现:使用超高压力将服务压至崩溃状态,然后将压力恢复正常压力状态,毛刺现象复现使用正常压力长时间对服务加压,持续30分钟左右之后,毛刺现象复现通过性能埋点监控发现,在rt毛刺点,rt的增长主要集中在多线程并行使用内存池申请内存的代码部分;通过p...原创 2018-12-17 14:25:37 · 980 阅读 · 1 评论 -
致命的巧合:一次结算异常排查总结
一 异常现象.1、2018-04-02 16:00左右,实验田的两台机器手动部署基线、拉取索引、追消息并接流。 2、第二天接到大量广告主投诉,投诉内容是广告的结算价格远大于自己的出价 3、通过pv日志查询,发现存在大量pv的orgprice值(广告主出价)被错误地写成score值(广告海选质量分),而score在数值上通常是orgprice的几百倍 4、所有出问题的流量(后简称异常流量)...原创 2019-07-27 20:15:36 · 158 阅读 · 1 评论 -
全量数据接入——设计方案
全量数据接入的过程本质上是数据集群件复杂的事件同步与时间相应的过程,涉及到触发、反馈、反馈状态检查、分批等。因此,需要有一个事件控制组件作为基础。 一、事件控制组件 1.1 使用zk同步数据 zk路径规划: ${zk_base}/${event_group}/${date}/${event_name}/${event_version}.info 说明:${event_version}.i...原创 2018-03-31 01:18:44 · 6176 阅读 · 0 评论