[linux奇技淫巧] 用户态线程coroutine
Coroutine即教科书上提到的“协程”,可以认为是用户态的线程,在它看来thread就是CPU。在一个thread内可以启动任意多个协程,它们放佛是在同一个“CPU”上运行的多个线程,而与线程的最大不同是,它并非”抢占式“的,因此它让出“CPU”的唯一方式是自己主动放弃执行,保存现场后跳转到其他
[C/C++奇技淫巧] 变长宏参数的个数
备忘一个宏的奇技淫巧,类似打印日志,RPC封装等无法使用C++0x变长模板参数的情况下,是个不错的选择#include<stdio.h>#include<stdlib.h>#include<stdint.h>#defineARG_COUNT_P1_(\_1,_2,
Oceanbase内存事务引擎
摘要OceanBase是一个分布式可扩展的关系数据库,采用基线静态数据与动态增量数据分离存储的架构设计.其内存事务引擎提供了动态数据的存储、写入和查询服务,用户写入的数据被存储在内存中称为Memtable的数据结构中.Memtable及其周边的事务管理结构共同组成了内存数据库引擎,来实现事务的ACI
Lease与最长宕机时间分析
先看简单的情况,单点rootserver负责updateserver选主,与ups保持lease,设lease时间为L,可以知道ups最长不可服务的情况是,rs刚刚授予upslease后,ups就意外宕机,rs要等lease超时后,才能重新选主,所以rs不宕机的情况下ups的最长不可服务时间就是L而