
<!DOCTYPE html>
<html lang="en" dir=ZgotmplZ>

<head>
  


<link rel="stylesheet" href="/bootstrap/css/bootstrap.min.css">
<script src="/bootstrap/js/bootstrap.bundle.min.js"></script>
<link rel="stylesheet" type="text/css" href="/font-awesome/css/font-awesome.min.css">
<script src="/js/anchor.min.js"></script>
<script src="/js/flink.js"></script>
<link rel="canonical" href="https://flink.apache.org/2022/05/30/improving-speed-and-stability-of-checkpointing-with-generic-log-based-incremental-checkpoints/">

  <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Introduction # One of the most important characteristics of stream processing systems is end-to-end latency, i.e. the time it takes for the results of processing an input record to reach the outputs. In the case of Flink, end-to-end latency mostly depends on the checkpointing mechanism, because processing results should only become visible after the state of the stream is persisted to non-volatile storage (this is assuming exactly-once mode; in other modes, results can be published immediately).">
<meta name="theme-color" content="#FFFFFF"><meta property="og:title" content="Improving speed and stability of checkpointing with generic log-based incremental checkpoints" />
<meta property="og:description" content="Introduction # One of the most important characteristics of stream processing systems is end-to-end latency, i.e. the time it takes for the results of processing an input record to reach the outputs. In the case of Flink, end-to-end latency mostly depends on the checkpointing mechanism, because processing results should only become visible after the state of the stream is persisted to non-volatile storage (this is assuming exactly-once mode; in other modes, results can be published immediately)." />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://flink.apache.org/2022/05/30/improving-speed-and-stability-of-checkpointing-with-generic-log-based-incremental-checkpoints/" /><meta property="article:section" content="posts" />
<meta property="article:published_time" content="2022-05-30T00:00:00+00:00" />
<meta property="article:modified_time" content="2022-05-30T00:00:00+00:00" />
<title>Improving speed and stability of checkpointing with generic log-based incremental checkpoints | Apache Flink</title>
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
<script defer src="/en.search.min.2698f0d1b683dae4d6cb071668b310a55ebcf1c48d11410a015a51d90105b53e.js" integrity="sha256-Jpjw0baD2uTWywcWaLMQpV688cSNEUEKAVpR2QEFtT4="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
-->

  <meta name="generator" content="Hugo 0.124.1">

    
    <script>
      var _paq = window._paq = window._paq || [];
       
       
      _paq.push(['disableCookies']);
       
      _paq.push(["setDomains", ["*.flink.apache.org","*.nightlies.apache.org/flink"]]);
      _paq.push(['trackPageView']);
      _paq.push(['enableLinkTracking']);
      (function() {
        var u="//analytics.apache.org/";
        _paq.push(['setTrackerUrl', u+'matomo.php']);
        _paq.push(['setSiteId', '1']);
        var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
        g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
      })();
    </script>
    
</head>

<body dir=ZgotmplZ>
  


<header>
  <nav class="navbar navbar-expand-xl">
    <div class="container-fluid">
      <a class="navbar-brand" href="/">
        <img src="/img/logo/png/100/flink_squirrel_100_color.png" alt="Apache Flink" height="47" width="47" class="d-inline-block align-text-middle">
        <span>Apache Flink</span>
      </a>
      <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
          <i class="fa fa-bars navbar-toggler-icon"></i>
      </button>
      <div class="collapse navbar-collapse" id="navbarSupportedContent">
        <ul class="navbar-nav">
          





    
      
  
    <li class="nav-item dropdown">
      <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">About</a>
      <ul class="dropdown-menu">
        
          <li>
            
  
    <a class="dropdown-item" href="/what-is-flink/flink-architecture/">Architecture</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/what-is-flink/flink-applications/">Applications</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/what-is-flink/flink-operations/">Operations</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/what-is-flink/use-cases/">Use Cases</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/what-is-flink/powered-by/">Powered By</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/what-is-flink/roadmap/">Roadmap</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/what-is-flink/community/">Community & Project Info</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/what-is-flink/security/">Security</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/what-is-flink/special-thanks/">Special Thanks</a>
  

          </li>
        
      </ul>
    </li>
  

    
      
  
    <li class="nav-item dropdown">
      <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">Getting Started</a>
      <ul class="dropdown-menu">
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-docs-stable/docs/try-flink/local_installation/">With Flink<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-stable/docs/try-flink-kubernetes-operator/quick-start/">With Flink Kubernetes Operator<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-cdc-docs-stable/docs/get-started/introduction/">With Flink CDC<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-ml-docs-stable/docs/try-flink-ml/quick-start/">With Flink ML<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-statefun-docs-stable/getting-started/project-setup.html">With Flink Stateful Functions<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-docs-stable/docs/learn-flink/overview/">Training Course<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
      </ul>
    </li>
  

    
      
  
    <li class="nav-item dropdown">
      <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">Documentation</a>
      <ul class="dropdown-menu">
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-docs-stable/">Flink 1.19 (stable)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-docs-master/">Flink Master (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-stable/">Kubernetes Operator 1.8 (latest)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-main">Kubernetes Operator Main (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-cdc-docs-stable">CDC 3.0 (stable)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-cdc-docs-master">CDC Master (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-ml-docs-stable/">ML 2.3 (stable)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-ml-docs-master">ML Master (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-statefun-docs-stable/">Stateful Functions 3.3 (stable)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-statefun-docs-master">Stateful Functions Master (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
    </a>
  

          </li>
        
      </ul>
    </li>
  

    
      
  
    <li class="nav-item dropdown">
      <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">How to Contribute</a>
      <ul class="dropdown-menu">
        
          <li>
            
  
    <a class="dropdown-item" href="/how-to-contribute/overview/">Overview</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/how-to-contribute/contribute-code/">Contribute Code</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/how-to-contribute/reviewing-prs/">Review Pull Requests</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/how-to-contribute/code-style-and-quality-preamble/">Code Style and Quality Guide</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/how-to-contribute/contribute-documentation/">Contribute Documentation</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/how-to-contribute/documentation-style-guide/">Documentation Style Guide</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/how-to-contribute/improve-website/">Contribute to the Website</a>
  

          </li>
        
          <li>
            
  
    <a class="dropdown-item" href="/how-to-contribute/getting-help/">Getting Help</a>
  

          </li>
        
      </ul>
    </li>
  

    


    
      
  
    <li class="nav-item">
      
  
    <a class="nav-link" href="/posts/">Flink Blog</a>
  

    </li>
  

    
      
  
    <li class="nav-item">
      
  
    <a class="nav-link" href="/downloads/">Downloads</a>
  

    </li>
  

    


    









        </ul>
        <div class="book-search">
          <div class="book-search-spinner hidden">
            <i class="fa fa-refresh fa-spin"></i>
          </div>
          <form class="search-bar d-flex" onsubmit="return false;"su>
            <input type="text" id="book-search-input" placeholder="Search" aria-label="Search" maxlength="64" data-hotkeys="s/">
            <i class="fa fa-search search"></i>
            <i class="fa fa-circle-o-notch fa-spin spinner"></i>
          </form>
          <div class="book-search-spinner hidden"></div>
          <ul id="book-search-results"></ul>
        </div>
      </div>
    </div>
  </nav>
  <div class="navbar-clearfix"></div>
</header>
 
  
      <main class="flex">
        <section class="container book-page">
          
<article class="markdown">
    <h1>
        <a href="/2022/05/30/improving-speed-and-stability-of-checkpointing-with-generic-log-based-incremental-checkpoints/">Improving speed and stability of checkpointing with generic log-based incremental checkpoints</a>
    </h1>
    


  May 30, 2022 -



  Roman Khachatryan


  Yuan Mei




    <p><h1 id="introduction">
  Introduction
  <a class="anchor" href="#introduction">#</a>
</h1>
<p>One of the most important characteristics of stream processing systems is end-to-end latency, i.e. the time it takes for the results of processing an input record to reach the outputs. In the case of Flink, end-to-end latency mostly depends on the checkpointing mechanism, because processing results should only become visible after the state of the stream is persisted to non-volatile storage (this is assuming exactly-once mode; in other modes, results can be published immediately).</p>
<p>Furthermore, сheckpoint duration also defines the reasonable interval with which checkpoints are made. A shorter interval provides the following advantages:</p>
<ul>
<li>Lower latency for transactional sinks: Transactional sinks commit on checkpoints, so faster checkpoints mean more frequent commits.</li>
<li>More predictable checkpoint intervals: Currently, the duration of a checkpoint depends on the size of the artifacts that need to be persisted in the checkpoint storage.</li>
<li>Less work on recovery. The more frequently the checkpoint, the fewer events need to be re-processed after recovery.</li>
</ul>
<p>Following are the main factors affecting checkpoint duration in Flink:</p>
<ol>
<li>Barrier travel time and alignment duration</li>
<li>Time to take state snapshot and persist it onto the durable highly-available storage (such as S3)</li>
</ol>
<p>Recent improvements such as <a href="https://flink.apache.org/2020/10/15/from-aligned-to-unaligned-checkpoints-part-1.html">Unaligned checkpoints</a> and <a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-183%3A&#43;Dynamic&#43;buffer&#43;size&#43;adjustment"> Buffer debloating </a> try to address (1), especially in the presence of back-pressure. Previously, <a href="https://flink.apache.org/features/2018/01/30/incremental-checkpointing.html"> Incremental checkpoints </a> were introduced to reduce the size of a snapshot, thereby reducing the time required to store it (2).</p>
<p>However, there are still some cases when this duration is high</p>
<h3 id="every-checkpoint-is-delayed-by-at-least-one-task-with-high-parallelism">
  Every checkpoint is delayed by at least one task with high parallelism
  <a class="anchor" href="#every-checkpoint-is-delayed-by-at-least-one-task-with-high-parallelism">#</a>
</h3>
<center>
<img src="/img/blog/2022-05-30-changelog-state-backend/failing-task.png"/>
<br/>
</center>
<br/>
<p>With the existing incremental checkpoint implementation of the RocksDB state backend, every subtask needs to periodically perform some form of compaction. That compaction results in new, relatively big files, which in turn increase the upload time (2). The probability of at least one node performing such compaction and thus slowing down the whole checkpoint grows proportionally to the number of nodes. In large deployments, almost every checkpoint becomes delayed by some node.</p>
<h3 id="unnecessary-delay-before-uploading-state-snapshot">
  Unnecessary delay before uploading state snapshot
  <a class="anchor" href="#unnecessary-delay-before-uploading-state-snapshot">#</a>
</h3>
<center>
<img src="/img/blog/2022-05-30-changelog-state-backend/checkpoint-timing.png"/>
<br/>
</center>
<br/>
<p>State backends don&rsquo;t start any snapshotting work until the task receives at least one checkpoint barrier, increasing the effective checkpoint duration. This is suboptimal if the upload time is comparable to the checkpoint interval; instead, a snapshot could be uploaded continuously throughout the interval.</p>
<p>This work discusses the mechanism introduced in Flink 1.15 to address the above cases by continuously persisting state changes on non-volatile storage while performing materialization in the background. The basic idea is described in the following section, and then important implementation details are highlighted. Subsequent sections discuss benchmarking results, limitations, and future work.</p>
<h1 id="high-level-overview">
  High-level Overview
  <a class="anchor" href="#high-level-overview">#</a>
</h1>
<p>The core idea is to introduce a state changelog (a log that records state changes); this changelog allows operators to persist state changes in a very fine-grained manner, as described below:</p>
<ul>
<li>Stateful operators write the state changes to the state changelog, in addition to applying them to the state tables in RocksDB or the in-mem Hashtable.</li>
<li>An operator can acknowledge a checkpoint as soon as the changes in the log have reached the durable checkpoint storage.</li>
<li>The state tables are persisted periodically as well, independent of the checkpoints. We call this procedure the materialization of the state on the durable checkpoint storage.</li>
<li>Once the state is materialized on the checkpoint storage, the state changelog can be truncated to the point where the state is materialized.</li>
</ul>
<p>This can be illustrated as follows:</p>
<center>
    <div style="overflow-x: auto">
        <div style="width:150%">
            <img style="display:inline; max-width: 33%; max-height: 200px; margin-left: -1%" src="/img/blog/2022-05-30-changelog-state-backend/log_checkpoints_1.png"/> 
            <img style="display:inline; max-width: 33%; max-height: 200px; margin-left: -1%" src="/img/blog/2022-05-30-changelog-state-backend/log_checkpoints_2.png"/> 
            <img style="display:inline; max-width: 33%; max-height: 200px; margin-left: -1%" src="/img/blog/2022-05-30-changelog-state-backend/log_checkpoints_3.png"/> 
        </div>
    </div>
<pre><code>&lt;br/&gt;
</code></pre>
</center>
<br/>
<p>This approach mirrors what database systems do, adjusted to distributed checkpoints:</p>
<ul>
<li>Changes (inserts/updates/deletes) are written to the transaction log, and the transaction is considered durable once the log is synced to disk (or other durable storage).</li>
<li>The changes are also materialized in the tables (so the database system can efficiently query the table). The tables are usually persisted asynchronously.</li>
</ul>
<p>Once all relevant parts of the changed tables have been persisted, the transaction log can be truncated, which is similar to the materialization procedure in our approach.</p>
<p>Such a design makes a number of trade-offs:</p>
<ol>
<li>Increased use of network IO and remote storage space for changelog</li>
<li>Increased memory usage to buffer state changes</li>
<li>Increased time to replay state changes during the recovery process</li>
</ol>
<p>The last one, may or may not be compensated by more frequent checkpoints. More frequent checkpoints mean less re-processing is needed after recovery.</p>
<h1 id="system-architecture">
  System architecture
  <a class="anchor" href="#system-architecture">#</a>
</h1>
<h2 id="changelog-storage-dstl">
  Changelog storage (DSTL)
  <a class="anchor" href="#changelog-storage-dstl">#</a>
</h2>
<p>The component that is responsible for actually storing state changes has the following requirements.</p>
<h3 id="durability">
  Durability
  <a class="anchor" href="#durability">#</a>
</h3>
<p>Changelog constitutes a part of a checkpoint, and therefore the same durability guarantees as for checkpoints must be provided. However, the duration for which the changelog is stored is expected to be short (until the changes are materialized).</p>
<h3 id="workload">
  Workload
  <a class="anchor" href="#workload">#</a>
</h3>
<p>The workload is write-heavy: changelog is written continuously, and it is only read in case of failure. Once written, data can not be modified.</p>
<h3 id="latency">
  Latency
  <a class="anchor" href="#latency">#</a>
</h3>
<p>We target checkpoint duration of 1s in the Flink 1.15 MVP for 99% of checkpoints. Therefore, an individual write request must complete within that duration or less (if parallelism is 100, then 99.99% of write requests must complete within 1s).</p>
<h3 id="consistency">
  Consistency
  <a class="anchor" href="#consistency">#</a>
</h3>
<p>Once a change is persisted (and acknowledged to JM), it must be available for replay to enable recovery (this can be achieved by using a single machine, quorum, or synchronous replication).</p>
<h3 id="concurrency">
  Concurrency
  <a class="anchor" href="#concurrency">#</a>
</h3>
<p>Each task writes to its own changelog, which prevents concurrency issues across multiple tasks. However, when a task is restarted, it needs to write to the same log, which may cause concurrency issues. This is addressed by:</p>
<ol>
<li>Using unique log segment identifiers while writing</li>
<li>Fencing previous execution attempts on JM when handling checkpoint acknowledgments</li>
<li>After closing the log, treating it as Flink state, which is read-only and is discarded by a single JM (leader)</li>
</ol>
<p>To emphasize the difference in durability requirements and usage compared to other systems (durable, short-lived, append-only), the component is called <strong>&ldquo;Durable Short-term Log&rdquo; (DSTL)</strong>.</p>
<p>DSTL can be implemented in many ways, such as Distributed Log, Distributed File System* (DFS), or even a database. In the MVP version in Flink 1.15, we chose DFS because of the following reasons:</p>
<ol>
<li>No additional external dependency; DFS is readily available in most environments and is already used to store checkpoints</li>
<li>No additional stateful components to manage; using any other persistence medium would incur additional operational overhead</li>
<li>DFS natively provides durability and consistency guarantees which need to be taken care of when implementing a new customized distributed log storage (in particular, when implementing replication)</li>
</ol>
<p>On the other hand, the DFS approach has the following disadvantages:</p>
<ol>
<li>has higher latency than for example Distributed Log writing to the local disks</li>
<li>its scalability is limited by DFS (most Storage Providers start rate-limiting at some point)</li>
</ol>
<p>However, after some initial experimentation, we think the performance of popular DFS could satisfy 80% of the use cases, and more results will be illustrated with the MVP version in a later section.
DFS here makes no distinction between DFS and object stores.</p>
<p>Using RocksDB as an example, this approach can be illustrated at the high level as follows. State updates are replicated to both RocksDB and DSTL by the Changelog State Backend.
DSTL continuously writes state changes to DFS and flushes them periodically and on checkpoint. That way, checkpoint time only depends on the time to flush a small amount of data.
RocksDB on the other hand is still used for querying the state. Furthermore, its SSTables are periodically uploaded to DFS, which is called “materialization”. That upload is independent of and is much less frequent than checkpointing procedure, with 10 minutes as the default interval.</p>
<center>
<img style="max-width: 80%" src="/img/blog/2022-05-30-changelog-state-backend/changelog-simple.png"/>
<br/>
</center>
<br/>
<p>There are a few more issues worth highlighting here:</p>
<h2 id="state-cleanup">
  State cleanup
  <a class="anchor" href="#state-cleanup">#</a>
</h2>
<p>State changelog needs to be truncated once the corresponding changes are materialized. It becomes more complicated with re-scaling and sharing the underlying files across multiple operators. However, Flink already provides a mechanism called <code>SharedStateRegistry</code> similar to file system reference counting. Log fragments can be viewed as shared state objects, and therefore can be tracked by this <code>SharedStateRegistry</code> (please see <a href="https://www.ververica.com/blog/managing-large-state-apache-flink-incremental-checkpointing-overview"> this </a> article for more information on how <code>SharedStateRegistry</code> was used previously).</p>
<h2 id="dfs-specific-issues">
  DFS-specific issues
  <a class="anchor" href="#dfs-specific-issues">#</a>
</h2>
<h3 id="small-files-problem">
  Small files problem
  <a class="anchor" href="#small-files-problem">#</a>
</h3>
<p>One issue with using DFS is that much more and likely smaller files are created for each checkpoint. And with the increased checkpoint frequency, there are more checkpoints.
To mitigate this, state changes related to the same job on a TM are grouped into a single file.</p>
<h3 id="high-tail-latency">
  High tail latency
  <a class="anchor" href="#high-tail-latency">#</a>
</h3>
<p>DFS are known for high tail latencies, although this has been improving in recent years.
To address the high-tail-latency problem, write requests are retried when they fail to complete within a timeout, which is 1 second by default (but can be configured manually).</p>
<h1 id="benchmark-results">
  Benchmark results
  <a class="anchor" href="#benchmark-results">#</a>
</h1>
<p>The improvement of checkpoint stability and speed after enabling Changelog highly depends on the factors below:</p>
<ul>
<li>The difference between the changelog diff size and the full state size (or incremental state size, if comparing changelog to incremental checkpoints).</li>
<li>The ability to upload the updates continuously during the checkpoint (e.g. an operator might maintain state in memory and only update Flink state objects on checkpoint - in this case, changelog wouldn’t help much).</li>
<li>The ability to group updates from multiple tasks (multiple tasks must be deployed on a single TM). Grouping the updates leads to fewer files being created thereby reducing the load on DFS, which improves the stability.</li>
<li>The ability of the underlying backend to accumulate updates to the same key before flushing (This makes state change log potentially contain more updates compared to just the final value, leading to a larger incremental changelog state size)</li>
<li>The speed of the underlying durable storage (the faster it is, the less significant the improvement)</li>
</ul>
<p>The following setup was used in the experiment:</p>
<ul>
<li>Parallelism: 50</li>
<li>Running time: 21h</li>
<li>State backend: RocksDB (incremental checkpoint enabled)</li>
<li>Storage: S3 (Presto plugin)</li>
<li>Machine type: AWS m5.xlarge (4 slots per TM)</li>
<li>Checkpoint interval: 10ms</li>
<li>State Table materialization interval: 3m</li>
<li>Input rate: 50K events per second</li>
</ul>
<h2 id="valuestate-workload">
  ValueState workload
  <a class="anchor" href="#valuestate-workload">#</a>
</h2>
<p>A workload updating mostly the new keys each time would benefit the most.</p>
<table border="1">
  <thead>
    <tr>
      <th style="padding: 5px">&nbsp;</th>
      <th style="padding: 5px">Changelog Disabled</th>
      <th style="padding: 5px">Changelog Enabled</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="padding: 5px">Records processed</td>
      <td style="padding: 5px">3,808,629,616</td>
      <td style="padding: 5px">3,810,508,130</td>
    </tr>
    <tr>
      <td style="padding: 5px">Checkpoints made</td>
      <td style="padding: 5px">10,023</td>
      <td style="padding: 5px">108,649</td>
    </tr>
    <tr>
      <td style="padding: 5px">Checkpoint duration, 90%</td>
      <td style="padding: 5px">6s</td>
      <td style="padding: 5px">664ms</td>
    </tr>
    <tr>
      <td style="padding: 5px">Checkpoint duration, 99.9%</td>
      <td style="padding: 5px">10s</td>
      <td style="padding: 5px">1s</td>
    </tr>
    <tr>
      <td style="padding: 5px">Full checkpoint size *, 99%</td>
      <td style="padding: 5px">19.6GB</td>
      <td style="padding: 5px">25.6GB</td>
    </tr>
    <tr>
      <td style="padding: 5px">Recovery time (local recovery disabled)</td>
      <td style="padding: 5px">20-21s</td>
      <td style="padding: 5px">35-65s (depending on the checkpoint)</td>
    </tr>
  </tbody>
</table>
<p>As can be seen from the above table, checkpoint duration is reduced 10 times for 99.9% of checkpoints, while space usage increases by 30%, and recovery time increases by 66%-225%.</p>
<p>More details about the checkpoints (Changelog Enabled / Changelog Disabled):</p>
<table border="1">
  <thead>
    <tr>
      <th style="padding: 5px">Percentile</th>
      <th style="padding: 5px">End to End Duration</th>
      <th style="padding: 5px">Checkpointed Data Size *</th>
      <th style="padding: 5px">Full Checkpoint Data Size *</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="padding: 5px">50%</td>
      <td style="padding: 5px">311ms / 5s</td>
      <td style="padding: 5px">14.8MB / 3.05GB</td>
      <td style="padding: 5px">24.2GB / 18.5GB</td>
    </tr>
    <tr>
      <td style="padding: 5px">90%</td>
      <td style="padding: 5px">664ms / 6s</td>
      <td style="padding: 5px">23.5MB / 4.52GB</td>
      <td style="padding: 5px">25.2GB / 19.3GB</td>
    </tr>
    <tr>
      <td style="padding: 5px">99%</td>
      <td style="padding: 5px">1s / 7s</td>
      <td style="padding: 5px">36.6MB / 5.19GB</td>
      <td style="padding: 5px">25.6GB / 19.6GB</td>
    </tr>
    <tr>
      <td style="padding: 5px">99.9%</td>
      <td style="padding: 5px">1s / 10s</td>
      <td style="padding: 5px">52.8MB / 6.49GB</td>
      <td style="padding: 5px">25.7GB / 19.8GB</td>
    </tr>
  </tbody>
</table>
<p>* Checkpointed Data Size is the size of data persisted after receiving the necessary number of checkpoint barriers, during a so-called synchronous and then asynchronous checkpoint phases. Most of the data is persisted pre-emptively (i.e. after the previous checkpoint and before the current one), and that’s why this size is much lower when the Changelog is enabled.
<br>
* Full checkpoint size is the total size of all the files comprising the checkpoint, including any files reused from the previous checkpoints. Compared to a normal checkpoint, the one with a changelog is less compact, keeping all the historical values since the last materialization, and therefore consumes much more space</p>
<h2 id="window-workload">
  Window workload
  <a class="anchor" href="#window-workload">#</a>
</h2>
<p>This workload used Processing Time Sliding Window. As can be seen below, checkpoints are still faster, resulting in 3 times shorter durations; but storage amplification is much higher in this case (45 times more space consumed):</p>
<p>Checkpoint Statistics for Window Workload with Changelog Enabled / Changelog Disabled</p>
<table border="1">
  <thead>
    <tr>
      <th style="padding: 5px">Percentile</th>
      <th style="padding: 5px">End to End Duration</th>
      <th style="padding: 5px">Checkpointed Data Size</th>
      <th style="padding: 5px">Full Checkpoint Data Size</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="padding: 5px">50%</td>
      <td style="padding: 5px">791ms / 1s</td>
      <td style="padding: 5px">269MB / 1.18GB</td>
      <td style="padding: 5px">85.5GB / 1.99GB</td>
    </tr>
    <tr>
      <td style="padding: 5px">90%</td>
      <td style="padding: 5px">1s / 1s</td>
      <td style="padding: 5px">292MB / 1.36GB</td>
      <td style="padding: 5px">97.4GB / 2.16GB</td>
    </tr>
    <tr>
      <td style="padding: 5px">99%</td>
      <td style="padding: 5px">1s / 6s</td>
      <td style="padding: 5px">310MB / 1.67GB</td>
      <td style="padding: 5px">103GB / 2.26GB</td>
    </tr>
    <tr>
      <td style="padding: 5px">99.9%</td>
      <td style="padding: 5px">2s / 6s</td>
      <td style="padding: 5px">324MB / 1.87GB</td>
      <td style="padding: 5px">104GB / 2.30GB</td>
    </tr>
  </tbody>
</table>
<p>The increase in space consumption (Full Checkpoint Data Size) can be attributed to:</p>
<ol>
<li>Assigning each element to multiple sliding windows (and persisting the state changelog for each). While RocksDB and Heap have the same issue, with changelog the impact is multiplied even further.</li>
<li>As mentioned above, if the underlying state backend (i.e. RocksDB) is able to accumulate multiple state updates for the same key without flushing, the snapshot will be smaller in size than the changelog. In this particular case of sliding window, the updates to its contents are eventually followed by purging that window. If those updates and purge happen during the same checkpoint, then it&rsquo;s quite likely that the window is not included in the snapshot.
This also implies that the faster the window is purged, the smaller the size of the snapshot is.</li>
</ol>
<h1 id="conclusion-and-future-work">
  Conclusion and future work
  <a class="anchor" href="#conclusion-and-future-work">#</a>
</h1>
<p>Generic log-based incremental checkpoints is released as MVP version in Flink 1.15. This version demonstrates that solutions based on modern DFS can provide good enough latency. Furthermore, checkpointing time and stability are improved significantly by using the Changelog. However, some trade-offs must be made before using it (in particular, space amplification).
<br>
In the next releases, we plan to enable more use cases for Changelog, e.g., by reducing recovery time via local recovery and improving compatibility.</p>
<p>Another direction is further reducing latency. This can be achieved by using faster storage, such as Apache Bookkeeper or Apache Kafka.</p>
<p>Besides that, we are investigating other applications of Changelog, such as WAL for sinks and queryable states.</p>
<p>We encourage you to try out this feature and assess the pros and cons of using it in your setup. The simplest way to do this it is to add the following to your flink-conf.yaml:</p>
<pre><code>state.backend.changelog.enabled: true
state.backend.changelog.storage: filesystem 
dstl.dfs.base-path: &lt;location similar to state.checkpoints.dir&gt;
</code></pre>
<p>Please see the full documentation <a href="https://nightlies.apache.org/flink/flink-docs-master/docs/ops/state/state_backends/#enabling-changelog">here</a>.</p>
<h1 id="acknowledgments">
  Acknowledgments
  <a class="anchor" href="#acknowledgments">#</a>
</h1>
<p>We thank Stephan Ewen for the initial idea of the project, and many other engineers including Piotr Nowojski, Yu Li and Yun Tang for design discussions and code reviews.</p>
<h1 id="references">
  References
  <a class="anchor" href="#references">#</a>
</h1>
<ul>
<li>
<p><a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-158%3A&#43;Generalized&#43;incremental&#43;checkpoints"> FLIP-158 </a></p>
</li>
<li>
<p><a href="https://nightlies.apache.org/flink/flink-docs-master/docs/ops/state/state_backends/#enabling-changelog"> generic log-based incremental checkpoints documentation </a></p>
</li>
<li>
<p><a href="https://flink.apache.org/2020/10/15/from-aligned-to-unaligned-checkpoints-part-1.html"> Unaligned checkpoints </a></p>
</li>
<li>
<p><a href="https://cwiki.apache.org/confluence/display/FLINK/FLIP-183%3A&#43;Dynamic&#43;buffer&#43;size&#43;adjustment"> Buffer debloating </a></p>
</li>
<li>
<p><a href="https://flink.apache.org/features/2018/01/30/incremental-checkpointing.html"> Incremental checkpoints </a></p>
</li>
</ul>
</p>
</article>

          



  
    
    <div class="edit-this-page">
      <p>
        <a href="https://cwiki.apache.org/confluence/display/FLINK/Flink+Translation+Specifications">Want to contribute translation?</a>
      </p>
      <p>
        <a href="//github.com/apache/flink-web/edit/asf-site/docs/content/posts/2022-05-30-changelog-state-backend.md">
          Edit This Page<i class="fa fa-edit fa-fw"></i> 
        </a>
      </p>
    </div>

        </section>
        
          <aside class="book-toc">
            


<nav id="TableOfContents"><h3>On This Page <a href="javascript:void(0)" class="toc" onclick="collapseToc()"><i class="fa fa-times" aria-hidden="true"></i></a></h3>
  <ul>
    <li><a href="#introduction">Introduction</a>
      <ul>
        <li>
          <ul>
            <li><a href="#every-checkpoint-is-delayed-by-at-least-one-task-with-high-parallelism">Every checkpoint is delayed by at least one task with high parallelism</a></li>
            <li><a href="#unnecessary-delay-before-uploading-state-snapshot">Unnecessary delay before uploading state snapshot</a></li>
          </ul>
        </li>
      </ul>
    </li>
    <li><a href="#high-level-overview">High-level Overview</a></li>
    <li><a href="#system-architecture">System architecture</a>
      <ul>
        <li><a href="#changelog-storage-dstl">Changelog storage (DSTL)</a>
          <ul>
            <li><a href="#durability">Durability</a></li>
            <li><a href="#workload">Workload</a></li>
            <li><a href="#latency">Latency</a></li>
            <li><a href="#consistency">Consistency</a></li>
            <li><a href="#concurrency">Concurrency</a></li>
          </ul>
        </li>
        <li><a href="#state-cleanup">State cleanup</a></li>
        <li><a href="#dfs-specific-issues">DFS-specific issues</a>
          <ul>
            <li><a href="#small-files-problem">Small files problem</a></li>
            <li><a href="#high-tail-latency">High tail latency</a></li>
          </ul>
        </li>
      </ul>
    </li>
    <li><a href="#benchmark-results">Benchmark results</a>
      <ul>
        <li><a href="#valuestate-workload">ValueState workload</a></li>
        <li><a href="#window-workload">Window workload</a></li>
      </ul>
    </li>
    <li><a href="#conclusion-and-future-work">Conclusion and future work</a></li>
    <li><a href="#acknowledgments">Acknowledgments</a></li>
    <li><a href="#references">References</a></li>
  </ul>
</nav>


          </aside>
          <aside class="expand-toc hidden">
            <a class="toc" onclick="expandToc()" href="javascript:void(0)">
              <i class="fa fa-bars" aria-hidden="true"></i>
            </a>
          </aside>
        
      </main>

      <footer>
        


<div class="separator"></div>
<div class="panels">
  <div class="wrapper">
      <div class="panel">
        <ul>
          <li>
            <a href="https://flink-packages.org/">flink-packages.org</a>
          </li>
          <li>
            <a href="https://www.apache.org/">Apache Software Foundation</a>
          </li>
          <li>
            <a href="https://www.apache.org/licenses/">License</a>
          </li>
          
          
          
            
          
            
          
          

          
            
              
            
          
            
              
                <li>
                  <a  href="/zh/">
                    <i class="fa fa-globe" aria-hidden="true"></i>&nbsp;中文版
                  </a>
                </li>
              
            
          
       </ul>
      </div>
      <div class="panel">
        <ul>
          <li>
            <a href="/what-is-flink/security">Security</a-->
          </li>
          <li>
            <a href="https://www.apache.org/foundation/sponsorship.html">Donate</a>
          </li>
          <li>
            <a href="https://www.apache.org/foundation/thanks.html">Thanks</a>
          </li>
       </ul>
      </div>
      <div class="panel icons">
        <div>
          <a href="/posts">
            <div class="icon flink-blog-icon"></div>
            <span>Flink blog</span>
          </a>
        </div>
        <div>
          <a href="https://github.com/apache/flink">
            <div class="icon flink-github-icon"></div>
            <span>Github</span>
          </a>
        </div>
        <div>
          <a href="https://twitter.com/apacheflink">
            <div class="icon flink-twitter-icon"></div>
            <span>Twitter</span>
          </a>
        </div>
      </div>
  </div>
</div>

<hr/>

<div class="container disclaimer">
  <p>The contents of this website are © 2024 Apache Software Foundation under the terms of the Apache License v2. Apache Flink, Flink, and the Flink logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.</p>
</div>



      </footer>
    
  </body>
</html>






