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->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>