【笔记】高德技术2019合辑

本文分享了高德在系统性能提升、全链路压测平台TestPG的架构实践以及持续交付体系的实践经验。缓存技术探讨了定期删除策略,包括全量扫描和BTree索引方案,以及单层定时轮算法。全链路压测平台旨在检验系统的稳定性,通过模拟海量用户行为来评估系统承受能力。持续交付体系强调度量的重要性,以识别并改进研发效能瓶颈。
摘要由CSDN通过智能技术生成

系统性能提升利刃 缓存技术使用的实践与思考

定期删除
A. 方案一:全量数据扫描,依次遍历判断过期时间
B. 方案二:存储绝对过期时间+BTree 索引
d)单层定时轮算法

这样一种算法结构,将时间和空间巧妙地结合在了一起。新增元素的时间复杂度为 O(1),直接插入待批量过期的 slot 的上一个位置即可;获取待删除元素列表时间复杂度也是O(1),就是待批量过期的 slot 位置。流行框架 Netty、Kafka 都有定时轮的影子。
当然,单层定时轮只适用于固定时间过期的场景,如果需要管理不同过期时间的元素,那么可以参考"多层定时轮算法",其实就是模拟现实世界的时针、分针、秒针的概念,建立多个单层定时轮,采用进位和退位的思想来管理元素的过期时间。

7.保证业务数据一致性的策略
7.2.2 先操作(delete/update)缓存,再操作 DB
结论:先 delete 缓存,再操作 DB,能尽可能达到两步处理的原子性效果,即使流程中断对业务影响也是最小的。

对于本地缓存,如果缓存的数量是可估计的,且不会变化的,那么可使用 JDK 自带的HashMap 或 ConcurrentHashMap 来存储。
对于有按时间过期、自动刷新需求的本地缓存可以使用 Caffeine。
对于分布式缓存且要求有丰富数据结构的,推荐使用 Redis。

高德全链路压测平台 TestPG 的架构与实践

如何保障系统稳定性是几乎所有互联网企业都需要面对的问题。通常来讲,有五种手段来从理论上保障系统的稳定性,分别是:
 容量规划

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值