Database design 如何学习设计高度事务性的系统?
Database design 如何学习设计高度事务性的系统?,database-design,transactions,distributed,high-availability,distributed-transactions,Database Design,Transactions,Distributed,High Availability,Distributed Transactions,在我的职业生涯中,我主要从事数据分析、BI工具等方面的工作。我处理的大多数应用程序主要是只读应用程序。虽然我也处理过简单的CRUD应用程序,但没有什么特别的事务性。
作为一名软件工程师,如果我不知道如何设计高度事务性的系统和数据库,比如亚马逊、航空公司系统等,我觉得我的学习是一个空白。
我想请这里的社区就这个主题提供一些资源、书籍或简单的项目。在教授必要的理论时,可以采取实际操作的方法。我知道这是一个主观问题,但我可以把最有用的答案标为绿色。
期待您的建议并提前感谢。我将把答案分为四大类,即
理
在我的职业生涯中,我主要从事数据分析、BI工具等方面的工作。我处理的大多数应用程序主要是只读应用程序。虽然我也处理过简单的CRUD应用程序,但没有什么特别的事务性。
作为一名软件工程师,如果我不知道如何设计高度事务性的系统和数据库,比如亚马逊、航空公司系统等,我觉得我的学习是一个空白。
我想请这里的社区就这个主题提供一些资源、书籍或简单的项目。在教授必要的理论时,可以采取实际操作的方法。我知道这是一个主观问题,但我可以把最有用的答案标为绿色。
期待您的建议并提前感谢。我将把答案分为四大类,即
理论和学术背景
民间消息来源,
软件和工具,以及
练习
书报
这是该领域的基础——如何从0到相当不错的专业水平,但主要是理论水平
介绍级
吉姆·格雷
后面几章中的Silberschatz book()介绍了高级事务系统的内部工作,并提供了一些资源等
数据库特定
-介绍内存设计对高事务负载的好处。H-store的工作激发了VoltDB的发展
-快速分布式事务
用于分区数据库系统。提供了一个非常好的背景,相关的工作,并深入了解了最先进的技术
由Hellerstein、Stonebraker和Hamilton创作
涉及很多方面
限制和界限
关于高可用事务的优点和局限性
-关于大规模系统的一致性、可用性和分区的设计权衡非常重要。
流行和当前来源
博客
是一个完美的博客,你正在寻找什么。
例如,这里有一个非常接近你一直在寻找的东西
,和工程博客是很好的资源。我也会检查网站和他们的Google+。Netflix也不错
会议
SIGMOD会议(包括SIGMOD)是研究人员/学术界和企业展示最先进数据系统的地方
这是一个有趣的会议/研讨会,有很好的议程和出版物
我甚至会检查尖端系统的东西
案例研究体系结构
是一个超级事务内存数据库,由ACM研究员迈克·斯通布雷克(Mike Stonebraker)设计,他是最现代数据库概念的“父亲”
IBM大型机在高容量事务处理领域仍然占有非常突出的地位
处理。在撰写本答覆时,他们的Z13系统用于
如果您对“大数据”风格的交易感兴趣,有很多选择,但HBase可能是最有趣的选择。
以下是一些建议的HBase阅读资料:
雅虎建立在HBase之上
另一个有趣的架构是
用于流式处理和实时处理
基准和练习
如果您想尝试一些东西,请查看基准系列。有事务、ETL、BI和决策支持/混合负载分析基准。
这些是面向关系的
您可以使用这些基准测试,并针对开源SMP(如postgres、MySQL)和MPP数据库(如Greenplum)进行实践(这是一个关于查询、性能、一些示例设置和性能的非常全面的文档)
我推荐了面向HBase的事务系统的实用场景和体系结构
对于最先进的消息和面向参与者的事务系统,您可能需要买一两本书。
对于Akka(作为一种内在的火花),你可以在每章末尾使用并完成练习。
还有一些来自培训课程的练习
对于流处理,这里有一些使用ApacheKafka(和)的好练习。Cloudera具有良好的“入门”功能
为了实践面向消息的最先进的系统,我会建议,也许也会经历这些。有许多真正的拓扑特征
对于好的老JMS,您可以将其用于实践,或者
用这些更复杂
如果你想用主机折磨自己,试试这个。
它模拟了IBM的OS/370-390。很遗憾,这些问题在这里是离题的。我理解,但这可能是一个重要的问题。当然,这很重要,如果不是对我,而是对你。但正如你所说,这是主观的,需要寻找场外资源。这两个都是投票结束的理由。库马尔-我认为这是一个重要而有价值的问题,我将尽可能完整地回答它。只是等待更多的答案!这是个好答案,爱德蒙。谢谢你的回复。它有非常好的用例和文献。然而,我仍然会问-你认为什么是“锻炼”这个的好方法?库马尔-你指的是纯粹的练习练习还是真实的案例研究?是的,无论哪种可能。如果两者都有,那就更好了。Kumar-我添加了一些真正优秀的源代码,涵盖了整个领域——MPPs、HBase(Hadoop的事务性快速R/W系统)、面向消息的中间件、actors中间件、流媒体甚至大型机。希望这能帮助你和其他对这个话题感兴趣的人。