resumabble pg-fill

main
Bel LaPointe 2025-12-08 16:09:56 -07:00
parent 633128e5c0
commit 47be0a513a
1 changed files with 11 additions and 8 deletions

View File

@ -29,15 +29,17 @@ func run(ctx context.Context) error {
} }
return with.PSQL(ctx, *c, func(pg *sql.DB) error { return with.PSQL(ctx, *c, func(pg *sql.DB) error {
report := func() error { presently := func() int {
var n2 uint64 var n2 int
if row := pg.QueryRowContext(ctx, `SELECT pg_total_relation_size('fill_with_data')/1024/1024`); row.Err() != nil { if row := pg.QueryRowContext(ctx, `SELECT pg_total_relation_size('fill_with_data')/1024/1024`); row.Err() != nil {
return row.Err() return 0
} else if err := row.Scan(&n2); err != nil { } else if err := row.Scan(&n2); err != nil {
return err return 0
} }
log.Printf("filled %vMiB of requested %vMiB", n2, *n) return n2
return nil }
report := func() {
log.Printf("filled %vMiB of requested %vMiB", presently(), *n)
} }
go with.Every(ctx, 5*time.Second, func() { go with.Every(ctx, 5*time.Second, func() {
@ -53,7 +55,7 @@ func run(ctx context.Context) error {
// https://gist.github.com/ololobus/5b25c432f208d7eb31051a5f238dffff // https://gist.github.com/ololobus/5b25c432f208d7eb31051a5f238dffff
// 2e6=1GB, so 2e6/8=12MB // 2e6=1GB, so 2e6/8=12MB
for i := 0; i < (*n)/12; i++ { for i := presently(); i < (*n)/12; i++ {
for ctx.Err() == nil { for ctx.Err() == nil {
if _, err := pg.ExecContext(ctx, ` if _, err := pg.ExecContext(ctx, `
INSERT INTO fill_with_data (x, y, z) INSERT INTO fill_with_data (x, y, z)
@ -72,6 +74,7 @@ func run(ctx context.Context) error {
} }
} }
return report() report()
return nil
}) })
} }