微信后端存储架构学习

学习了解一下微信的后端存储架构。使用微信的过程中就能发现微信不像QQ并没有漫游所有聊天信息,记录基本完全是在本地存储的,因此后台存储难度应该不大。 视频与ppt地址,演讲人微信基础平台组许家滔sunnyxu 主要介绍内部产品QuorumKV,具体关注kv系统的强一致性。 需求背景:微信全球数据布局分在上海,天津,深圳,香港,加拿大,乃至同城多园区分布等等 系统要求:分布式强一致性(不需要应用层再设 …

阅读全文

计算机性能分析需要知道记住的数字(2016年最新版)

计算机系统性能分析需要记住各个硬件或架构层次的大致性能指标,早先G家的大神jeff deans给过一个版本,但是存储方面发展近来越发的突飞猛进,因此就有了这个2016年新年最新版数据。           Latency Bandwidth Capacity / IOPS Register    (1)   0.25ns L1 cache    (1)   1ns L2 cache    (1) …

阅读全文

Zookeeper系统设计的优点

Zookeeper系统应用越来越广泛,在同一领域内开源软件方面基本处于垄断地位。(最近有个etcd借了微服务的东风而异军突起)但是实际用过的人都会觉得这个软件属于可用但又不那么好用的类型。本文是本人结合自己的实际使用经验与思考,同时参考真正业界大牛对这个系统的分析与评价进行的总结,归纳一下关于Zookeeper真正的使用需求,并思考这个系统有哪些设计与实现上的优点,从而能获得如此成功。 1.常见应 …

阅读全文

Xshell及Vim中文乱码解决

首先要保证Linux本地语言设置,主要是LC_ALL的设置(该设置会覆盖其他设置),可以使用locale查看。临时修改使用export LC_ALL=”zh_CN.UTF-8″,永久修改需要修改文件/etc/profile增加或修改export LC_ALL=zh_CN.UTF-8,修改完后无需重启。

其次要保证Xshell的连接编码使用utf-8而非默认编码。最后设置vim修改~/.vimrc增加set fileencodings=utf-8,gbk一行

为何线程互斥锁优于读写锁

尽管确实是在读多写少的情况下使用,但系统在测试中确实出现线程互斥锁优于读写锁的情况, muduo库中给出了多种互斥锁优于读写锁的原因: 1. 读锁加锁的开销不会比mutex小,因为它需要更新当前reader的数目,如果临界区很小,那么mutex往往更快。 实际上mutex是由整形变量及等待队列构成 2. 读锁可能提升为写锁,增大调试难度 实际上系统调试过程中的确出现过这样的问题,甚至导致死锁,当时 …

阅读全文