作为一名软件工程师,我觉得如果我不知道如何设计高度交易系统和数据库,如亚马逊,航空公司系统等的工作方式,我的学习中就会出现空白.
我想请这里的社区就这个问题提出一些资源,书籍或简单项目.在教授必要的理论的同时可以采用实践方法的东西.我知道这是一个主观问题,但我可以将最有用的答案标记为绿色.
期待您的建议并感谢您的期待.
>理论和学术背景,
>热门消息来源,
>软件和工具,以及
>练习.
书籍和论文
这是该领域的基础 – 如何从0到相当不错,专业水平,但大多数在理论上.
介绍级别
Silberschatz书(Database System Concepts)在后面的章节中介绍了高级交易系统的内部工作原理,有一些资源等.
数据库特定
H-store paper-描述了内存设计对高事务负载的好处. H-store工作激发了VoltDB的发展.
Calvin paper – 快速分布式事务
用于分区数据库系统.提供非常好的背景,相关工作,以及对最新技术的洞察力.
Architecture of a Database System by Hellerstein,Stonebraker和Hamilton
涵盖了很多方面.
限制和边界
Great paper关于高可用性交易的优点和局限性.
CAP Theorem paper – 关于大规模系统的一致性,可用性和分区的设计权衡.很重要.
Parallel Processing and Parallel Databases
热门和当前来源
High Scalability是一个完美的博客,您正在寻找.
例如,这是一个great entry on the evolution of Amazon’s architecture.很接近你一直在寻找的东西.
Facebook,LinkedIn和Twitter工程博客是很棒的资源.我还会查看Google Research网站和他们的Google. Netflix也不错.
会议
VLDB和SIGMOD会议(包括SIGMOD blog)是研究人员/学术界和公司提供大多数最先进的数据系统的地方.
HPTS是一个有趣的会议/研讨会,有很好的议程和出版物.
我甚至会检查USENIX series的尖端系统.
案例研究架构
VoltDB是一个超级交易的内存数据库,由ACM研究员Mike Stonebraker和最现代数据库概念的“父亲”设计.
IBM大型机在高容量交易领域仍然占有非常突出的地位
处理.在写这个答案的时候,他们是touting他们的Z13系统extreme,encrypted transaction processing volumes.
如果您有兴趣进行“大数据”交易,那么有很多选择,但HBase可能是最有趣的.
以下是HBase的一些建议阅读来源:
雅虎的Omid建立在HBase之上
Transactions over HBase
另一个有趣的架构是Twitter,now Apache Storm.
和Apache Kafka用于流媒体和实时处理.
基准和练习
如果您想尝试一些事情,请查看TPC系列基准测试.有事务,ETL,BI和决策支持/混合负载分析基准.
这些是关系导向的.
您可以使用这些基准测试并针对开源SMP(例如postgres,MysqL)和MPP数据库(如Greenplum)(link,以及关于查询,性能,一些示例设置和how MPP databases process queries的完整文档)进行实践.
我为面向HBase的事务系统推荐了these实际场景和体系结构.
对于最先进的消息和面向演员的交易系统,您可能需要购买一两本书.
对于Akka(作为Spark的内部),您可以使用Akka in Action并在每章末尾进行练习.
here培训课程还有一些练习.
对于流处理,这里有Apache Kafka(parts 1和http://www.confluent.io/blog/stream-data-platform-2/)的一些很好的练习. Cloudera有一个很好的“入门”guide.
为了实现面向消息的最先进系统,我建议Getting Started with Storm,也许可以通过这些exercises.有许多真实拓扑结构.
对于好的旧JMS,您可以使用此online reference进行练习,或
这些Active MQ exercises变得更加复杂.
如果你想用大型机折磨自己,试试这个emulator.它模仿IBM的OS / 370-390.