Skip to content

Commit c939cd2

Browse files
committed
Added worker executable.
1 parent 23b2ca2 commit c939cd2

File tree

96 files changed

+655
-1847
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

96 files changed

+655
-1847
lines changed

.github/workflows/ci.yml

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -305,37 +305,21 @@ jobs:
305305
if: always()
306306
run: docker logs ${USER}-czar-http-1
307307

308-
- name: Czar CMSD Log
309-
if: always()
310-
run: docker logs ${USER}-czar-cmsd-1
311-
312-
- name: Czar XROOTD Log
313-
if: always()
314-
run: docker logs ${USER}-czar-xrootd-1
315-
316308
- name: Czar MariaDB Log
317309
if: always()
318310
run: docker logs ${USER}-czar-mariadb-1
319311

320-
- name: Qzerv Worker 0 CMSD Log
312+
- name: Qzerv Worker 0 worker-svc Log
321313
if: always()
322-
run: docker logs ${USER}-worker-cmsd-0-1
323-
324-
- name: Qzerv Worker 0 XROOTD Log
325-
if: always()
326-
run: docker logs ${USER}-worker-xrootd-0-1
314+
run: docker logs ${USER}-worker-svc-0-1
327315

328316
- name: Qzerv Worker 0 MariaDB Log
329317
if: always()
330318
run: docker logs ${USER}-worker-mariadb-0-1
331319

332-
- name: Qzerv Worker 1 CMSD Log
333-
if: always()
334-
run: docker logs ${USER}-worker-cmsd-1-1
335-
336-
- name: Qzerv Worker 1 XROOTD Log
320+
- name: Qzerv Worker 1 worker-svc Log
337321
if: always()
338-
run: docker logs ${USER}-worker-xrootd-1-1
322+
run: docker logs ${USER}-worker-svc-1-1
339323

340324
- name: Qzerv Worker 1 MariaDB Log
341325
if: always()

admin/local/docker/compose/docker-compose.yml

Lines changed: 19 additions & 128 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,11 @@ x-log-volume:
1515
- type: bind
1616
source: ./log/
1717
target: /config-etc/log/
18-
x-worker-cmsd:
19-
&worker-cmsd
20-
image: "${QSERV_IMAGE:?err}"
21-
init: true
22-
# ports are published in worker-xrootd because this container uses that container's network stack.
23-
x-worker-xrootd:
24-
&worker-xrootd
18+
x-worker-svc:
19+
&worker-svc
2520
image: "${QSERV_IMAGE:?err}"
2621
init: true
2722
expose:
28-
- "1094"
29-
- "2131"
3023
- "3306" # for the worker db, which shares this container's network stack.
3124
x-repl-worker:
3225
&repl-worker
@@ -53,14 +46,12 @@ volumes:
5346

5447
volume_worker_0_data:
5548
volume_worker_0_results:
56-
volume_worker_0_xrootd:
5749
volume_worker_0_home:
5850
volume_worker_0_mariadb_lib:
5951
volume_worker_0_mariadb_run:
6052

6153
volume_worker_1_data:
6254
volume_worker_1_results:
63-
volume_worker_1_xrootd:
6455
volume_worker_1_home:
6556
volume_worker_1_mariadb_lib:
6657
volume_worker_1_mariadb_run:
@@ -97,30 +88,26 @@ services:
9788
- type: volume
9889
source: volume_worker_0_mariadb_run
9990
target: /var/run/mysqld # This is where the mariadb container puts the socket file
100-
network_mode: "service:worker-xrootd-0"
101-
worker-xrootd-0:
102-
<< : *worker-xrootd
91+
network_mode: "service:worker-svc-0"
92+
93+
worker-svc-0:
94+
<< : *worker-svc
10395
command: >
104-
entrypoint worker-xrootd
96+
entrypoint worker-svc
10597
--db-uri mysql://qsmaster:[email protected]:3306
10698
--db-admin-uri mysql://root:[email protected]:3306
107-
--vnid-config "@/usr/local/lib64/libreplica.so {{db_uri}}/qservw_worker 0 0"
10899
--repl-instance-id qserv_proj
109100
--repl-auth-key replauthkey
110101
--repl-admin-auth-key=repladminauthkey
111102
--repl-registry-host repl-registry
112103
--repl-registry-port 25082
113104
--results-dirname /qserv/data/results
114-
--cmsd-manager-name czar-xrootd
115105
--mysql-monitor-password CHANGEME_MONITOR
116-
--log-cfg-file=/config-etc/log/log-worker-xrootd.cnf
106+
--log-cfg-file=/config-etc/log/log-worker-svc.cnf
117107
volumes:
118108
- type: volume
119109
source: volume_worker_0_results
120110
target: /qserv/data/results
121-
- type: volume
122-
source: volume_worker_0_xrootd
123-
target: /var/run/xrootd
124111
- type: volume
125112
source: volume_worker_0_home
126113
target: /home/qserv
@@ -131,36 +118,8 @@ services:
131118
networks:
132119
default:
133120
aliases:
134-
- worker-cmsd-0
135121
- worker-mariadb-0
136-
worker-cmsd-0:
137-
<< : *worker-cmsd
138-
command: >
139-
entrypoint worker-cmsd
140-
--db-uri mysql://qsmaster:CHANGEME2@worker-mariadb-0:3306
141-
--vnid-config "@/usr/local/lib64/libreplica.so mysql://qsmaster:[email protected]:3306/qservw_worker 0 0"
142-
--results-dirname /qserv/data/results
143-
--repl-instance-id qserv_proj
144-
--repl-auth-key replauthkey
145-
--repl-admin-auth-key=repladminauthkey
146-
--repl-registry-host repl-registry
147-
--repl-registry-port 25082
148-
--cmsd-manager-name czar-xrootd
149-
network_mode: "service:worker-xrootd-0"
150-
volumes:
151-
- type: volume
152-
source: volume_worker_0_results
153-
target: /qserv/data/results
154-
- type: volume
155-
source: volume_worker_0_xrootd
156-
target: /var/run/xrootd
157-
- type: volume
158-
source: volume_worker_0_home
159-
target: /home/qserv
160-
- type: volume
161-
source: volume_worker_0_mariadb_run
162-
target: /qserv/mariadb/run # This matches the ?socket=... location in --db-uri and --db-admin-uri
163-
- << : *log-volume
122+
164123
repl-worker-0:
165124
<< : *repl-worker
166125
command: >
@@ -185,6 +144,7 @@ services:
185144
source: volume_worker_0_home
186145
target: /home/qserv
187146
- << : *log-volume
147+
188148
# worker 1 uses and validates socket file (where possible) to connect to the worker-mariadb
189149
worker-mariadb-1:
190150
<< : *worker-mariadb
@@ -202,31 +162,27 @@ services:
202162
- type: volume
203163
source: volume_worker_1_mariadb_run
204164
target: /var/run/mysqld # This is where the mariadb container puts the socket file
205-
network_mode: "service:worker-xrootd-1"
206-
worker-xrootd-1:
207-
<< : *worker-xrootd
165+
network_mode: "service:worker-svc-1"
166+
167+
worker-svc-1:
168+
<< : *worker-svc
208169
command: >
209-
entrypoint --log-level DEBUG worker-xrootd
170+
entrypoint --log-level DEBUG worker-svc
210171
--db-uri mysql://qsmaster:[email protected]:3306?socket={{db_socket}}
211172
--db-admin-uri mysql://root:[email protected]:3306?socket={{db_socket}}
212-
--vnid-config "@/usr/local/lib64/libreplica.so mysql://qsmaster:[email protected]:3306/qservw_worker 0 0"
213173
--repl-instance-id qserv_proj
214174
--repl-auth-key replauthkey
215175
--repl-admin-auth-key=repladminauthkey
216176
--repl-registry-host repl-registry
217177
--repl-registry-port 25082
218178
--results-dirname /qserv/data/results
219-
--cmsd-manager-name czar-xrootd
220179
--mysql-monitor-password CHANGEME_MONITOR
221180
--targs db_socket=/qserv/mariadb/run/mysqld.sock
222-
--log-cfg-file=/config-etc/log/log-worker-xrootd.cnf
181+
--log-cfg-file=/config-etc/log/log-worker-svc.cnf
223182
volumes:
224183
- type: volume
225184
source: volume_worker_1_results
226185
target: /qserv/data/results
227-
- type: volume
228-
source: volume_worker_1_xrootd
229-
target: /var/run/xrootd
230186
- type: volume
231187
source: volume_worker_1_home
232188
target: /home/qserv
@@ -237,36 +193,8 @@ services:
237193
networks:
238194
default:
239195
aliases:
240-
- worker-cmsd-1
241196
- worker-mariadb-1
242-
worker-cmsd-1:
243-
<< : *worker-cmsd
244-
command: >
245-
entrypoint --log-level DEBUG worker-cmsd
246-
--db-uri mysql://qsmaster:CHANGEME2@worker-mariadb-1:3306?socket=/qserv/mariadb/run/mysqld.sock
247-
--vnid-config "@/usr/local/lib64/libreplica.so mysql://qsmaster:[email protected]:3306/qservw_worker 0 0"
248-
--results-dirname /qserv/data/results
249-
--repl-instance-id qserv_proj
250-
--repl-auth-key replauthkey
251-
--repl-admin-auth-key=repladminauthkey
252-
--repl-registry-host repl-registry
253-
--repl-registry-port 25082
254-
--cmsd-manager-name czar-xrootd
255-
network_mode: "service:worker-xrootd-1"
256-
volumes:
257-
- type: volume
258-
source: volume_worker_1_results
259-
target: /qserv/data/results
260-
- type: volume
261-
source: volume_worker_1_xrootd
262-
target: /var/run/xrootd
263-
- type: volume
264-
source: volume_worker_1_home
265-
target: /home/qserv
266-
- type: volume
267-
source: volume_worker_1_mariadb_run
268-
target: /qserv/mariadb/run
269-
- << : *log-volume
197+
270198
repl-worker-1:
271199
<< : *repl-worker
272200
# qserv-replica-worker app does not support socket file yet.
@@ -292,42 +220,7 @@ services:
292220
source: volume_worker_1_home
293221
target: /home/qserv
294222
- << : *log-volume
295-
czar-xrootd:
296-
image: "${QSERV_IMAGE:?err}"
297-
init: true
298-
command: >
299-
entrypoint xrootd-manager
300-
--cmsd-manager-name czar-xrootd
301-
hostname: czar-xrootd
302-
expose:
303-
- "1094"
304-
- "2131"
305-
volumes:
306-
- type: volume
307-
source: volume_czar_xrootd
308-
target: /var/run/xrootd
309-
- type: volume
310-
source: volume_worker_1_home
311-
target: /home/qserv
312-
- << : *log-volume
313-
networks:
314-
default:
315-
aliases:
316-
- czar-cmsd
317-
czar-cmsd:
318-
image: "${QSERV_IMAGE:?err}"
319-
init: true
320-
# NOTE!! cms-delay-servers must match the number of workers being launched!
321-
command: entrypoint cmsd-manager --cms-delay-servers 2
322-
network_mode: "service:czar-xrootd"
323-
volumes:
324-
- type: volume
325-
source: volume_czar_xrootd
326-
target: /var/run/xrootd
327-
- type: volume
328-
source: volume_czar_home
329-
target: /home/qserv
330-
- << : *log-volume
223+
331224
czar-mariadb:
332225
image: "${QSERV_MARIADB_IMAGE:?err}"
333226
init: true
@@ -351,6 +244,7 @@ services:
351244
- type: volume
352245
source: volume_czar_mariadb_run
353246
target: /var/run/mysqld
247+
354248
czar-proxy:
355249
image: "${QSERV_IMAGE:?err}"
356250
init: true
@@ -359,7 +253,6 @@ services:
359253
--db-uri mysql://qsmaster:[email protected]:3306?socket={{db_socket}}
360254
--db-admin-uri mysql://root:[email protected]:3306?socket={{db_socket}}
361255
--targs db_socket=/qserv/mariadb/run/mysqld.sock
362-
--xrootd-manager czar-xrootd
363256
--log-cfg-file=/config-etc/log/log-czar-proxy.cnf
364257
--repl-instance-id qserv_proj
365258
--repl-auth-key replauthkey
@@ -395,7 +288,6 @@ services:
395288
command: >
396289
entrypoint --log-level DEBUG czar-http
397290
--db-uri mysql://qsmaster:CHANGEME2@czar-mariadb:3306/
398-
--xrootd-manager czar-xrootd
399291
--czar-name http
400292
--http-port 4048
401293
--http-threads 4
@@ -455,7 +347,6 @@ services:
455347
--instance-id=qserv_proj
456348
--auth-key=replauthkey
457349
--admin-auth-key=repladminauthkey
458-
--xrootd-host=czar-xrootd
459350
--registry-host=repl-registry
460351
--controller-auto-register-workers=1
461352
--qserv-sync-force

admin/local/docker/compose/log/log-czar-proxy.cnf

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,3 @@ log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
44
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
55
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-ddTHH:mm:ss.SSSZ} LWP %-5X{LWP} %-5p %m%n
66

7-
log4j.logger.lsst.qserv.xrdssi.msgs=WARN
8-
#log4j.logger.lsst.qserv.xrdssi.msgs=DEBUG

admin/local/docker/compose/log/log-worker-xrootd.cnf renamed to admin/local/docker/compose/log/log-worker-svc.cnf

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,3 @@ log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
44
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
55
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-ddTHH:mm:ss.SSSZ} LWP %-5X{LWP} %-5p %m%n
66

7-
log4j.logger.lsst.qserv.xrdssi.msgs=WARN

admin/local/docker/compose/log/log.cnf

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,3 @@ log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
44
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
55
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-ddTHH:mm:ss.SSSZ} LWP %-5X{LWP} %-5p %m%n
66

7-
log4j.logger.lsst.qserv.xrdssi.msgs=WARN
8-
#log4j.logger.lsst.qserv.xrdssi.msgs=DEBUG
9-

admin/tools/docker/base/Dockerfile

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#-------------------------------------------------------------------------------------------------------------
22
# The 'lite-build' target builds a container image to be used as the base of the supported build environment
33
# for Qserv binaries. It includes the compiler toolchain and other developer tools, system libraries, and
4-
# relatively-slowly changing third-party libs and tools (boost, antlr, protobuf, mysql-proxy, xrootd, etc.)
4+
# relatively-slowly changing third-party libs and tools (boost, antlr, protobuf, mysql-proxy, etc.)
55
#
66
# The idea is that this container should change relatively infrequently (i.e. every few months or so), and
77
# that developers will be able to pull and cache the latest version generated by CI. Developers should not
@@ -134,25 +134,6 @@ RUN cd /tmp \
134134
&& cd /tmp \
135135
&& rm -rf mysqlproxy
136136

137-
COPY xrootd_f032a1b0.patch /tmp
138-
139-
RUN cd /tmp \
140-
&& git clone https://github.com/xrootd/xrootd.git \
141-
&& cd xrootd \
142-
&& git checkout tags/v5.6.2 \
143-
&& git config --global user.email "[email protected]" \
144-
&& git config --global user.name "Qserv" \
145-
&& git cherry-pick d85915a3927261e49859c3e13075bce1dfefcbe4 \
146-
&& git apply /tmp/xrootd_f032a1b0.patch \
147-
&& mkdir build \
148-
&& cd build \
149-
&& cmake -DENABLE_PYTHON=off .. \
150-
&& make -j8 \
151-
&& make install \
152-
&& cd /tmp \
153-
&& rm -rf xrootd \
154-
&& rm /tmp/xrootd_f032a1b0.patch
155-
156137
RUN cd /tmp \
157138
&& git clone https://github.com/yhirose/cpp-httplib.git \
158139
&& cd cpp-httplib \
@@ -275,8 +256,7 @@ RUN mkdir -p /qserv/data && \
275256
mkdir /config-etc && \
276257
mkdir /config-etc/ssl && \
277258
mkdir -p /qserv/run/tmp && \
278-
mkdir -p /var/run/xrootd && \
279-
chown qserv:qserv /qserv/data /config-etc /config-etc/ssl /qserv/run/tmp /var/run/xrootd
259+
chown qserv:qserv /qserv/data /config-etc /config-etc/ssl /qserv/run/tmp
280260

281261
RUN alternatives --install /usr/bin/python3 python3 /usr/bin/python3.12 1
282262
ENV PYTHONPATH "${PYTHONPATH}:/usr/local/python"
@@ -292,11 +272,6 @@ COPY --from=lite-build /usr/local/lib/libmysql-*.so /usr/local/lib/
292272
COPY --from=lite-build /usr/local/lib/mysql-proxy/lua/*.so /usr/local/lib/mysql-proxy/lua/
293273
COPY --from=lite-build /usr/local/lib/mysql-proxy/plugins/*.so /usr/local/lib/mysql-proxy/plugins/
294274

295-
COPY --from=lite-build /usr/local/include/xrootd/ /usr/local/include/
296-
COPY --from=lite-build /usr/local/lib64/libXrd*.so /usr/local/lib64/
297-
COPY --from=lite-build /usr/local/bin/xrootd /usr/local/bin/
298-
COPY --from=lite-build /usr/local/bin/cmsd /usr/local/bin/
299-
COPY --from=lite-build /usr/local/bin/xrdfs /usr/local/bin/
300275
COPY --from=lite-build /usr/local/lib64/libcpp-httplib.so /usr/local/lib64/
301276

302277
COPY --from=lite-build /usr/local/lib64/libaws-*.so /usr/local/lib64/

0 commit comments

Comments
 (0)