非常经典的文章了,全面系统的介绍了计算机如何使用内存、缓存,内存控制器的原理等。适合各个层次的程序员研读。共分7大部分,有一部分被翻译成了中文:每个程序员都应该了解的内存知识【第一部分】,百度文库上面有整理好的第一部分的PDF:下载。英文汇总版:What every programmer should know about memory。
分类目录: 架构设计
[转自林仕鼎]系统架构领域的一些学习材料
系统架构是一个工程和研究相结合的领域,既注重实践又依赖理论指导,入门容易但精通很难,有时候还要讲点悟性,很具有“伪科学”的特征。要在此领域进阶,除了要不断设计并搭建实际系统,也要注意方法论和设计理念的学习和提炼。
经常有同学询问如何学习,特贴一篇学习材料,供大家参考。09年时写的,在系统领域浩如烟海的文献中提取了一些我认为值得研究和学习的项目,没包括近几年出现的一些工作,也不够全面。不过,其实也足够了,看paper是一个从少到多再到少的过程。对问题本质、背景和发展历史有大致了解,再辅以hands-on的实践(长期的真正的实践),足以摸到本领域的门径。
Google Spanner 全球分布式数据库
原文地址:Spanner: Google’s Globally-Distributed Database
中文翻译版下载:Google Spanner 中文版
PPT演示文档:spanner-osdi2012.pptx
讲解视频:
构建高可用和弹性伸缩的KV存储系统
作为常用的NoSQL存储系统之一,KV存储系统受到了开发者的关注。但常见的KV存储系统并不具备自动容灾和在线扩容功能,这给系统运营造成了不少麻烦。本文提出了一种构建高可用和自动弹性伸缩的KV存储系统的方法。
常见KV存储系统
与互联网时代不同,社交时代和移动互联网时代的互联网产品,拥有海量的读写请求和爆发式增长的数据和用户。传统关系型数据库的性能、可扩展性和数据结构的灵活性逐渐成为瓶颈。NoSQL型数据库在近些年风生水起,越来越受到开发者的关注。NoSQL无须遵循关系型数据库的ACID理论,简单灵活的数据结构和操作使其具备与生俱来的高性能和可扩展性。常见的NoSQL产品有KV(key-value)型、文档型、列存储型、图存储型、对象存储型、XML数据库型等,图1为各种类型NoSQL数据库的代表产品和介绍。