github.com/cockroachdb/pebble@v1.1.1-0.20240513155919-3622ade60459/docs/index.html (about)

     1  <!DOCTYPE html>
     2  <html lang="en">
     3    <head>
     4      <meta charset="utf-8">
     5      <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
     6      <link rel="stylesheet" href="css/app.css" >
     7      <title>Pebble Benchmarks</title>
     8    </head>
     9    <body>
    10      <div class="center rows">
    11        <div class="section">
    12          <div class="columns">
    13            <div class="title">Pebble Benchmarks</div>
    14            <div class="updated">Last updated</div>
    15          </div>
    16          <br/>
    17          <div class="columns">
    18            <div class="overview">
    19              Benchmarks are run nightly using <a class="code"
    20              href="https://github.com/cockroachdb/pebble/blob/master/cmd/pebble/ycsb.go">pebble
    21              bench ycsb</a> on AWS m6id.4xlarge machines equipped with
    22              local SSD storage. The AWS instances show remarkably high
    23              instance to instance performance variability. In order to
    24              smooth out that variability the benchmarks are run multiple
    25              times each (using different instances) and outliers are
    26              excluded.
    27            </div>
    28            <div>
    29              <div class="controls">
    30                <b>Detail:</b>
    31                <a id="readBytes" class="toggle">Bytes Read</a> |
    32                <a id="writeBytes" class="toggle">Bytes Written</a> |
    33                <a id="readAmp" class="toggle">Read Amp</a> |
    34                <a id="writeAmp" class="toggle">Write Amp</a>
    35              </div>
    36              <div class="controls">
    37                <b>Options:</b>
    38                <a id="localMax">Local scale</a>
    39              </div>
    40            </div>
    41          </div>
    42          <hr class="divider"/>
    43          <div class="annotation" data-date="20200614">L0-sublevels and
    44          flush-splits enabled</div>
    45          <div class="annotation" data-date="20200604">Increased
    46          LogWriter free blocks 4-&gt;16</div>
    47          <div class="annotation" data-date="20200706">Began tracking
    48          ycsb/E read-amp</div>
    49          <div class="annotation" data-date="20201022">Level metadata
    50          switched to use a B-Tree</div>
    51          <div class="annotation" data-date="20201222">Enabled
    52          read-triggered compactions</div>
    53          <div class="annotation" data-date="20210113">Readahead
    54          and preallocation bug fixed</div>
    55          <div class="annotation" data-date="20210326">Removed excess
    56          read samples for read-triggered compactions</div>
    57          <div class="annotation" data-date="20210429">Switched to Ubuntu
    58          20.04.2 LTS AMI</div>
    59          <div class="annotation" data-date="20211018">Read compaction fixes</div>
    60          <div class="annotation" data-date="20211109">Bumped benchmark
    61            runtime to 90 minutes</div>
    62          <div class="annotation" data-date="20220330">Data quality issue introduced (YCSB A only)</div>
    63          <div class="annotation" data-date="20220526">Data quality issue fixed (YCSB A only)</div>
    64          <div class="annotation" data-date="20220626">Began zeroing reused
    65              iterator structs (#1822)</div>
    66          <div class="annotation" data-date="20230215">Grandparent boundary
    67              compaction splitting</div>
    68          <div class="annotation" data-date="20230516">Infrastructure
    69              change (#2578)</div>
    70          <div class="annotation" data-date="20230607">ycsb/F sampling bug</div>
    71          <div class="annotation" data-date="20230611">Switched to m6id.4xlarge
    72              (from 5d.4xlarge)</div>
    73        </div>
    74        <div class="section rows">
    75          <div>
    76            <span class="subtitle">YCSB A</span>
    77            <span>(50% reads, 50% updates, zipf key distribution)</span>
    78          </div>
    79          <div class="columns">
    80            <svg class="chart ycsb" data-key="ycsb/A/values=64"></svg>
    81            <svg class="chart ycsb" data-key="ycsb/A/values=1024"></svg>
    82          </div>
    83        </div>
    84        <div class="section rows">
    85          <div>
    86            <span class="subtitle">YCSB B</span>
    87            <span>(95 reads, 5% updates, zipf key distribution)</span>
    88          </div>
    89          <div class="columns">
    90            <svg class="chart ycsb left" data-key="ycsb/B/values=64"></svg>
    91            <svg class="chart ycsb right" data-key="ycsb/B/values=1024"></svg>
    92          </div>
    93        </div>
    94        <div class="section rows">
    95          <div>
    96            <span class="subtitle">YCSB C</span>
    97            <span>(100% reads, zipf key distribution)</span>
    98          </div>
    99          <div class="columns">
   100            <svg class="chart ycsb left" data-key="ycsb/C/values=64"></svg>
   101            <svg class="chart ycsb right" data-key="ycsb/C/values=1024"></svg>
   102          </div>
   103        </div>
   104        <div class="section rows">
   105          <div>
   106            <span class="subtitle">YCSB D</span>
   107            <span>(95% reads, 5% updates, uniform key distribution)</span>
   108          </div>
   109          <div class="columns">
   110            <svg class="chart ycsb left" data-key="ycsb/D/values=64"></svg>
   111            <svg class="chart ycsb right" data-key="ycsb/D/values=1024"></svg>
   112          </div>
   113        </div>
   114        <div class="section rows">
   115          <div>
   116            <span class="subtitle">YCSB E</span>
   117            <span>(95% scans, 5% updates, zipf key distribution)</span>
   118          </div>
   119          <div class="columns">
   120            <svg class="chart ycsb left" data-key="ycsb/E/values=64"></svg>
   121            <svg class="chart ycsb right" data-key="ycsb/E/values=1024"></svg>
   122          </div>
   123        </div>
   124        <div class="section rows">
   125          <div>
   126            <span class="subtitle">Insert-only</span>
   127            <span>(100% inserts, zipf key distribution)</span>
   128          </div>
   129          <div class="columns">
   130            <svg class="chart ycsb left" data-key="ycsb/F/values=64"></svg>
   131            <svg class="chart ycsb right" data-key="ycsb/F/values=1024"></svg>
   132          </div>
   133        </div>
   134      </div>
   135      <div class="center rows">
   136        <div class="section">
   137          <hr class="divider"/>
   138          <div>
   139            <span class="subtitle">Write throughput</span>
   140            <span>(100% inserts, zipf key distribution)</span>
   141          </div>
   142          <br />
   143          <div class="overview">
   144            This benchmark attempts to find the optimal write throughput by
   145            driving more and more load against the DB until a target heuristic
   146            fails (currently a mixture of number of L0 sublevels, L0 files, and
   147            whether the DB has experienced a write stall). These benchmarks are
   148            run nightly using <a class="code"
   149            href="https://github.com/cockroachdb/pebble/blob/master/cmd/pebble/write.go">pebble
   150            bench write</a> on GCP n2-standard-32 machines equipped with 16 local
   151            SSDs in a RAID 0 array.
   152          </div>
   153        </div>
   154        <div class="section rows">
   155          <div class="columns">
   156            <svg class="chart write-throughput" data-key="write/values=1024"></svg>
   157            <svg class="chart write-throughput-detail"/>
   158          </div>
   159        </div>
   160      </div>
   161      <script src="js/d3.v5.min.js"></script>
   162      <script src="https://pebble-benchmarks.s3.amazonaws.com/data.js"></script>
   163      <script src="js/write-throughput.js"></script>
   164      <script src="js/app.js"></script>
   165    </body>
   166  </html>