Skip to content

Commit c803a8c

Browse files
committed
Adding other presentation materials.
new file: presentation_docs/2012-10-23_Prague/Prague_Presentation_20121024.odp new file: presentation_docs/2012-10-23_Prague/Prague_Presentation_20121024.pdf new file: presentation_docs/2013-07-09_UK/MiltonKeynes_Presentation_final.odp new file: presentation_docs/2013-07-09_UK/MiltonKeynes_Presentation_final.pdf new file: presentation_docs/2013-09-16_Chicago/Chicago_Presentation_20130912.odp new file: presentation_docs/2013-09-16_Chicago/Chicago_Presentation_20130912.pdf new file: presentation_docs/2013-09-16_Chicago/demo.txt new file: presentation_docs/2013-09-16_Chicago/pgxc_ctl.conf new file: presentation_docs/2014-05-19_Ottawa_PGCon_ClusterSummit-XC-Day/Demonstration/demo.txt new file: presentation_docs/2014-05-19_Ottawa_PGCon_ClusterSummit-XC-Day/Demonstration/pgxc_ctl.conf.txt new file: presentation_docs/2014-05-19_Ottawa_PGCon_ClusterSummit-XC-Day/XC-upto_1_2.odp new file: presentation_docs/2014-05-19_Ottawa_PGCon_ClusterSummit-XC-Day/XC-upto_1_2.pdf new file: presentation_docs/2014-05-19_Ottawa_PGCon_ClusterSummit-XC-Day/XC_Roadmap.odp new file: presentation_docs/2014-05-19_Ottawa_PGCon_ClusterSummit-XC-Day/XC_Roadmap.pdf new file: presentation_docs/2014-12-12_ChinesePUG/PGConfChina_2014_handout.odp new file: presentation_docs/2014-12-12_ChinesePUG/PGConfChina_2014_handout.pdf new file: presentation_docs/2015-04-16_DTCC2015,Beijing,China/Postgres-XL_XC, Scale-out Approach in PostgreSQL.odp new file: presentation_docs/2015-04-16_DTCC2015,Beijing,China/Postgres-XL_XC, Scale-out Approach in PostgreSQL.pdf
1 parent 6a2e0a4 commit c803a8c

18 files changed

+922
-0
lines changed
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
# Create configuration firstle template
2+
prepare pgxc_ctl_demo.ctl
3+
# Let's see how it looks like
4+
vi pgxc_ctl_demo.ctl
5+
# Configuration
6+
show config all
7+
# Deploy binaries
8+
deploy all
9+
# Now initialize everyting: One GTM master, One GTM slave, four GTM proxies,
10+
# four coordinator masters, four coordinator slaves,
11+
# four datanode maasters, four datanode slaves
12+
init all
13+
# Cluster is already running. Stop it and start again
14+
stop all
15+
start all
16+
# See if everything is running
17+
monitor all
18+
# Create default database. Shortcut to select a coordinator involved.
19+
# The result will be propagated to all the other coordinators and
20+
# datanodes automatically.
21+
Createdb koichi
22+
# Psql is a shortcut to select which cordinator to use.
23+
# Now create some table.
24+
Psql
25+
create table t1 (a int);
26+
create table t2 (a int) distribute by replication;
27+
insert into t1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),
28+
(13),(14);
29+
insert into t2 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),
30+
(13),(14);
31+
-- See what data is in each table
32+
select * from t1;
33+
-- ORDER BY will help
34+
select * from t1 order by a;
35+
-- Replicated table
36+
select * from t2;
37+
-- See what rows are stored for a distributed table in each datanode.
38+
execute direct on (datanode1) 'select * from t1';
39+
execute direct on (datanode2) 'select * from t1';
40+
execute direct on (datanode3) 'select * from t1';
41+
execute direct on (datanode4) 'select * from t1';
42+
-- See what rows are stored for a replicated table in each datanode.
43+
execute direct on (datanode1) 'select * from t2';
44+
execute direct on (datanode2) 'select * from t2';
45+
execute direct on (datanode3) 'select * from t2';
46+
execute direct on (datanode4) 'select * from t2';
47+
\q
48+
# Okay, now GTM failover, first, kill it.
49+
kill gtm master
50+
# Then gtm slave will work as the master.
51+
failover gtm
52+
# Each gtm_proxy should know where the new master is.
53+
reconnect gtm_proxy all
54+
# Let's see that still cluster is alive.
55+
Psql
56+
select * from t1 order by a;
57+
select * from t2;
58+
-- See what rows are stored in each datanode.
59+
execute direct on (datanode1) 'select * from t1';
60+
execute direct on (datanode2) 'select * from t1';
61+
execute direct on (datanode3) 'select * from t1';
62+
execute direct on (datanode4) 'select * from t1';
63+
\q
64+
# Next, let's kill one of the datanodes
65+
kill datanode master datanode2
66+
# We need to failover the slave as the master.
67+
failover datanode datanode2
68+
# Let's see that everything is okay.
69+
Psql
70+
select * from t1 order by a;
71+
select * from t2;
72+
-- See what rows are stored in each datanode.
73+
execute direct on (datanode1) 'select * from t1';
74+
execute direct on (datanode2) 'select * from t1';
75+
execute direct on (datanode3) 'select * from t1';
76+
execute direct on (datanode4) 'select * from t1';
77+
\q
78+
# Next, we will add a datanode to the server "node10"
79+
# We need to deploy pgxc binary to this server in advance.
80+
deploy node10
81+
# Then add the datanode master.
82+
# Please note that we can add the slave in a similar manner.
83+
add datanode master datanode5 node10 20008 /home/koichi/pgxc/nodes/dn_master
84+
# Let's see what's going on. Table distribution is not affected.
85+
Psql
86+
select * from t1 order by a;
87+
select * from t2;
88+
execute direct on (datanode1) 'select * from t1';
89+
execute direct on (datanode2) 'select * from t1';
90+
execute direct on (datanode3) 'select * from t1';
91+
execute direct on (datanode4) 'select * from t1';
92+
execute direct on (datanode5) 'select * from t1';
93+
-- Then redistribute tables with new datanode.
94+
alter table t1 add node (datanode5);
95+
alter table t2 add node (datanode5);
96+
-- See the new datanode has some portion of the data.
97+
execute direct on (datanode1) 'select * from t1';
98+
execute direct on (datanode2) 'select * from t1';
99+
execute direct on (datanode3) 'select * from t1';
100+
execute direct on (datanode4) 'select * from t1';
101+
execute direct on (datanode5) 'select * from t1';
102+
-- See the new datanode has everything of the replicated table.
103+
execute direct on (datanode1) 'select * from t2';
104+
execute direct on (datanode2) 'select * from t2';
105+
execute direct on (datanode3) 'select * from t2';
106+
execute direct on (datanode4) 'select * from t2';
107+
execute direct on (datanode5) 'select * from t2';
108+
-- Next, prepare for revmoving the datanode again.
109+
-- We need to redistribute tables to exclude removed datanode
110+
alter table t1 delete node (datanode5);
111+
alter table t2 delete node (datanode5);
112+
-- See that datanode5 does not contain any rows. Ready to be removed.
113+
execute direct on (datanode1) 'select * from t1';
114+
execute direct on (datanode2) 'select * from t1';
115+
execute direct on (datanode3) 'select * from t1';
116+
execute direct on (datanode4) 'select * from t1';
117+
execute direct on (datanode5) 'select * from t1';
118+
-- See that datanode5 does not contain any rows of the replicated table either.
119+
execute direct on (datanode1) 'select * from t2';
120+
execute direct on (datanode2) 'select * from t2';
121+
execute direct on (datanode3) 'select * from t2';
122+
execute direct on (datanode4) 'select * from t2';
123+
execute direct on (datanode5) 'select * from t2';
124+
\q
125+
## Then remove the datanode.
126+
remove datanode master datanode5
127+
# See what is going on.
128+
Psql
129+
select * from t1 order by a;
130+
select * from t2;
131+
execute direct on (datanode1) 'select * from t1';
132+
execute direct on (datanode2) 'select * from t1';
133+
execute direct on (datanode3) 'select * from t1';
134+
execute direct on (datanode4) 'select * from t1';
135+
-- Now datanode5 is not a part of the cluster.
136+
execute direct on (datanode5) 'select * from t1';
137+
-- See the same in the replicated table.
138+
execute direct on (datanode1) 'select * from t2';
139+
execute direct on (datanode2) 'select * from t2';
140+
execute direct on (datanode3) 'select * from t2';
141+
execute direct on (datanode4) 'select * from t2';
142+
-- Then removed 'datanode5'
143+
execute direct on (datanode5) 'select * from t2';
144+
\q

0 commit comments

Comments
 (0)