<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>NUMA - 标签 - Victor's Code Journey</title><link>http://www.victorchu.info/tags/numa/</link><description>NUMA - 标签 - Victor's Code Journey</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><managingEditor>victorchu0610@outlook.com (victorchutian)</managingEditor><webMaster>victorchu0610@outlook.com (victorchutian)</webMaster><lastBuildDate>Tue, 13 Oct 2026 17:20:00 +0800</lastBuildDate><atom:link href="http://www.victorchu.info/tags/numa/" rel="self" type="application/rss+xml"/><item><title>Morsel-Driven Parallelism：面向多核时代的 NUMA 感知查询执行框架</title><link>http://www.victorchu.info/posts/2026/10/62e9c33a/</link><pubDate>Tue, 13 Oct 2026 17:20:00 +0800</pubDate><author><name>victorchutian</name></author><guid>http://www.victorchu.info/posts/2026/10/62e9c33a/</guid><description><![CDATA[<div class="featured-image">
                <img src="/feature-images/database.webp" referrerpolicy="no-referrer">
            </div><blockquote>
  <p>原文：Viktor Leis, Peter Boncz, Alfons Kemper, Thomas Neumann. <strong>Morsel-Driven Parallelism: A NUMA-Aware Query Evaluation Framework for the Many-Core Age.</strong> SIGMOD 2014, pp. 743–754.</p>
<p>本文是原文的中文翻译，保留了原 paper 的章节编号、图、表与脚注。原文作者单位：Technische Universität München（慕尼黑工业大学）与 CWI（荷兰数学与计算机科学研究基础研究所）。</p>

</blockquote><h2 id="摘要" class="headerLink">
    <a href="#%e6%91%98%e8%a6%81" class="header-mark"></a>摘要</h2><p>随着现代计算机架构的演进，两个问题共同阻碍了并行查询执行的前沿方法：(i) 为了利用多核，所有查询工作必须均匀地分配到（很快会是）数百个线程上才能获得好的加速比，然而 (ii) 即使拥有准确的数据统计信息，由于现代乱序执行核心的复杂性，把工作<strong>均匀</strong>地划分也依然很困难。结果是，现有的&quot;plan-driven（计划驱动）&ldquo;并行方法撞上了负载均衡和上下文切换的瓶颈，因此不再具备可扩展性。多核架构面临的第三个问题是内存控制器的去中心化，这导致了非一致性内存访问（NUMA）。</p>
<p>对此，我们提出&quot;morsel-driven（小块驱动）&ldquo;查询执行框架，其中调度成为一个细粒度的、NUMA 感知的运行时任务。Morsel-driven 查询处理取输入数据的小片段（&ldquo;morsels&rdquo;），把它们调度给 worker 线程，由 worker 线程执行完整的算子流水线直到下一个 pipeline breaker。并行度不是被烘焙进计划里，而是在查询执行过程中可以弹性地改变，因此 dispatcher（调度器）能够对不同 morsel 的执行速度做出反应，也能根据工作负载中新到达的查询动态调整资源。此外，dispatcher 还感知 NUMA 本地 morsel 和算子状态的数据局部性，使得绝大部分执行都发生在 NUMA 本地内存上。我们在 TPC-H 和 SSB 基准上的评估显示出极高的绝对性能，以及在 32 核上超过 30 的平均加速比。</p>
<p><strong>关键词</strong>：Morsel-driven parallelism；NUMA-awareness</p>]]></description></item></channel></rss>