@@ -64,7 +64,7 @@ const (
64
64
PgPort = 5432
65
65
)
66
66
67
- func dtmd (bin string , datadir string , servers []string , id int , wg * sync.WaitGroup ) {
67
+ func arbiter (bin string , datadir string , servers []string , id int , wg * sync.WaitGroup ) {
68
68
argv := []string {
69
69
bin ,
70
70
"-d" , datadir ,
@@ -75,7 +75,7 @@ func dtmd(bin string, datadir string, servers []string, id int, wg *sync.WaitGro
75
75
}
76
76
log .Println (argv )
77
77
78
- name := "dtmd " + datadir
78
+ name := "arbiter " + datadir
79
79
c := make (chan string )
80
80
81
81
go cmd_to_channel (argv , name , c )
@@ -103,14 +103,23 @@ func initdb(bin string, datadir string) {
103
103
}
104
104
}
105
105
106
- func postgres (bin string , datadir string , dtmservers []string , port int , nodeid int , wg * sync.WaitGroup ) {
106
+ func initarbiter (arbiterdir string ) {
107
+ if err := os .RemoveAll (arbiterdir ); err != nil {
108
+ log .Fatal (err )
109
+ }
110
+ if err := os .MkdirAll (arbiterdir , os .ModeDir | 0777 ); err != nil {
111
+ log .Fatal (err )
112
+ }
113
+ }
114
+
115
+ func postgres (bin string , datadir string , arbiters []string , port int , nodeid int , wg * sync.WaitGroup ) {
107
116
argv := []string {
108
117
bin ,
109
118
"-D" , datadir ,
110
119
"-p" , strconv .Itoa (port ),
111
120
"-c" , "dtm.buffer_size=65536" ,
112
121
// "-c", "dtm.buffer_size=0",
113
- "-c" , "dtm.servers=" + strings .Join (dtmservers , "," ),
122
+ "-c" , "dtm.servers=" + strings .Join (arbiters , "," ),
114
123
"-c" , "autovacuum=off" ,
115
124
"-c" , "fsync=off" ,
116
125
"-c" , "synchronous_commit=on" ,
@@ -166,38 +175,41 @@ func main() {
166
175
prefix := get_prefix (srcroot )
167
176
168
177
bin := map [string ]string {
169
- "dtmd " : srcroot + "/contrib/pg_dtm/dtmd/ bin/dtmd " ,
178
+ "arbiter " : srcroot + "/contrib/arbiter/ bin/arbiter " ,
170
179
"initdb" : prefix + "/bin/initdb" ,
171
180
"postgres" : prefix + "/bin/postgres" ,
172
181
}
173
182
174
183
datadirs := []string {"/tmp/data0" , "/tmp/data1" , "/tmp/data2" }
175
- dtmdirs := []string {"/tmp/dtm0 " , "/tmp/dtm1 " , "/tmp/dtm2 " }
184
+ arbiterdirs := []string {"/tmp/arbiter0 " , "/tmp/arbiter1 " , "/tmp/arbiter2 " }
176
185
177
186
check_bin (& bin );
178
187
179
188
if doInitDb {
180
189
for _ , datadir := range datadirs {
181
190
initdb (bin ["initdb" ], datadir )
182
191
}
192
+ for _ , arbiterdir := range arbiterdirs {
193
+ initarbiter (arbiterdir )
194
+ }
183
195
}
184
196
185
197
var wg sync.WaitGroup
186
198
187
- var dtmservers []string
188
- for i := range dtmdirs {
189
- dtmservers = append (dtmservers , DtmHost + ":" + strconv .Itoa (DtmPort - i ))
199
+ var arbiters []string
200
+ for i := range arbiterdirs {
201
+ arbiters = append (arbiters , DtmHost + ":" + strconv .Itoa (DtmPort - i ))
190
202
}
191
- for i , dir := range dtmdirs {
203
+ for i , dir := range arbiterdirs {
192
204
wg .Add (1 )
193
- go dtmd (bin ["dtmd " ], dir , dtmservers , i , & wg )
205
+ go arbiter (bin ["arbiter " ], dir , arbiters , i , & wg )
194
206
}
195
207
196
208
time .Sleep (3 * time .Second )
197
209
198
210
for i , dir := range datadirs {
199
211
wg .Add (1 )
200
- go postgres (bin ["postgres" ], dir , dtmservers , PgPort + i , i , & wg )
212
+ go postgres (bin ["postgres" ], dir , arbiters , PgPort + i , i , & wg )
201
213
}
202
214
203
215
wg .Wait ()
0 commit comments