
系统设计
文章平均质量分 52
常见系统的设计:分布式限流器,高性能日志库,殿赞系统、短链系统
Android_chunhui
人不一定能什么都擅长,有自己的特点就好!
展开
-
召回系统介绍
Lucene的倒排索引由 Term Index -> TermDictionary -> Posting List 三层组成,倒排检索实际上就是通过分词Term查询到倒排拉链,然后对所有拉链进行合并。Term-> Posting List,可以直接通过B+树来完成(对Term创建索引,叶子结点存储拉链的磁盘位置+长度),但是数据量较大时Term索引无法完整放在内存里,因此Lucene加了一个TermIndex,FST有限状态机转换器(类似Trie树),为了进一步压缩空间,Trie树里不存储所有Term,只包原创 2024-12-17 23:58:21 · 165 阅读 · 0 评论 -
LruCache(本地cache)生产环境中遇到的问题及改进
读cache时使用零拷贝机制,对缓存数据增加原子变量的引用计数,每次获取数据时引用计数+1,释放数据时-1,计数为0且达到过期时间时从cache中清除,防止内存泄漏。问题:并发读写的LruCache使用锁保护,单机qs过高时锁竞争严重,很多时间消耗在锁等待上,导致耗时增长。问题:单机qps增加时请求摘要后端,耗时也会增加,因为超过了后端处理能力(最大qps,存在任务堆积)。原创 2024-12-16 15:23:09 · 287 阅读 · 0 评论