1pub struct TableSchema {
12 pub name: &'static str,
13 pub columns: &'static [ColumnDef],
14}
15
16pub struct ColumnDef {
17 pub name: &'static str,
18 pub data_type: DataType,
19}
20
21pub enum DataType {
22 Text,
23 Number,
24 Timestamp,
25}
26
27pub const EXPERIMENTS_SCHEMA: TableSchema = TableSchema {
28 name: "experiments",
29 columns: &[
30 ColumnDef {
31 name: "id",
32 data_type: DataType::Text,
33 },
34 ColumnDef {
35 name: "name",
36 data_type: DataType::Text,
37 },
38 ColumnDef {
39 name: "status",
40 data_type: DataType::Text,
41 },
42 ColumnDef {
43 name: "loss",
44 data_type: DataType::Number,
45 },
46 ColumnDef {
47 name: "accuracy",
48 data_type: DataType::Number,
49 },
50 ColumnDef {
51 name: "learning_rate",
52 data_type: DataType::Number,
53 },
54 ColumnDef {
55 name: "batch_size",
56 data_type: DataType::Number,
57 },
58 ColumnDef {
59 name: "created_at",
60 data_type: DataType::Timestamp,
61 },
62 ],
63};
64
65pub const TELEMETRY_SCHEMA: TableSchema = TableSchema {
66 name: "telemetry",
67 columns: &[
68 ColumnDef {
69 name: "job_id",
70 data_type: DataType::Text,
71 },
72 ColumnDef {
73 name: "avg_gpu_utilization",
74 data_type: DataType::Number,
75 },
76 ColumnDef {
77 name: "dataloader_wait_p99",
78 data_type: DataType::Number,
79 },
80 ColumnDef {
81 name: "cuda_launch_p50",
82 data_type: DataType::Number,
83 },
84 ColumnDef {
85 name: "nccl_allreduce_p50",
86 data_type: DataType::Number,
87 },
88 ],
89};