From 7e579b8d6a6b28024398e904868985331966ba88 Mon Sep 17 00:00:00 2001 From: Bob Vawter Date: Wed, 1 Nov 2023 18:57:09 -0400 Subject: [PATCH] votr: Add VOTR demonstration workload This change adds a demo workload that shows how the merge function can be used to implement asynchronous, two-way and hub-and-spoke replication. A more complete discussion of the workload is provided in its README file. A small extension to the existing parse-helpers API is necessary to ensure that JSONB values are reified as json-ish types when loading conflicting rows from the database. The `server.Server` type also supplies its listener address so that VOTR can automatically create changefeeds. --- internal/cmd/votr/README.md | 113 ++++ internal/cmd/votr/schema.go | 297 +++++++++ internal/cmd/votr/schema_test.go | 72 +++ internal/cmd/votr/script/votr.ts | 91 +++ internal/cmd/votr/votr-diagram.png | Bin 0 -> 199501 bytes internal/cmd/votr/votr.go | 609 +++++++++++++++++++ internal/cmd/votr/votr_test.go | 92 +++ internal/source/server/provider.go | 2 +- internal/source/server/server.go | 7 + internal/target/apply/apply.go | 12 +- internal/target/schemawatch/parse_helpers.go | 18 +- main.go | 2 + 12 files changed, 1311 insertions(+), 4 deletions(-) create mode 100644 internal/cmd/votr/README.md create mode 100644 internal/cmd/votr/schema.go create mode 100644 internal/cmd/votr/schema_test.go create mode 100644 internal/cmd/votr/script/votr.ts create mode 100644 internal/cmd/votr/votr-diagram.png create mode 100644 internal/cmd/votr/votr.go create mode 100644 internal/cmd/votr/votr_test.go diff --git a/internal/cmd/votr/README.md b/internal/cmd/votr/README.md new file mode 100644 index 000000000..74c3d57fa --- /dev/null +++ b/internal/cmd/votr/README.md @@ -0,0 +1,113 @@ +# VOTR + +The VOTR workload demonstrates a hub-and-spoke replication workload that +uses cdc-sink's merge features. + +The core workload demonstrates a ballot-casting system. There are three tables: +* `candidates` is an infrequently-updated table that uses a version + column and last-one-wins behaviors +* `ballots` is an append-only table with a composite primary key of + `(candidate uuid, ballot uuid)` +* `totals` maintains per-candidate running totals. It is intended to + show how a high-contention table can be logically replicated; this is + not an ideal pattern for CockroachDB. + +VOTR shows a hub-and-spoke replication model, but it can also operate in +a two-datacenter (2-DC) model. The `votr_0` database is used as the hub, +and an arbitrary number of "spoke" databases, `votr_N` run the workload. +Each hub-spoke pair has two unidirectional changefeeds, each of which +are processed by independent `cdc-sink` instances. There are a total of +six independent feeds that are operating in this demonstration. + +![votr-diagram.png](votr-diagram.png) + +The worker attached to each spoke selects a random number of candidates +and casts one or more ballots to each of them. The VOTR worker knows +nothing about the replication model. The workload is roughly: +* `BEGIN` +* For random Candidate and Number of votes: + * `UPDATE totals SET total = total + N WHERE candidate = C` + * `INSERT INTO ballots (candidate) VALUES (C, generate_series(1, N))` +* `COMMIT` + +Each spoke also has a validation loop that checks whether or not the +total number of ballots equals the running total of all totals. That is +`SELECT count(*) FROM ballots` should equal `SELECT sum(total) FROM +totals` at any given point in time. + +The only SQL client to interact with the `votr_0` hub is cdc-sink. + +The tables used by the `VOTR` workload are augmented with a vector-clock +scheme. That is, each table has a `whence JSONB` column that shows which +worker(s) a row incorporates state from. A `src INT` column also allows +the `vectorMerge()` function defined in the [votr.ts user +script](./script/votr.ts) to ensure idempotency by ensuring that the +clock for a particular source only ever rolls forwards. Note that the +functionality does *not* depend on clock synchronization between the +workers, only that each worker has a reasonably well-behaved cluster +timestamp. + +# Running the demo + +Start one or more local CockroachDB instances. The VOTR workload can use +multiple SQL databases on a single CockroachDB node, or the databases +can be split across multiple clusters. +> `cockroach start-single-node --store type=mem,size=2G --advertise-addr 127.0.0.1:26257 --insecure ` + +Initialize the VOTR schema on each instance. The number of regions is +specified by repeating the `--connect` argument. It is valid to have +duplicate connection strings to use the same CockroachDB node or cluster +to host multiple VOTR databases. This command-line shows the local +CockroachDB node being used to host the hub and three spokes. +> `cdc-sink votr init +> --connect 'postgresql://root@localhost:26257/?sslmode=disable' +> --connect 'postgresql://root@localhost:26257/?sslmode=disable' +> --connect 'postgresql://root@localhost:26257/?sslmode=disable' +> --connect 'postgresql://root@localhost:26257/?sslmode=disable'` + +Run the workload. The `--drainDelay` flag sets a timeout after receiving +a `^C` for the workers to stop, but to allow the cdc-sink instances to +continue to process messages. +> `cdc-sink votr run +> --candidates 128 --workers 1 --drainDelay 1m +> --connect 'postgresql://root@localhost:26257/?sslmode=disable' +> --connect 'postgresql://root@localhost:26257/?sslmode=disable' +> --connect 'postgresql://root@localhost:26257/?sslmode=disable' +> --connect 'postgresql://root@localhost:26257/?sslmode=disable'` + +# Useful demo query + +Show the count of ballots and sum total across multiple VOTR database on +the same node: +```sql +WITH t (n, t) AS ( + SELECT 1 AS n, sum(total) + FROM votr_1.totals + UNION ALL SELECT 2 AS n, sum(total) + FROM votr_2.totals + UNION ALL SELECT 3 AS n, sum(total) + FROM votr_3.totals + UNION ALL SELECT 0 AS n, sum(total) + FROM votr_0.totals + ), + c (n, c) AS ( + SELECT 1, count(*) FROM votr_1.ballots + UNION ALL SELECT 2, count(*) + FROM votr_2.ballots + UNION ALL SELECT 3, count(*) + FROM votr_3.ballots + UNION ALL SELECT 0, count(*) + FROM votr_0.ballots + ) +SELECT * + FROM t JOIN c USING (n) order by n; +``` + +# Known limitations + +* VOTR is a one-shot demo since the changefeeds are deleted on exit. The + cdc-sink HTTP ports are ephemeral, so it's not straightforward to + continue from a previous run. With more development effort, VOTR could + query the jobs table to determine which port it should attempt to bind + a listener to, in order to use the existing state. +* VOTR should demonstrate adding a new region. \ No newline at end of file diff --git a/internal/cmd/votr/schema.go b/internal/cmd/votr/schema.go new file mode 100644 index 000000000..87c730999 --- /dev/null +++ b/internal/cmd/votr/schema.go @@ -0,0 +1,297 @@ +// Copyright 2023 The Cockroach Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// SPDX-License-Identifier: Apache-2.0 + +package votr + +import ( + "context" + "database/sql" + "fmt" + "math/rand" + + "github.com/cockroachdb/cdc-sink/internal/types" + "github.com/cockroachdb/cdc-sink/internal/util/ident" + "github.com/cockroachdb/cdc-sink/internal/util/retry" + "github.com/google/uuid" + "github.com/pkg/errors" +) + +var ( + ballots = ident.New("ballots") + candidates = ident.New("candidates") + totals = ident.New("totals") + + names = [...]string{ + "Alice", "Bob", "Carol", "David", "Eve", "Frank", "Gil", + "Hillary", "Indira", "Jill", "Kyle", "Louis", "Mike", "Nancy", + "Oscar", "Paul", "Queen", "Romeo", "Sierra", "Toni", "Ursula", + "Vik", "Walter", "Xerxes", "Yolanda", "Zola", + } + connectors = [...]string{"le", "the"} + epithets = [...]string{ + "Awesome", "Boor", "Concerned", "Dependable", "Elated", "Fancy", + "Grouch", "Hapless", "Indecisive", "Joyful", "Kleptocrat", + "Lesser", "Mannered", "Nice", "Opulent", "Purposeful", "Quiet", + "Remote", "Sulky", "Truthful", "Unfortunate", "Victorious", + "Wastrel", "XIVth", "Yankee", "Zoologist", + } + moods = [...]string{ + "Active", "Bad", "Cheerful", "Down", "Elated", "Frightened", + "Good", "Happy", "Introspective", "Justified", "Kind", "Liked", + "Mad", "Naughty", "Open", "Puzzled", "Questioning", "Romantic", + "Sleepy", "Trusting", "Watchful", "XOXO", "Zen", + } +) + +const ( + // ballots are append-only. + ballotsSchema = `CREATE TABLE IF NOT EXISTS %[1]s ( +candidate UUID NOT NULL REFERENCES %[2]s ON DELETE CASCADE, +ballot UUID NOT NULL DEFAULT gen_random_uuid(), +whence JSONB NOT NULL +DEFAULT jsonb_build_object(%[3]d, cluster_logical_timestamp()::string) +ON UPDATE jsonb_build_object(%[3]d, cluster_logical_timestamp()::string), +src INT NOT NULL DEFAULT %[3]d ON UPDATE %[3]d, +xyzzy INT NOT NULL DEFAULT 0, -- Hack to force a conflict, until CAS mode has "always" mode. +PRIMARY KEY (candidate, ballot) +)` + + // candidates might be updated occasionally in a last-one-wins manner. + candidatesSchema = `CREATE TABLE IF NOT EXISTS %[1]s ( +candidate UUID PRIMARY KEY, +whence JSONB NOT NULL +DEFAULT jsonb_build_object(%[2]d, cluster_logical_timestamp()::string) +ON UPDATE jsonb_build_object(%[2]d, cluster_logical_timestamp()::string), +src INT NOT NULL DEFAULT %[2]d ON UPDATE %[2]d, +name TEXT NOT NULL, +mood TEXT NOT NULL, +xyzzy INT NOT NULL DEFAULT 0 -- Hack to force a conflict, until CAS mode has "always" mode. +)` + + // totals will show a high-conflict table with custom merge logic. + totalsSchema = `CREATE TABLE IF NOT EXISTS %[1]s ( +candidate UUID PRIMARY KEY REFERENCES %[2]s ON DELETE CASCADE, +whence JSONB NOT NULL +DEFAULT jsonb_build_object(%[3]d, cluster_logical_timestamp()::string) +ON UPDATE jsonb_build_object(%[3]d, cluster_logical_timestamp()::string), +src INT NOT NULL DEFAULT %[3]d ON UPDATE %[3]d, +total INT NOT NULL DEFAULT 0, +xyzzy INT NOT NULL DEFAULT 0 -- Hack to force a conflict, until CAS mode has "always" mode. +)` +) + +type schema struct { + ballots ident.Table + candidates ident.Table + enclosing ident.Ident + totals ident.Table + + candidateIds map[uuid.UUID]struct{} + db *types.SourcePool + region region +} + +func newSchema(db *types.SourcePool, enclosing ident.Ident, r region) *schema { + enclosing = ident.New(enclosing.Raw() + "_" + r.String()) + s := ident.MustSchema(enclosing, ident.Public) + return &schema{ + ballots: ident.NewTable(s, ballots), + candidateIds: make(map[uuid.UUID]struct{}), + candidates: ident.NewTable(s, candidates), + db: db, + enclosing: enclosing, + region: r, + totals: ident.NewTable(s, totals), + } +} + +func (s *schema) create(ctx context.Context) error { + return retry.Retry(ctx, func(ctx context.Context) error { + if _, err := s.db.ExecContext(ctx, fmt.Sprintf( + `DROP DATABASE IF EXISTS %s CASCADE`, s.enclosing)); err != nil { + return errors.WithStack(err) + } + + if _, err := s.db.ExecContext(ctx, fmt.Sprintf( + `CREATE DATABASE %s `, s.enclosing)); err != nil { + return errors.WithStack(err) + } + + if _, err := s.db.ExecContext(ctx, fmt.Sprintf( + candidatesSchema, s.candidates, s.region, + )); err != nil { + return errors.WithStack(err) + } + + if _, err := s.db.ExecContext(ctx, fmt.Sprintf( + ballotsSchema, s.ballots, s.candidates, s.region, + )); err != nil { + return errors.WithStack(err) + } + + if _, err := s.db.ExecContext(ctx, fmt.Sprintf( + totalsSchema, s.totals, s.candidates, s.region, + )); err != nil { + return errors.WithStack(err) + } + return nil + }) +} + +// doStuff selects a random selection of candidates, distributes the +// requested number of votes across them, and inserts the ballots. +func (s *schema) doStuff(ctx context.Context, votes int) error { + if votes <= 0 { + return nil + } + numCandidates := rand.Intn(votes) + 1 // Intn [0,n) + + winners := make([]uuid.UUID, 0, numCandidates) + // Iteration over a map is random enough for our purposes. + for id := range s.candidateIds { + winners = append(winners, id) + if len(winners) == numCandidates { + break + } + } + + voteAllocation := make(map[uuid.UUID]int) + for i := 0; i < votes; i++ { + winnerIdx := i % len(winners) + voteAllocation[winners[winnerIdx]]++ + } + + ballotQ := fmt.Sprintf(`INSERT INTO %s (candidate) +SELECT candidate FROM +(SELECT $1::UUID candidate, generate_series(1, $2))`, s.ballots) + totalQ := fmt.Sprintf(`INSERT INTO %s AS tbl (candidate, total) +VALUES ($1, $2) +ON CONFLICT(candidate) +DO UPDATE SET total=tbl.total+excluded.total`, s.totals) + + return retry.Retry(ctx, func(ctx context.Context) error { + tx, err := s.db.BeginTx(ctx, nil) + if err != nil { + return errors.WithStack(err) + } + defer func() { _ = tx.Rollback() }() + + for candidate, count := range voteAllocation { + if _, err := tx.ExecContext(ctx, totalQ, candidate, count); err != nil { + return errors.WithStack(err) + } + if _, err := tx.ExecContext(ctx, ballotQ, candidate, count); err != nil { + return errors.WithStack(err) + } + } + if err := errors.WithStack(tx.Commit()); err != nil { + return err + } + return nil + }) +} + +func (s *schema) ensureCandidates(ctx context.Context, count int) error { + seed := int64(0) + rnd := rand.New(rand.NewSource(seed)) + + nextMood := func() string { + return moods[rnd.Intn(len(moods))] + } + nextName := func(deconflict int) string { + return fmt.Sprintf("%s %s %s (%d)", + names[rnd.Intn(len(names))], + connectors[rnd.Intn(len(connectors))], + epithets[rnd.Intn(len(epithets))], + deconflict) + } + + // Rows are inserted with deterministic ids. + q := fmt.Sprintf(`UPSERT INTO %s (candidate, name, mood) +VALUES (uuid_generate_v5('455E049E-54B6-41C9-BBCE-1587CC394851', $1), $1, $2) +RETURNING candidate`, s.candidates) + + for i := 0; i < count; i++ { + name := nextName(i) + mood := nextMood() + if err := retry.Retry(ctx, func(ctx context.Context) error { + var id uuid.UUID + if err := s.db.QueryRowContext(ctx, q, name, mood).Scan(&id); err != nil { + return errors.WithStack(err) + } + s.candidateIds[id] = struct{}{} + return nil + }); err != nil { + return err + } + } + + return nil +} + +func (s *schema) sumTotal(ctx context.Context) (int, error) { + var total sql.NullInt64 + err := s.db.QueryRowContext(ctx, + fmt.Sprintf("SELECT sum(total) FROM %s", s.totals), + ).Scan(&total) + return int(total.Int64), errors.Wrapf(err, "sum total in region %s", s.region) +} + +func (s *schema) validate(ctx context.Context, aost bool) ([]string, error) { + asOf := "" + if aost { + asOf = "AS OF SYSTEM TIME follower_read_timestamp()" + } + + q := fmt.Sprintf(` + WITH counted AS (SELECT candidate, count(*) AS count FROM %s GROUP BY candidate), + verify AS ( + SELECT candidate, + IFNULL(counted.count, 0) expected, + IFNULL(totals.total, 0) actual + FROM counted FULL JOIN %s USING (candidate) + ) +SELECT candidate, expected, actual, name + FROM verify + JOIN %s USING (candidate) + %s + WHERE expected != actual`, s.ballots, s.totals, s.candidates, asOf) + + var ret []string + err := retry.Retry(ctx, func(ctx context.Context) error { + ret = nil // Reset if looping. + + rows, err := s.db.QueryContext(ctx, q) + if err != nil { + return errors.WithStack(err) + } + defer func() { _ = rows.Close() }() + + for rows.Next() { + var id uuid.UUID + var expected, actual int + var name string + if err := rows.Scan(&id, &expected, &actual, &name); err != nil { + return errors.WithStack(err) + } + ret = append(ret, fmt.Sprintf("%s: expected %d had %d (%s)", + id, expected, actual, name)) + } + // Final error check. + return errors.WithStack(rows.Err()) + }) + return ret, err +} diff --git a/internal/cmd/votr/schema_test.go b/internal/cmd/votr/schema_test.go new file mode 100644 index 000000000..b8ba5232f --- /dev/null +++ b/internal/cmd/votr/schema_test.go @@ -0,0 +1,72 @@ +// Copyright 2023 The Cockroach Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// SPDX-License-Identifier: Apache-2.0 + +package votr + +import ( + "fmt" + "strings" + "testing" + + "github.com/cockroachdb/cdc-sink/internal/sinktest/base" + "github.com/cockroachdb/cdc-sink/internal/types" + "github.com/stretchr/testify/require" +) + +func TestSchema(t *testing.T) { + const numCandidates = 128 + r := require.New(t) + + fixture, err := base.NewFixture(t) + r.NoError(err) + + checkSupported(t, fixture.SourcePool) + + ctx := fixture.Context + + // Steal the enclosing DATABASE name, since we're basically running + // the votr init command. + enclosingDB := fixture.SourceSchema.Schema().Idents(nil)[0] + sch := newSchema(fixture.SourcePool, enclosingDB, 0) + + // Set up the schema, insert some votes, and ensure that everything + // is consistent. + r.NoError(sch.create(ctx)) + r.NoError(sch.ensureCandidates(ctx, numCandidates)) + for i := 0; i < 10; i++ { + r.NoError(sch.doStuff(ctx, 10)) + } + failures, err := sch.validate(ctx, false) + r.NoError(err) + r.Empty(failures) + + // Break the totals table. + _, err = fixture.SourcePool.ExecContext(ctx, fmt.Sprintf(`UPDATE %s SET total=total+1 WHERE true`, sch.totals)) + r.NoError(err) + failures, err = sch.validate(ctx, false) + r.NoError(err) + r.NotEmpty(failures) +} + +// checkSupported calls t.Skip() if VOTR cannot run on the target +// CockroachDB version. +func checkSupported(t *testing.T, target *types.SourcePool) { + if target.Product != types.ProductCockroachDB || + strings.Contains(target.Version, "v21.") || + strings.Contains(target.Version, "v22.") { + t.Skipf("VOTR only runs on CRDB 23.1 or later") + } +} diff --git a/internal/cmd/votr/script/votr.ts b/internal/cmd/votr/script/votr.ts new file mode 100644 index 000000000..5ca8c2c78 --- /dev/null +++ b/internal/cmd/votr/script/votr.ts @@ -0,0 +1,91 @@ +/* + * Copyright 2023 The Cockroach Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +import * as api from "cdc-sink@v1"; + +// These constants are set by the votr script loader. + +const destination: number = DESTINATION_INDEX; +const votrDB: string = DESTINATION_DB; + +// If the document has already passed through the destination, we don't +// want it to continue looping around. Since this decision can be made +// without loading the row in the destination, we can use the per-table +// map function, rather than filtering in the merge function. +const filterWhence = (doc: api.Document) => doc.src !== destination ? doc : null; + +// vectorMerge is a helper function to admit an incoming mutation based +// on its vector clock versus the destination's knowledge of the clock. +const vectorMerge = + (fallback?: api.MergeFunction): api.MergeFunction => + (op: api.MergeOperation): api.MergeResult => { + // Replay prevention: Don't process messages from older + // clock values in the src column. + let src: number = op.proposed.src; + if (src === undefined) { + throw new Error("src column missing"); + } + let incomingClock: string = op.proposed.whence[src] ?? 0; + let existingClock: string = op.target.whence[src] ?? 0; + if (incomingClock <= existingClock) { + return {drop: true}; + } + + // Use the target's view of the vector clock, but update it + // with the mutation source's value. + op.proposed.whence = op.target.whence; + op.proposed.whence[src] = incomingClock; + + // Absent a fallback, act like last-one-wins. + if (!fallback) { + return {apply: op.proposed}; + } + + // Delegate to specialty logic. + return fallback(op); + }; + + +api.configureTable(`${votrDB}.public.ballots`, { + cas: ["xyzzy"], // TODO: The CAS option needs an "always" setting + map: filterWhence, + merge: vectorMerge(), +}); + +api.configureTable(`${votrDB}.public.candidates`, { + cas: ["xyzzy"], + map: filterWhence, + merge: vectorMerge(), +}); + +api.configureTable(`${votrDB}.public.totals`, { + cas: ["xyzzy"], + map: filterWhence, + merge: vectorMerge((op: api.MergeOperation): api.MergeResult => { + // Apply a delta based on before and proposed values. + let a: number = op.proposed.total ?? 0; + let b: number = op.before?.total ?? 0; + let delta = a - b; + if (delta === 0) { + return {drop: true}; + } + + op.proposed.total = op.target.total + delta; + return {apply: op.proposed}; + }), +}) \ No newline at end of file diff --git a/internal/cmd/votr/votr-diagram.png b/internal/cmd/votr/votr-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..cf038aeb3e77c719c01323540ea0cd9add0240ab GIT binary patch literal 199501 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%0A+7U;_8E!ordq`iN#ZIZ+tK!k)2_X9uf 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%0D0d{EsF9SKo{PJ*OU`0Ps4t-`W1j)^K6c> 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∾6EZss68iUtFpSKf#VTv@0y+*1A^merN!oJy`x;*P8>2Tov49egJAja3zJY4urECtC0bDeg@Q|_oQX5T)fJpO7DSCRV|?j(l|&lY+R z%m3K5*Xe+1Ix^w7wXU8iF3gz$p-l9`p84zzZ5ty(5ebmv0)*-_a&w zuAIT>708v;XB4m{DCJj#dd#O)LeCiCAA#tYHZd#?ex9iTvA@7gpjTvE7j#tCAJV~0 zw+^)0cd=cElqvLGCpekjiUVGYPe5Yw)%r`Kj0QYQ9u(jKcJj^%YWd$Ov!jb{85J$9 z6;P=3K*?;oKJi_AEDlGc!J_>KEZ|LVDNc@@!&@y!e8)Xbd1AjsAq$mD0BF1C=ij!- zXT>G3DzueHmqx8t35^Yp^aqokW*WH33DVwtIN(B|QXx`@8-oOQoLuRWac;{iM-8ZH zLR@wRU}Bm=k~vs3v%VofwJctO#CgZzJnsq3rL9F{JF`bhsI}YUX*5MZs#@g2tF-1E z@FfqUN$OMzlZHl;b5i7uW^(vKVm2f0G+nsSL1gG7Zb`Jd%y4z-rVv5REJ83v+)G3S zL9cf){z2glVN+}c24Qr94g2d-jH-%GfMAX-Zr=5q;@zpWm><6sU=EEh&gcf}Y&l;2 zCr>OO*-}bV1XeUx=Ma01Mgu+HD0|ufKy6pd348^}R7Otam{Uh)aBF>FEy901R&IQ* zqp3!9)gS5)p}h|RBm`Zdbgi%h98H;2u);6hs-@Xl`AU;$9hOq>gK^sf9X$W6O%QK! zbi8d`0og4lsZJCfz323D5@oE`G-{rod^vd_&i^Gj*Od|M+bk2NxswJOh54{z;_}fz zukI+*xopE166;wfmcl#B%=T<_usR(pvMGI7QoHn_hC7GU-T-%CWdx@^}$gjm7G z1~sE<`1CQn-F(_bQA28-S>ZL_jNsLc#tb<=-!o>-ZT{pJHwSB4!l(v}56k$O70nw| zALjba_K<>0zjdo!gE5gRLur65-n7Bmyq`|~k4B>`H>5jtE48kC-bL#ro|CObEF3>Zt|`l=&X@WdKloFAGa z4)B~n(eaft`b>^=WcjR>}7 z{04KD)PesP9YZQ`JQDmq7Fe;w3I2HslE^^rAJ?IH{|Bvr#w4(%Gj~uEiB5@1P20=$ z0`>BRmT{0U>)%1qEs|4nD6ADk+5MlF#nw+ANFNe|HIH)TAXHV;+(B6KCX=sU#C78A z9THJcGa8x&i&!hTI=#eVEHqZez(j8gb_<=P{`~o}x<>pBt`#5C2N|z54IB}wR!87+8-oEO-ySD) zt^bI4h&4jtH}F(PA*st|TnYEJoWAe4RO3l*~r?ISbEq?y~8w)RwuWMp5wwDf1h zbsA!S^6!f2o>OONjRCj4Fkz!9#$VeH&`FA3+C#qssI9Obw|_7(Bf-r!K&M2GLV9U0 za+pD^!%HiOaONA@rOW0QV09UBh|mC8D9v(UE_bClcn5GEzP_TNFF}g?uVLo$&5^M$ z@UhdRf_c?6vp*t85#LaUDDFCg5*a=GM3@GhFrQ{x?l=^l&EYY`;@Z``YXzSo%IZtZ zsOzphvM9EGWfza8bq-PE^vB?u-%^fKLl(QH*E+&h3ZSG;^c}HgUN&GF!}n~|%v=NG z^V^_-0Zkd?_6yQsbmPk_X64$FYJcFKLgTkCka>b&8T?3OjPlWPgkS{R6w0SxSNzYG;+S-!@d()iB} z1b&tFi`D6rkQ>Bu`uMq8n{sjPwLfWl?rwl-H>k&wQrU%r%?!D?!Dh|*v55L%Rz#kB`U4-`+dAx}lNl)6KM %A@cX@ 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 0 { + ctx.Go(func() error { + select { + case <-ctx.Stopping(): + // Do nothing. + case <-time.After(cfg.StopAfter): + ctx.Stop(cfg.DrainDelay) + } + return nil + }) + } + + // Run the requested number of workers. + log.Infof("inserting with %d workers across %d candidates", cfg.Workers, cfg.Candidates) + if cfg.WorkerDelay > 0 { + log.Infof("theoretical max regional ballots per reporting interval: %d", + int64(cfg.Workers)*int64(cfg.BallotBatch)* + cfg.ReportInterval.Nanoseconds()/cfg.WorkerDelay.Nanoseconds()) + log.Info("low performance may indicate contention due to too few candidates") + } + + // We want to run the servers with their own lifecycle in + // order to allow in-flight mutations a chance to drain. + svrStopper := stopper.WithContext(context.Background()) + defer svrStopper.Stop(0) + + // Allow a limit on the number of ballots to be set. + if cfg.MaxBallots > 0 { + cfg.remaining.Store(int64(cfg.MaxBallots)) + ctx.Go(func() error { + // Wait for all ballots to be inserted. + for cfg.remaining.Load() > 0 { + select { + case <-ctx.Stopping(): + return nil + case <-time.After(time.Second): + } + } + log.Infof("hit maximum number of ballots, waiting for replication") + + // Loop until we see the right number of ballots in the + // target databases. + top: + for { + select { + case <-ctx.Stopping(): + return nil + case <-time.After(time.Second): + } + + schema: + for _, s := range cfg.schemas { + total, err := s.sumTotal(ctx) + if err != nil { + return err + } + if total < cfg.MaxBallots { + // Waiting for replication. + continue top + } else if total == cfg.MaxBallots { + // Success! + continue schema + } else { + // Over-replication or other error. + return errors.Errorf( + "region %s had %d ballots, but expecting at most %d", + s.region, total, cfg.MaxBallots) + } + } + + log.Infof("%d ballots inserted in all regions", cfg.MaxBallots) + // Fast stop, since replication is done. + ctx.Stop(10 * time.Millisecond) + svrStopper.Stop(10 * time.Millisecond) + return nil + } + }) + } else { + cfg.remaining.Store(math.MaxInt64) + } + + schemas := make([]*schema, 0, len(cfg.Connect)) + for idx := range cfg.Connect { + sch, err := worker(ctx, cfg, region(idx)) + if err != nil { + return err + } + schemas = append(schemas, sch) + } + cfg.schemas = schemas // Make available for post-hoc testing. + + // Create a connection between the hub and each of the + // spokes. We could offer additional topologies, such as a + // uni- or bi-directional ring or a fully-connected graph. + hubSch := schemas[0] + schemas = schemas[1:] + + for idx, leafSch := range schemas { + toLeaf, err := startServer(svrStopper, cfg, hubSch, leafSch) + if err != nil { + return errors.Wrapf(err, "starting server %s -> %s", hubSch.region, leafSch.region) + } + + // Each leaf needs its own server that will write + // updates to the hub until such time as cdc-sink can + // support multiple different changefeeds writing to the + // same destination schema. See + // https://github.com/cockroachdb/cockroach/issues/112880 + // for a way that this might become trivially easy. + toHub, err := startServer(svrStopper, cfg, leafSch, hubSch) + if err != nil { + return errors.Wrapf(err, "starting server %s -> %s", leafSch.region, hubSch.region) + } + + var toLeafJob int64 + if toLeafJob, err = createFeed(ctx, hubSch, toLeaf); err != nil { + return errors.Wrapf(err, "feed %s -> %s", hubSch.region, toLeaf) + } + svrStopper.Defer(func() { + if err := cancelFeed(stopper.Background(), hubSch, toLeafJob); err != nil { + log.WithError(err).Warnf("could not cancel changefeed job %d in %d", + toLeafJob, hubSch.region) + } + }) + + var toHubJob int64 + if toHubJob, err = createFeed(ctx, schemas[idx], toHub); err != nil { + return errors.Wrapf(err, "feed %s -> %s", hubSch.region, toHub) + } + svrStopper.Defer(func() { + if err := cancelFeed(stopper.Background(), schemas[idx], toHubJob); err != nil { + log.WithError(err).Warnf("could not cancel changefeed job %d in %d", + toHubJob, schemas[idx].region) + } + }) + } + + // Wait for the workers to be shut down. + if workerErr := ctx.Wait(); workerErr != nil { + return workerErr + } + + // This won't execute if the servers were already stopped by + // reaching the maximum number of ballots. + svrStopper.Go(func() error { + log.Infof("workload stopped, pausing for %s to drain", cfg.DrainDelay) + time.Sleep(cfg.DrainDelay) + svrStopper.Stop(5 * time.Second) + return nil + }) + return svrStopper.Wait() +} + +// cancelFeed cancels the changefeed job. +func cancelFeed(ctx *stopper.Context, in *schema, job int64) error { + return retry.Retry(ctx, func(ctx context.Context) error { + // We need to open a one-shot connection since the worker pool + // already be closed at this point. + conn, err := pgx.Connect(ctx, in.db.ConnectionString) + if err != nil { + return errors.Wrapf(err, "could not connect to %d to cancel job %d", in.region, job) + } + defer func() { _ = conn.Close(ctx) }() + _, err = conn.Exec(ctx, "CANCEL JOB $1", job) + if err == nil { + log.Infof("cleaned up changefeed %d in %d", job, in.region) + } + return err + }) +} + +// createFeed creates a changefeed from the given source to the given +// server. It returns the job id of the changefeed. +func createFeed(ctx *stopper.Context, from *schema, to *url.URL) (int64, error) { + // Set the cluster settings once, if we need to. + var enabled bool + if err := retry.Retry(ctx, func(ctx context.Context) error { + return from.db.QueryRowContext(ctx, "SHOW CLUSTER SETTING kv.rangefeed.enabled").Scan(&enabled) + }); err != nil { + return 0, errors.Wrap(err, "could not check cluster setting") + } + if !enabled { + if err := retry.Retry(ctx, func(ctx context.Context) error { + _, err := from.db.ExecContext(ctx, "SET CLUSTER SETTING kv.rangefeed.enabled = true") + return errors.Wrapf(err, "%s: could not enable rangefeeds", from.region) + }); err != nil { + return 0, err + } + } + + var hasLicense bool + if err := from.db.QueryRowContext(ctx, + "SELECT (SELECT * FROM [SHOW CLUSTER SETTING enterprise.license]) <> ''", + ).Scan(&hasLicense); err != nil { + return 0, errors.Wrapf(err, "%s: could not query for presense of license", from.region) + } + if !hasLicense { + lic, hasLic := os.LookupEnv("COCKROACH_DEV_LICENSE") + org, hasOrg := os.LookupEnv("COCKROACH_DEV_ORGANIZATION") + if hasLic && hasOrg { + if err := retry.Retry(ctx, func(ctx context.Context) error { + _, err := from.db.ExecContext(ctx, "SET CLUSTER SETTING enterprise.license = $1", lic) + return errors.Wrapf(err, "%s: could not set cluster license", from.region) + }); err != nil { + return 0, err + } + + if err := retry.Retry(ctx, func(ctx context.Context) error { + _, err := from.db.ExecContext(ctx, "SET CLUSTER SETTING cluster.organization = $1", org) + return errors.Wrapf(err, "%s: could not set cluster organization", from.region) + }); err != nil { + return 0, err + } + } else { + return 0, errors.New("changefeeds require an enterprise license; use 'cockroach demo' command") + } + } + + q := fmt.Sprintf(`CREATE CHANGEFEED FOR TABLE %s, %s, %s INTO '%s' +WITH diff, updated, resolved='1s', min_checkpoint_frequency='1s', +webhook_sink_config='{"Flush":{"Messages":1000,"Frequency":"1s"}}'`, + from.ballots, from.candidates, from.totals, to.String(), + ) + + var job int64 + if err := retry.Retry(ctx, func(ctx context.Context) error { + err := from.db.QueryRowContext(ctx, q).Scan(&job) + return errors.Wrapf(err, "%s: could not create changefeed", from.region) + }); err != nil { + return 0, err + } + + log.Infof("created feed from %s into %s", from.region, to) + return job, nil +} + +func openSchema(ctx *stopper.Context, cfg *config, r region) (*schema, error) { + conn := cfg.Connect[r] + + pool, err := stdpool.OpenPgxAsTarget(ctx, conn, + stdpool.WithConnectionLifetime(5*time.Minute), + stdpool.WithPoolSize(cfg.Workers+1), + stdpool.WithTransactionTimeout(time.Minute), + ) + if err != nil { + return nil, errors.Wrapf(err, "could not connect to %s database", r) + } + + return newSchema((*types.SourcePool)(pool), cfg.Enclosing, r), nil +} + +//go:embed script/* +var scriptFS embed.FS + +// startServer runs an instance of cdc-sink which will feed into +// the given destination. It returns the base URL for delivering +// messages to the sink. +func startServer(ctx *stopper.Context, cfg *config, src, dest *schema) (*url.URL, error) { + targetConn := cfg.Connect[dest.region] + + stagingName := ident.New(fmt.Sprintf("cdc_sink_%d_%s_%s", os.Getpid(), src.region, dest.region)) + stagingSchema := ident.MustSchema(dest.enclosing, stagingName) + + if _, err := dest.db.ExecContext(ctx, fmt.Sprintf( + `CREATE SCHEMA IF NOT EXISTS %s`, stagingSchema)); err != nil { + return nil, errors.Wrap(err, dest.region.String()) + } + + srvConfig := &server.Config{ + CDC: cdc.Config{ + BaseConfig: logical.BaseConfig{ + BackfillWindow: 0, + ForeignKeysEnabled: true, + RetryDelay: 10 * time.Second, + ScriptConfig: script.Config{ + FS: &subfs.SubstitutingFS{ + FS: scriptFS, + Replacer: strings.NewReplacer( + "DESTINATION_DB", fmt.Sprintf(`"%s_%s"`, + cfg.Enclosing.Raw(), dest.region.String()), + "DESTINATION_INDEX", dest.region.String(), + "SOURCE_INDEX", src.region.String(), + ), + }, + MainPath: "/script/votr.ts", + }, + StagingConn: targetConn, + StagingSchema: stagingSchema, + TargetConn: targetConn, + }, + FlushEveryTimestamp: true, // Needed for delta behavior. + MetaTableName: ident.New("resolved_timestamps"), + RetireOffset: 24 * time.Hour, // For debugging. + }, + BindAddr: fmt.Sprintf("%s:0", cfg.SinkHost), + DisableAuth: true, + GenerateSelfSigned: true, + } + if err := srvConfig.Preflight(); err != nil { + return nil, errors.Wrap(err, dest.region.String()) + } + srv, err := server.NewServer(ctx, srvConfig) + if err != nil { + return nil, errors.Wrap(err, dest.region.String()) + } + _, port, err := net.SplitHostPort(srv.GetAddr().String()) + if err != nil { + return nil, errors.Wrap(err, dest.region.String()) + } + + sink := &url.URL{ + Scheme: "webhook-https", + Host: fmt.Sprintf("%s:%s", cfg.SinkHost, port), + Path: ident.Join(dest.candidates.Schema(), ident.Raw, '/'), + RawQuery: "insecure_tls_skip_verify=true", + } + + return sink, nil +} + +// worker will launch a number of goroutines into the context to insert +// ballots and to verify the consistency of the dataset. +func worker(ctx *stopper.Context, cfg *config, r region) (*schema, error) { + sch, err := openSchema(ctx, cfg, r) + if err != nil { + return nil, err + } + + if err := sch.ensureCandidates(ctx, cfg.Candidates); err != nil { + return nil, errors.Wrapf(err, "%s: could not create candidate entries", r) + } + + warnings, err := sch.validate(ctx, false) + if err != nil { + return nil, errors.Wrapf(err, "%s: could not perform initial validation", r) + } + if len(warnings) > 0 { + log.WithField( + "inconsistent", warnings, + ).Warnf("%s: workload starting from inconsistent state", r) + if cfg.ErrInconsistent { + return nil, errors.Errorf("exiting due to inconsistency in %s", r) + } + } + + // Don't run the workload on the hub if we're in a hub-and-spoke + // model. The ON UPDATE clause in the table definitions isn't able + // to refer to the existing value in the column. Thus, we cannot + // transparently patch the vector clock without making the workload + // itself aware of the vector clock column. + // + // In a two-region setup, we only need to be able to prevent a + // mutation from cycling between the regions, so the vector clock is + // an over-complication. + if len(cfg.Connect) == 2 || r > 0 { + ballotsToReport := &atomic.Int64{} + for i := 0; i < cfg.Workers; i++ { + ctx.Go(func() error { + // Stagger start by a random amount. + sleep := time.Duration(rand.Int63n(cfg.WorkerDelay.Nanoseconds())) + + for { + select { + case <-time.After(sleep): + sleep = cfg.WorkerDelay + case <-ctx.Stopping(): + return nil + } + + batchSize := int64(cfg.BallotBatch) + remaining := cfg.remaining.Add(-batchSize) + batchSize + if remaining <= 0 { + return nil + } + if remaining < batchSize { + batchSize = remaining + } + + if err := sch.doStuff(ctx, int(batchSize)); err != nil { + return errors.Wrap(err, "could not stuff ballots") + } + ballotsToReport.Add(batchSize) + } + }) + } + + // Print status. + ctx.Go(func() error { + for { + select { + case <-time.After(cfg.ReportInterval): + log.Infof("%s: inserted %d ballots", r, ballotsToReport.Swap(0)) + case <-ctx.Stopping(): + return nil + } + } + }) + } + + // Start a background validation loop. + ctx.Go(func() error { + for { + select { + case <-time.After(cfg.ValidationDelay): + case <-ctx.Stopping(): + return nil + } + + warnings, err := sch.validate(ctx, true) + if err != nil { + return errors.Wrap(err, "could not validate results") + } + if len(warnings) == 0 { + log.Infof("%s: workload is consistent", r) + continue + } + log.WithField( + "inconsistent", warnings, + ).Warnf("%s: workload in inconsistent state", r) + if cfg.ErrInconsistent { + return errors.Errorf("exiting due to inconsistency in %s", r) + } + } + }) + + return sch, nil +} diff --git a/internal/cmd/votr/votr_test.go b/internal/cmd/votr/votr_test.go new file mode 100644 index 000000000..dc471b504 --- /dev/null +++ b/internal/cmd/votr/votr_test.go @@ -0,0 +1,92 @@ +// Copyright 2023 The Cockroach Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// SPDX-License-Identifier: Apache-2.0 + +package votr + +import ( + "fmt" + "testing" + "time" + + "github.com/cockroachdb/cdc-sink/internal/sinktest/base" + "github.com/cockroachdb/cdc-sink/internal/util/stopper" + "github.com/spf13/pflag" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func TestVOTR(t *testing.T) { + if testing.Short() { + t.Skip("long test") + return + } + t.Run("2DC", func(t *testing.T) { + testVOTR(t, 2) + }) + t.Run("hub_spoke", func(t *testing.T) { + testVOTR(t, 4) + }) +} + +func testVOTR(t *testing.T, numDBs int) { + t.Parallel() + a := assert.New(t) + r := require.New(t) + + fixture, err := base.NewFixture(t) + r.NoError(err) + ctx := fixture.Context + + checkSupported(t, fixture.SourcePool) + + // Use all default values, except for the connect strings. + flags := pflag.NewFlagSet("test", pflag.ContinueOnError) + cfg := &config{} + cfg.Bind(flags) + r.NoError(flags.Parse(nil)) + cfg.Connect = make([]string, numDBs) + for i := range cfg.Connect { + cfg.Connect[i] = fixture.SourcePool.ConnectionString + } + cfg.DrainDelay = 30 * time.Second + cfg.Enclosing, _ = fixture.TargetSchema.Split() + cfg.ErrInconsistent = true + cfg.MaxBallots = 5_000 + cfg.Workers = 4 + + // Initialize the schema. + initCtx := stopper.WithContext(ctx) + r.NoError(doInit(initCtx, cfg)) + initCtx.Stop(100 * time.Millisecond) + r.NoError(initCtx.Wait()) + + // doRun will exit on its own due to cfg.StopAfter. This function + // will return an error if any inconsistencies were seen. + runCtx := stopper.WithContext(ctx) + r.NoError(doRun(runCtx, cfg)) + r.NoError(runCtx.Wait()) + + // Final validation of totals. We know that ballots and totals are + // consistent within a destination schema, but we want to check that + // the totals are consistent across the various SQL databases. + for idx, s := range cfg.schemas { + var total int + r.NoError(fixture.SourcePool.QueryRowContext(ctx, + fmt.Sprintf("SELECT sum(total) FROM %s", s.totals), + ).Scan(&total)) + a.Equalf(cfg.MaxBallots, total, "idx %d", idx) + } +} diff --git a/internal/source/server/provider.go b/internal/source/server/provider.go index 986c2b594..f49a4c9b1 100644 --- a/internal/source/server/provider.go +++ b/internal/source/server/provider.go @@ -160,7 +160,7 @@ func ProvideServer( return nil }) - return &Server{auth, diags, mux} + return &Server{listener.Addr(), auth, diags, mux} } // ProvideTLSConfig is called by Wire to load the certificate and key diff --git a/internal/source/server/server.go b/internal/source/server/server.go index b1793c83b..1547c35f6 100644 --- a/internal/source/server/server.go +++ b/internal/source/server/server.go @@ -21,6 +21,7 @@ package server // This file contains code repackaged from main.go import ( + "net" "net/http" "github.com/cockroachdb/cdc-sink/internal/types" @@ -31,6 +32,7 @@ import ( // A Server receives incoming CockroachDB changefeed messages and // applies them to a target cluster. type Server struct { + addr net.Addr auth types.Authenticator diags *diag.Diagnostics mux *http.ServeMux @@ -42,6 +44,11 @@ var ( _ stdlogical.HasServeMux = (*Server)(nil) ) +// GetAddr returns the address that the server is attached to. +func (s *Server) GetAddr() net.Addr { + return s.addr +} + // GetAuthenticator implements [stdlogical.HasAuthenticator]. func (s *Server) GetAuthenticator() types.Authenticator { return s.auth diff --git a/internal/target/apply/apply.go b/internal/target/apply/apply.go index fce7eb158..7767a89f5 100644 --- a/internal/target/apply/apply.go +++ b/internal/target/apply/apply.go @@ -180,7 +180,7 @@ func (a *apply) Apply(ctx context.Context, tx types.TargetQuerier, muts []types. if err != nil { a.errors.Inc() } - return err + return errors.Wrap(err, a.target.Raw()) } a.mu.RLock() @@ -535,7 +535,15 @@ func (a *apply) upsertBagsLocked( // Copy the conflicting data from the table into the Conflict. for idx, col := range a.mu.templates.Columns { - c.Target.Put(col.Name, blockingData[idx]) + v := blockingData[idx] + // Allow runtime type fixups + if col.Parse != nil { + v, err = col.Parse(v) + if err != nil { + return errors.Wrapf(err, "could not invoke type helper on column %s", col.Name) + } + } + c.Target.Put(col.Name, v) } // Supply before data if we received it from upstream. diff --git a/internal/target/schemawatch/parse_helpers.go b/internal/target/schemawatch/parse_helpers.go index 8ab74f379..39272eeda 100644 --- a/internal/target/schemawatch/parse_helpers.go +++ b/internal/target/schemawatch/parse_helpers.go @@ -121,10 +121,26 @@ func coerceJSON(a any) (any, error) { return json.Marshal(a) } +// reifyJSON converts an incoming byte array to a reified type. +func reifyJSON(v any) (any, error) { + if buf, ok := v.([]byte); ok { + if err := json.Unmarshal(buf, &v); err != nil { + return nil, err + } + } + return v, nil +} + func parseHelper(product types.Product, typeName string) func(any) (any, error) { switch product { case types.ProductCockroachDB, types.ProductPostgreSQL: - // Just pass through, since we have similar representations. + switch typeName { + case "JSON", "JSONB": + // Ensure that data bound for a JSON column is reified. + return reifyJSON + default: + return nil + } case types.ProductMariaDB, types.ProductMySQL: // Coerce types to the what the mysql driver expects. switch typeName { diff --git a/main.go b/main.go index 865f290b0..ed5438511 100644 --- a/main.go +++ b/main.go @@ -37,6 +37,7 @@ import ( "github.com/cockroachdb/cdc-sink/internal/cmd/preflight" "github.com/cockroachdb/cdc-sink/internal/cmd/start" "github.com/cockroachdb/cdc-sink/internal/cmd/version" + "github.com/cockroachdb/cdc-sink/internal/cmd/votr" "github.com/cockroachdb/cdc-sink/internal/script" "github.com/cockroachdb/cdc-sink/internal/util/logfmt" "github.com/cockroachdb/cdc-sink/internal/util/stopper" @@ -115,6 +116,7 @@ func main() { script.HelpCommand(), start.Command(), version.Command(), + votr.Command(), ) stop := stopper.WithContext(context.Background())