gpt4 book ai didi

database-design - 如何学习设计高度事务性的系统?

转载 作者:行者123 更新时间:2023-12-04 00:24:05 25 4
gpt4 key购买 nike

在我的职业生涯中,我主要从事数据分析、BI 工具等方面的工作。我工作的大多数应用程序主要是只读应用程序。虽然我也研究过简单的 CRUD 应用程序,但没有什么特别的事务性。
作为一名软件工程师,如果我不知道如何设计高度事务性的系统和数据库,比如亚马逊、航空公司系统等的工作方式,我会觉得我的学习存在空白。
我想请这里的社区推荐一些关于这个主题的资源、书籍或简单的项目。可以在教授必要理论的同时采取动手方法的东西。我知道这是一个主观问题,但我可以将最有用的答案标记为绿色。
期待您的建议并感谢您的期待。

最佳答案

我将把答案分为四大类,即

  • 理论和学术背景,
  • 热门来源,
  • 软件和工具,以及
  • 练习。

  • 书籍和论文

    这是该领域的基础 - 如何从 0 到相当不错的专业水平,但主要是理论上。

    介绍级别

    Transaction Processing: Concepts and Techniques (The Morgan Kaufmann Series in Data Management Systems)通过吉姆格雷

    Silberschatz 书 ( Database System Concepts ) 在后面的章节中介绍了高级事务系统的内部工作原理、一些资源等。

    数据库特定

    H-store paper - 描述了内存设计对于高事务负载的好处。 H-store 的工作激发了 VoltDB 的发展。

    Calvin paper - 快速分布式交易
    用于分区数据库系统。提供了非常好的背景、相关工作以及对最新技术的深入了解。

    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 也不错。

    session

    VLDB和 SIGMOD session (包括 SIGMOD blog)是研究人员/学术界和公司展示大多数最先进数据系统的地方。

    HPTS是一个有趣的 session /研讨会,有很好的议程和出版物。

    我什至会检查 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 的出色而全面的文档) .

    我推荐了 these面向 HBase 的事务系统的实际场景和架构。

    对于最先进的消息和面向参与者的事务系统,您可能需要购买一两本书。
    对于 Akka(作为 Spark 的内部),您可能可以使用 Akka in Action并完成每章末尾的练习。
    还有一些来自培训类的练习 here .

    对于流处理,这里有一些很好的 Apache Kafka 练习( parts 1http://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。

    关于database-design - 如何学习设计高度事务性的系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34510844/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com