@@ -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 ()