在我的职业生涯中,我一直致力于数据分析,BI工具等。我工作的大多数应用程序都是主要的只读应用程序。虽然我也曾在简单的CRUD应用程序上工作,但没有什么特别的交易。 作为一名软件工程师,我觉得如果我不知道如何设计高度交易的系统和数据库,如亚马逊,航空公司系统等的工作方式,我的学习中就会出现空白。 我想请社区人士就这个问题提出一些资源,书籍或简单项目。在教授必要的理论的同时可以采用实践方法的东西。我知道这是一个主观问题,但我可以将最有用的答案标记为绿色。 期待您的建议,并期待感谢。
答案 0 :(得分:9)
我将把答案分为四大类,即
这是该领域的基础 - 如何从0到相当不错,专业水平,但大多数在理论上。
Silberschatz书(Database System Concepts)在后面的章节中介绍了高级交易系统的内部工作原理,有一些资源等。
H-store paper - 描述了内存设计对高事务负载的好处。 H-store工作激发了VoltDB的发展。
Calvin paper - 快速分布式事务 用于分区数据库系统。提供非常好的背景,相关工作,并深入了解最新技术。
Hellerstein,Stonebraker和Hamilton的Architecture of a Database System 涵盖了很多方面。
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为extreme, encrypted transaction processing volumes他们的Z13系统Omid。
如果您有兴趣进行交易"大数据"风格,有很多选择,但HBase可能是最有趣的。 以下是HBase的一些建议阅读来源: 雅虎的Transactions over HBase建立在HBase之上 Twitter, now Apache Storm
另一个有趣的架构是 Apache Kafka。 和TPC用于流媒体和实时处理。
如果您想尝试一些事情,请查看link系列基准测试。有事务,ETL,BI和决策支持/混合负载分析基准。 这些都是以关系为导向的。
您可以使用这些基准测试并针对开源SMP(例如postgres,MySQL)和MPP数据库(例如Greenplum(a how MPP databases process queries)进行操作,以获得有关查询,性能,一些示例设置的精彩而全面的文档,和these)。
我为面向HBase的事务系统推荐了Akka in Action实用场景和架构。
对于最先进的消息和面向演员的交易系统,您可能需要购买一两本书。 对于Akka(作为Spark的内部),您可以使用here并在每章末尾进行练习。 培训课程parts 1也有一些练习。
对于流处理,以下是Apache Kafka(http://www.confluent.io/blog/stream-data-platform-2/和guide)的一些很好的练习。 Cloudera有一个很好的"入门" Getting Started with Storm
为了实践面向消息的最先进系统,我建议exercises,也许可以通过这些online reference。有很多真实拓扑。
对于好的,旧的JMS,您可以使用此Active MQ exercises进行练习,或者 使用这些emulator更加复杂。
如果你想用大型机折磨自己,试试这个{{3}}。 它模仿IBM的OS / 370-390。