@@ -1619,6 +1619,50 @@ func registerTPCC(r registry.Registry) {
1619
1619
Clouds : registry .OnlyGCE ,
1620
1620
Suites : registry .Suites (registry .Weekly ),
1621
1621
})
1622
+
1623
+ // Buffered writes benchmarks. These are duplicates of variants above.
1624
+
1625
+ // A variant with only buffering enabled (pipelining disabled).
1626
+ registerTPCCBenchSpec (
1627
+ r , tpccBenchSpec {
1628
+ Nodes : 3 ,
1629
+ CPUs : 16 ,
1630
+
1631
+ LoadWarehousesGCE : 3500 ,
1632
+ LoadWarehousesAWS : 3900 ,
1633
+ LoadWarehousesAzure : 3900 ,
1634
+ LoadWarehousesIBM : 3900 ,
1635
+ EstimatedMaxGCE : 3100 ,
1636
+ EstimatedMaxAWS : 3600 ,
1637
+ EstimatedMaxAzure : 3600 ,
1638
+ EstimatedMaxIBM : 3600 ,
1639
+ WriteOptimization : registry .Buffering ,
1640
+
1641
+ Clouds : registry .AllClouds ,
1642
+ Suites : registry .Suites (registry .Nightly ),
1643
+ },
1644
+ )
1645
+
1646
+ // A variant with pipelining and buffering both enabled.
1647
+ registerTPCCBenchSpec (
1648
+ r , tpccBenchSpec {
1649
+ Nodes : 3 ,
1650
+ CPUs : 16 ,
1651
+
1652
+ LoadWarehousesGCE : 3500 ,
1653
+ LoadWarehousesAWS : 3900 ,
1654
+ LoadWarehousesAzure : 3900 ,
1655
+ LoadWarehousesIBM : 3900 ,
1656
+ EstimatedMaxGCE : 3100 ,
1657
+ EstimatedMaxAWS : 3600 ,
1658
+ EstimatedMaxAzure : 3600 ,
1659
+ EstimatedMaxIBM : 3600 ,
1660
+ WriteOptimization : registry .PipeliningBuffering ,
1661
+
1662
+ Clouds : registry .AllClouds ,
1663
+ Suites : registry .Suites (registry .Nightly ),
1664
+ },
1665
+ )
1622
1666
}
1623
1667
1624
1668
func valueForCloud (cloud spec.Cloud , gce , aws , azure , ibm int ) int {
@@ -1730,6 +1774,9 @@ type tpccBenchSpec struct {
1730
1774
// SharedProcessMT, if true, indicates that the cluster should run in
1731
1775
// shared-process mode of multi-tenancy.
1732
1776
SharedProcessMT bool
1777
+ // WriteOptimization specifies the write optimization to use (e.g. pipelining,
1778
+ // buffering, or both).
1779
+ WriteOptimization registry.WriteOptimizationType
1733
1780
}
1734
1781
1735
1782
func (s tpccBenchSpec ) EstimatedMax (cloud spec.Cloud ) int {
@@ -1829,6 +1876,10 @@ func registerTPCCBenchSpec(r registry.Registry, b tpccBenchSpec) {
1829
1876
nameParts = append (nameParts , "mt-shared-process" )
1830
1877
}
1831
1878
1879
+ if b .WriteOptimization != registry .DefaultWriteOptimization {
1880
+ nameParts = append (nameParts , fmt .Sprintf ("write-optimization=%s" , b .WriteOptimization .String ()))
1881
+ }
1882
+
1832
1883
name := strings .Join (nameParts , "/" )
1833
1884
1834
1885
numNodes := b .Nodes + b .LoadConfig .numLoadNodes (b .Distribution )
@@ -1844,6 +1895,7 @@ func registerTPCCBenchSpec(r registry.Registry, b tpccBenchSpec) {
1844
1895
Suites : b .Suites ,
1845
1896
EncryptionSupport : encryptionSupport ,
1846
1897
Leases : leases ,
1898
+ WriteOptimization : b .WriteOptimization ,
1847
1899
PostProcessPerfMetrics : getMaxWarehousesAboveEfficiency ,
1848
1900
Run : func (ctx context.Context , t test.Test , c cluster.Cluster ) {
1849
1901
runTPCCBench (ctx , t , c , b )
0 commit comments