CREATE DATABASE "meetup";
USE "meetup";
ALTER DATABASE "meetup" SET PRIMARY REGION "us-east1";
ALTER DATABASE "meetup" ADD REGION "us-east2";
ALTER DATABASE "meetup" ADD REGION "us-west2";
ALTER DATABASE "meetup" ADD REGION "eu-west2";
ALTER DATABASE "meetup" ADD REGION "eu-west3";
ALTER DATABASE "meetup" ADD REGION "eu-north1";
ALTER DATABASE "meetup" SURVIVE REGION FAILURE;
SET enable_super_regions = 'on';
ALTER DATABASE "meetup" ADD SUPER REGION us VALUES "us-east1", "us-east2", "us-west2";
ALTER DATABASE "meetup" ADD SUPER REGION eu VALUES "eu-west2", "eu-west3", "eu-north1";
CREATE TABLE "product" (
"id" UUID PRIMARY KEY DEFAULT gen_random_uuid(),
"name" STRING NOT NULL,
"market" STRING NOT NULL,
"crdb_region" CRDB_INTERNAL_REGION AS (
CASE
WHEN "market" IN ('ie', 'uk') THEN 'eu-west2'
WHEN "market" IN ('de', 'fr') THEN 'eu-west3'
WHEN "market" IN ('no', 'se') THEN 'eu-north1'
WHEN "market" IN ('us') THEN 'us-east1'
ELSE 'eu-west2'
END
) STORED,
"amount" DECIMAL NOT NULL,
"currency" STRING NOT NULL,
INDEX ("market")
) LOCALITY REGIONAL BY ROW;
INSERT INTO product ("id", "name", "market", "amount", "currency") VALUES
('b7eaba08-2d20-4109-9a39-aeba20c486a4', 'Americano', 'uk', 3.80, 'gbp'),
('279d936b-2f68-445d-9301-cd062d283859', 'Latte', 'uk', 4.15, 'gbp'),
('2586aa2c-84e0-4f28-b299-732c2314aa91', 'Cappuccino', 'uk', 4.15, 'gbp'),
('fd16dd63-d9ea-418f-8353-a891287a7be0', 'Americano', 'ie', 4.40, 'gbp'),
('7ad66c52-6a6a-4f9f-a590-4b5ede1c82f1', 'Latte', 'ie', 4.80, 'gbp'),
('1a8b5e94-220e-411a-8f26-fe43dd6485f1', 'Cappuccino', 'ie', 4.80, 'gbp'),
('2f22da46-d983-4878-8ad2-a6e6ff7e8f39', 'Americano', 'de', 4.40, 'eur'),
('a5ece2cb-6b76-46fd-a11b-a53dcf2f0669', 'Latte', 'de', 4.80, 'eur'),
('de17b8db-a6dc-48a3-a33b-1272365c7226', 'Cappuccino', 'de', 4.80, 'eur'),
('a63a07fd-1f7a-41b7-bcaa-67c0118cd3f2', 'Américain', 'fr', 4.40, 'eur'),
('279c0aea-21a0-48dd-8197-0bbf0f7defd0', 'Latté', 'fr', 4.80, 'eur'),
('29bc6a72-35b8-456a-8e92-de5899bb8c0a', 'Cappuccino', 'fr', 4.80, 'eur'),
('6acf78f8-e6ed-4a02-a899-9978f958f513', 'Américain', 'no', 51.41, 'eur'),
('9b52c9ef-76ef-42d2-8302-0a74a0dad1c7', 'Latté', 'no', 56.15, 'eur'),
('a7b54333-dc25-4c01-bfb0-d93205af30a9', 'Cappuccino', 'no', 56.15, 'eur'),
('fe0b83b5-4573-439b-87ab-1193f12e01fb', 'Américain', 'se', 52.27, 'sek'),
('6214d841-9a52-4f06-8085-16cf076704e6', 'Latté', 'se', 57.09, 'sek'),
('f04f5fa9-88ba-4a52-b0e7-f77bb516f15a', 'Cappuccino', 'se', 57.09, 'sek'),
('b6f2327f-80c3-44ce-9c3c-d0c04736c90f', 'Americano', 'us', 4.80, 'usd'),
('0cc06e87-713c-4edd-af0b-627be0fb6843', 'Latte', 'us', 5.24, 'usd'),
('c880c792-32df-43d7-9b4d-d5745c842f4b', 'Cappuccino', 'us', 5.24, 'usd');
region | replicas | range_ids
------------+-------------------+----------------
us-east1 | {2,3,5,7,9,11,12} | {64}
us-east2 | {2,3,5,7,9,11,12} | {64}
us-west2 | {2,3,5,7,9,11,12} | {64}
eu-west2 | {2,3,5,7,9,11,12} | {64}
eu-west3 | {2,3,5,7,9,11,12} | {64}
eu-north1 | {2,3,5,7,9,11,12} | {64}
eu-west2 | {7,8,9,11,12} | {65,79,77,67}
eu-west3 | {7,8,9,11,12} | {65,79,77,67}
eu-north1 | {7,8,9,11,12} | {65,79,77,67}
us-east1 | {1,2,3,5,7,9,12} | {66}
us-east2 | {1,2,3,5,7,9,12} | {66}
us-west2 | {1,2,3,5,7,9,12} | {66}
eu-west2 | {1,2,3,5,7,9,12} | {66}
eu-west3 | {1,2,3,5,7,9,12} | {66}
eu-north1 | {1,2,3,5,7,9,12} | {66}
us-east1 | {2,4,5,7,8,9,11} | {68}
us-east2 | {2,4,5,7,8,9,11} | {68}
us-west2 | {2,4,5,7,8,9,11} | {68}
eu-west2 | {2,4,5,7,8,9,11} | {68}
eu-west3 | {2,4,5,7,8,9,11} | {68}
eu-north1 | {2,4,5,7,8,9,11} | {68}
eu-west2 | {7,9,10,11,12} | {69,81}
eu-west3 | {7,9,10,11,12} | {69,81}
eu-north1 | {7,9,10,11,12} | {69,81}
us-east1 | {2,3,4,5,8,9,11} | {70}
us-east2 | {2,3,4,5,8,9,11} | {70}
us-west2 | {2,3,4,5,8,9,11} | {70}
eu-west2 | {2,3,4,5,8,9,11} | {70}
eu-west3 | {2,3,4,5,8,9,11} | {70}
eu-north1 | {2,3,4,5,8,9,11} | {70}
us-east1 | {1,2,3,4,5} | {71,85,83,73}
us-east2 | {1,2,3,4,5} | {71,85,83,73}
us-west2 | {1,2,3,4,5} | {71,85,83,73}
us-east1 | {1,2,3,5,8,10,11} | {72}
us-east2 | {1,2,3,5,8,10,11} | {72}
us-west2 | {1,2,3,5,8,10,11} | {72}
eu-west2 | {1,2,3,5,8,10,11} | {72}
eu-west3 | {1,2,3,5,8,10,11} | {72}
eu-north1 | {1,2,3,5,8,10,11} | {72}
us-east1 | {1,2,3,5,7,10,12} | {74}
us-east2 | {1,2,3,5,7,10,12} | {74}
us-west2 | {1,2,3,5,7,10,12} | {74}
eu-west2 | {1,2,3,5,7,10,12} | {74}
eu-west3 | {1,2,3,5,7,10,12} | {74}
eu-north1 | {1,2,3,5,7,10,12} | {74}
us-east1 | {1,2,3,5,6} | {75,87}
us-east2 | {1,2,3,5,6} | {75,87}
us-west2 | {1,2,3,5,6} | {75,87}
us-east1 | {2,3,5,7,9,10,11} | {76}
us-east2 | {2,3,5,7,9,10,11} | {76}
us-west2 | {2,3,5,7,9,10,11} | {76}
eu-west2 | {2,3,5,7,9,10,11} | {76}
eu-west3 | {2,3,5,7,9,10,11} | {76}
eu-north1 | {2,3,5,7,9,10,11} | {76}
us-east1 | {2,3,5,6,7,9,11} | {78,84}
us-east2 | {2,3,5,6,7,9,11} | {78,84}
us-west2 | {2,3,5,6,7,9,11} | {78,84}
eu-west2 | {2,3,5,6,7,9,11} | {78,84}
eu-west3 | {2,3,5,6,7,9,11} | {78,84}
eu-north1 | {2,3,5,6,7,9,11} | {78,84}
us-east1 | {1,2,3,6,8,10,11} | {80}
us-east2 | {1,2,3,6,8,10,11} | {80}
us-west2 | {1,2,3,6,8,10,11} | {80}
eu-west2 | {1,2,3,6,8,10,11} | {80}
eu-west3 | {1,2,3,6,8,10,11} | {80}
eu-north1 | {1,2,3,6,8,10,11} | {80}
us-east1 | {2,3,4,5,7,9,11} | {82}
us-east2 | {2,3,4,5,7,9,11} | {82}
us-west2 | {2,3,4,5,7,9,11} | {82}
eu-west2 | {2,3,4,5,7,9,11} | {82}
eu-west3 | {2,3,4,5,7,9,11} | {82}
eu-north1 | {2,3,4,5,7,9,11} | {82}
us-east1 | {1,2,3,5,8,10,12} | {86}
us-east2 | {1,2,3,5,8,10,12} | {86}
us-west2 | {1,2,3,5,8,10,12} | {86}
eu-west2 | {1,2,3,5,8,10,12} | {86}
eu-west3 | {1,2,3,5,8,10,12} | {86}
eu-north1 | {1,2,3,5,8,10,12} | {86}
us-east1 | {2,3,5,6,7,10,12} | {88}
us-east2 | {2,3,5,6,7,10,12} | {88}
us-west2 | {2,3,5,6,7,10,12} | {88}
eu-west2 | {2,3,5,6,7,10,12} | {88}
eu-west3 | {2,3,5,6,7,10,12} | {88}
eu-north1 | {2,3,5,6,7,10,12} | {88}
Epic: CRDB-30635
Problem
Creating a multi-region cluster with super regions does not appear to replicate data correctly.
To Reproduce
Create the cluster:
Create the database and populate a table:
Show replicas by region and az:
Show replicas and ranges by region (all):
Show replicas and ranges by region (one row):
Show replicas and ranges by region (another row):
Expected behavior
I would expect the query to show replicas and ranges by region (all) to show no overlap of replicas between regions.
Environment:
Jira issue: CRDB-29416