摘要: 数据与进程对等的处理场景:某服务需要支持海量用户,在一台物理机器上运行了多个进程/线程。对于数据应该如何处理以保证安全快速的访问数据呢?解决方案:“分”分号段分进程分端口分库分表单一生产者与单一消费者场景:网络接入进程与逻辑处理进程通过共享内存通讯。我们要如何进行设计?通常的实现:读写加锁示例:无锁... 阅读全文
posted @ 2015-09-23 21:15 三丰SanFeng 阅读(660) 评论(0) 推荐(0) 编辑
摘要: seqlock(顺序锁)用于能够区分读与写的场合,并且是读操作很多、写操作很少,写操作的优先权大于读操作。seqlock的实现思路是,用一个递增的整型数表示sequence。写操作进入临界区时,sequence++;退出临界区时,sequence再++。写操作还需要获得一个锁(比如mutex),这个... 阅读全文
posted @ 2015-09-23 19:49 三丰SanFeng 阅读(1833) 评论(0) 推荐(1) 编辑
摘要: RCU(Read-Copy Update)RCU就是指读-拷贝修改,它是基于其原理命名的。对于被RCU保护的共享数据结构,读操作不需要获得任何锁就可以访问,但写操作在访问它时首先拷贝一个副本,然后对副本进行修改,最后在适当的时机把指向原来数据的指针重新指向新的被修改的数据。这个时机就是所有引用该数据... 阅读全文
posted @ 2015-09-23 19:21 三丰SanFeng 阅读(1653) 评论(0) 推荐(0) 编辑