Skip to content

Commit 459f969

Browse files
craig[bot]Pradyum-Git
andcommitted
Merge #150321
150321: **workload: add main orchestrator `workload.go` for end-to-end data g… r=nameisbhaskar a=Pradyum-Git …eneration** Previously, the workload generator package provided parsing of input DDL and metadata structs, as well as a set of pluggable generators and wrappers, but lacked a central entry point to drive the entire workflow. This patch introduces a new `workload.go` file that serves as the main orchestrator: * Defines the `main` function and CLI flags (e.g. `--ddl-path`, `--output-dir`, batch size, random seed). * Invokes DDL parsing to build in-memory schema representations. * Constructs per-table generators by calling into the existing factory and applying wrappers. * Streams data generation for each table, writing SQL (or CSV) to the specified output. Fixes: CRDB-51752 Release note (cli change): Adds `workload.go` as the primary CLI entry point for workload generation, wiring together DDL parsing, schema construction, generator factory, and output routines—establishing a cohesive, flag-driven workflow for end-to-end data generation. Co-authored-by: Pradyum <[email protected]>
2 parents baf14b9 + cdd05e8 commit 459f969

File tree

7 files changed

+407
-11
lines changed

7 files changed

+407
-11
lines changed

pkg/ccl/workloadccl/allccl/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ go_library(
3232
"//pkg/workload/ttlbench",
3333
"//pkg/workload/ttllogger",
3434
"//pkg/workload/vecann",
35+
"//pkg/workload/workload_generator",
3536
"//pkg/workload/ycsb",
3637
],
3738
)

pkg/ccl/workloadccl/allccl/all.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,6 @@ import (
3636
_ "github.com/cockroachdb/cockroach/pkg/workload/ttlbench"
3737
_ "github.com/cockroachdb/cockroach/pkg/workload/ttllogger"
3838
_ "github.com/cockroachdb/cockroach/pkg/workload/vecann"
39+
_ "github.com/cockroachdb/cockroach/pkg/workload/workload_generator"
3940
_ "github.com/cockroachdb/cockroach/pkg/workload/ycsb"
4041
)

pkg/ccl/workloadccl/allccl/all_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,9 @@ func TestAllRegisteredSetup(t *testing.T) {
147147
// This requires downloading from a GCP bucket and storing in the
148148
// machine's ~/.cache directory.
149149
continue
150+
case `workload_generator`:
151+
// This will take its schema generation data from flags at run time, so static checks are not valid.
152+
continue
150153
}
151154

152155
t.Run(meta.Name, func(t *testing.T) {

pkg/cli/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,7 @@ go_library(
244244
"//pkg/workload/tpch",
245245
"//pkg/workload/ttlbench",
246246
"//pkg/workload/ttllogger",
247+
"//pkg/workload/workload_generator",
247248
"//pkg/workload/workloadsql",
248249
"//pkg/workload/ycsb",
249250
"@com_github_cockroachdb_apd_v3//:apd",

pkg/cli/cli.go

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,18 @@ import (
3030
_ "github.com/cockroachdb/cockroach/pkg/workload/bank" // registers workloads
3131
_ "github.com/cockroachdb/cockroach/pkg/workload/bulkingest" // registers workloads
3232
workloadcli "github.com/cockroachdb/cockroach/pkg/workload/cli"
33-
_ "github.com/cockroachdb/cockroach/pkg/workload/debug" // registers workloads
34-
_ "github.com/cockroachdb/cockroach/pkg/workload/examples" // registers workloads
35-
_ "github.com/cockroachdb/cockroach/pkg/workload/insights" // registers workloads
36-
_ "github.com/cockroachdb/cockroach/pkg/workload/kv" // registers workloads
37-
_ "github.com/cockroachdb/cockroach/pkg/workload/movr" // registers workloads
38-
_ "github.com/cockroachdb/cockroach/pkg/workload/sqlstats" // registers workloads
39-
_ "github.com/cockroachdb/cockroach/pkg/workload/tpcc" // registers workloads
40-
_ "github.com/cockroachdb/cockroach/pkg/workload/tpch" // registers workloads
41-
_ "github.com/cockroachdb/cockroach/pkg/workload/ttlbench" // registers workloads
42-
_ "github.com/cockroachdb/cockroach/pkg/workload/ttllogger" // registers workloads
43-
_ "github.com/cockroachdb/cockroach/pkg/workload/ycsb" // registers workloads
33+
_ "github.com/cockroachdb/cockroach/pkg/workload/debug" // registers workloads
34+
_ "github.com/cockroachdb/cockroach/pkg/workload/examples" // registers workloads
35+
_ "github.com/cockroachdb/cockroach/pkg/workload/insights" // registers workloads
36+
_ "github.com/cockroachdb/cockroach/pkg/workload/kv" // registers workloads
37+
_ "github.com/cockroachdb/cockroach/pkg/workload/movr" // registers workloads
38+
_ "github.com/cockroachdb/cockroach/pkg/workload/sqlstats" // registers workloads
39+
_ "github.com/cockroachdb/cockroach/pkg/workload/tpcc" // registers workloads
40+
_ "github.com/cockroachdb/cockroach/pkg/workload/tpch" // registers workloads
41+
_ "github.com/cockroachdb/cockroach/pkg/workload/ttlbench" // registers workloads
42+
_ "github.com/cockroachdb/cockroach/pkg/workload/ttllogger" // registers workloads
43+
_ "github.com/cockroachdb/cockroach/pkg/workload/workload_generator" //registers workloads
44+
_ "github.com/cockroachdb/cockroach/pkg/workload/ycsb" // registers workloads
4445
"github.com/cockroachdb/errors"
4546
"github.com/spf13/cobra"
4647
)

pkg/workload/workload_generator/BUILD.bazel

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,20 @@ go_library(
99
"schema_generator.go",
1010
"types.go",
1111
"utils.go",
12+
"workload.go",
1213
],
1314
importpath = "github.com/cockroachdb/cockroach/pkg/workload/workload_generator",
1415
visibility = ["//visibility:public"],
1516
deps = [
17+
"//pkg/col/coldata",
18+
"//pkg/sql/types",
19+
"//pkg/util/bufalloc",
1620
"//pkg/util/timeutil",
21+
"//pkg/workload",
22+
"//pkg/workload/histogram",
1723
"@com_github_cockroachdb_errors//:errors",
24+
"@com_github_spf13_pflag//:pflag",
25+
"@in_gopkg_yaml_v2//:yaml_v2",
1826
],
1927
)
2028

0 commit comments

Comments
 (0)