mirror of
				https://source.quilibrium.com/quilibrium/ceremonyclient.git
				synced 2025-11-04 03:07:28 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			61 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright 2021 The LevelDB-Go and Pebble Authors. All rights reserved. Use
 | 
						|
// of this source code is governed by a BSD-style license that can be found in
 | 
						|
// the LICENSE file.
 | 
						|
 | 
						|
// mkbench is a utility for processing the raw nightly benchmark data in JSON
 | 
						|
// data that can be visualized by docs/js/app.js. The raw data is expected to
 | 
						|
// be stored in dated directories underneath the "data/" directory:
 | 
						|
//
 | 
						|
//	data/YYYYMMDD/.../<file>
 | 
						|
//
 | 
						|
// The files are expected to be bzip2 compressed. Within each file mkbench
 | 
						|
// looks for Go-bench-style lines of the form:
 | 
						|
//
 | 
						|
//	Benchmark<name> %d %f ops/sec %d read %d write %f r-amp %f w-amp
 | 
						|
//
 | 
						|
// The output is written to "data.js". In order to avoid reading all of the raw
 | 
						|
// data to regenerate "data.js" on every run, mkbench first reads "data.js",
 | 
						|
// noting which days have already been processed and exluding files in those
 | 
						|
// directories from being read. This has the additional effect of merging the
 | 
						|
// existing "data.js" with new raw data, which avoids needing to have all of
 | 
						|
// the raw data present to construct a new "data.js" (only the new raw data is
 | 
						|
// necessary).
 | 
						|
//
 | 
						|
// The nightly Pebble benchmarks are orchestrated from the CockroachDB
 | 
						|
// repo:
 | 
						|
//
 | 
						|
//	https://github.com/cockroachdb/cockroach/blob/master/build/teamcity-nightly-pebble.sh
 | 
						|
package main
 | 
						|
 | 
						|
import (
 | 
						|
	"os"
 | 
						|
 | 
						|
	"github.com/spf13/cobra"
 | 
						|
)
 | 
						|
 | 
						|
var rootCmd = &cobra.Command{
 | 
						|
	Use:   "mkbench",
 | 
						|
	Short: "pebble benchmark data tools",
 | 
						|
}
 | 
						|
 | 
						|
func init() {
 | 
						|
	y := getYCSBCommand()
 | 
						|
	rootCmd.AddCommand(getYCSBCommand())
 | 
						|
	rootCmd.AddCommand(getWriteCommand())
 | 
						|
	rootCmd.SilenceUsage = true
 | 
						|
 | 
						|
	// For backwards compatability, the YCSB command is run, with the same
 | 
						|
	// flags, if a subcommand is not specified.
 | 
						|
	// TODO(travers): Remove this after updating the call site in the
 | 
						|
	// nightly-pebble script in cockroach.
 | 
						|
	*rootCmd.Flags() = *y.Flags()
 | 
						|
	rootCmd.RunE = y.RunE
 | 
						|
}
 | 
						|
 | 
						|
func main() {
 | 
						|
	if err := rootCmd.Execute(); err != nil {
 | 
						|
		// Cobra has already printed the error message.
 | 
						|
		os.Exit(1)
 | 
						|
	}
 | 
						|
}
 |