代码之家  ›  专栏  ›  技术社区  ›  HotTester

什么是大规模并行处理(MPP)?

  •  1
  • HotTester  · 技术社区  · 16 年前

    自从微软推出名为“Madison”的SQL Server版本代码以来,大规模并行处理(MPP)就开始出现了。它到底是什么?SQL Server将如何从中受益?

    此外,大规模并行处理(MPP)与并行计算有关吗?

    3 回复  |  直到 15 年前
        1
  •  1
  •   Cade Roux    16 年前

    这基本上就是Teradata使用的策略。您有专用的服务器处理、内存和存储,并且数据跨处理单元进行分区。每个单元都有自己的内置冗余,因为数据不存储在任何其他地方-如果您丢失了一个放大器,您将丢失数据。

    在Teradata中,实现分区的魔力是主索引。这决定了数据使用哪个AMP。查询被分发到所有AMP,它们返回数据,然后进行组合。当存在歪斜并且数据需要从它所在的AMP重新分配到需要它进行处理的AMP时,性能会受到影响。

    因此,进程间通信系统、查询处理器和哈希系统是这类系统的关键组成部分。

    在许多情况下,当数据共享非常相似的主要索引(数百万客户、数百万客户发票、数百万客户单击流事件)时,大规模并行方法可以很好地工作。这对于一大类问题来说是很好的,因为事情通常是由客户、日期或类似的东西划分的。

    当您处理类似Kimball样式的星型模式或试图在单个查询中导航非常复杂的3nf模型时,它会失败。在这些情况下,您最好构建中间临时表或易失表,并指定主索引,以使数据在AMPS上分布良好,并在下一个联接中匹配要联接的数据。或者改造你的仓库。

    在MPP系统中,增加容量涉及同时增加内存、存储和处理,这提供了相当好的可扩展性。

        2
  •  1
  •   SQLMenace    16 年前

    它能够将工作卸载到不同的计算机上,而不仅仅是卸载到同一台计算机上的另一个核心上,因此,如果您有4个服务器,每个服务器都有64个核心,那么您可以分为256个核心。

    而iirc你不能自己安装,你需要购买一个预先配置的系统,你基本上得到的是一个计算机机架

        3
  •  1
  •   Mitch Wheat    16 年前

    这个 wiki entry 将大规模并行计算定义为:

    大规模并行处理(MPP)是一种 用于计算机体系结构的术语 指一个计算机系统 独立算术单位或整数 并行运行的微处理器。 “大量”一词的意思是如果 不是几千个这样的单位。早期 这样一个系统的例子是 分布式阵列处理器 固特异MPP,连接机, 以及超级计算机。

    通过并行执行某些查询步骤,SQL Server将像以前一样受益。但是只有相对较小的一类算法可以利用大规模并行计算;随着更多核心的添加,速度不会线性增加。一个很好的例子是,可以在哪里使用它,在哪里表被划分成单独的可搜索的孤岛,例如划分日期范围。

    推荐文章