CAS 与 ABA问题简述

简要介绍CAS使用时伴随的ABA问题,希望对项目中潜在的风险规避有所帮助

注意:使用的锁实质意义上都是系统提供的原子操作原语而并非我们简化的pthread等lock

简要过程

CAS-ABA
CAS-ABA
CAS-ABA

参考如下

https://kukuruku.co/post/lock-free-data-structures-the-inside-memory-management-schemes

针对lock-free的应用特性需要小心处理,同时对状态变更的操作时需要同时关注ABA类似的问题

分布式系统基石之逻辑时钟

简要介绍分布式系统基准时间的参照内容

注意:真正实现分布式必须使用统一的参照序列(时钟),通常开发会简化使用系统时间

简要过程

Logic-clock
Logic-clock

除了基本的lamport时钟及vector时钟外,还有其它的演化版本

Dotted vector时钟, Version vector, Dotted version vector

总而言之,在分布式系统设计与开发中,事件的前后关系及序列不能被忽略,这是设计分布式系统中比较重要的内容
而我们通常开发时简化的使用并不严格的系统时钟作为参考

Memcache数据存储格式

简要介绍Memcach内存分配格式

简要过程

Memcach

Slab内存分配

是按照预告设定的大小(各class指向的slab的大小),将分配的内存分割成特定长度的数据块(item),以此解决内存碎片问题
另外,虽然item本身大小固定, 但存入的数据可能使item中部分空间被浪费,所以需要根据业务特点进行增长因子的调整以使
最大化利用内存空间