[we skipped the mtg last Thursday, this was a replacement]
Present: Fabrice, Douglas, Bill, Serge, Jacek
Bill/logging
- main uses of logging?
- Debugging
- Probably won't be doing heavy analytics as
companies typically do
- access patterns captured through mysql query log
- which should probably be integrated into
the new central logging:
- eg, mysql can write to to file instead of table,
and logging will take it from there
- don't overdesign logging now!
- avoid strong coupling with qserv, will make it easier
to migrate in the future if we need to
Douglas
- started looking at zookeeper, reading docs
and installing
- not clear yet what it could be used for
- document all lessons learned, in 2 trac pages:
dev log and summary
- btw, kafka uses zookeeper
Fabrice
- implemented start/stop service for qserv, (a.la. init.d)
- have script that loads metadata, handy for testing,
now can test only metadata loading. This all used
to be hardcoded
- working on W13 test data set, loaded metadata,
trying which queries not working
- automated testing is working, but many queries broken
- Daniel working on fixing some of them in the parser
- should easily work with buildbot
- need to check with Robyn (but she is busy with FDR now)
Serge
- is taking one more pass on the big parser ticket
- looking into getting rid of config file for
partitioner and duplicator, (custom config file
format, probably better to swig c++/python, and
talk to qms from python, it will be all simpler)
- next: applying fixes for concurrency
- and after than: getting rid of subchunks
- 2 layers of code that execute sql, probably related
to the new shared scan code
Redesign (qserv core)
---------------------
- lot of old, unused code in qserv, need to clean up
- but also need to look at higher level class redesign
- and even higher. Some of the key open questions:
- how smart/dumb a worker should be?
- perhaps a little smarter?
- What are cons of having smarter worker?
- want workers to be easily disposable
- as we increase interface complexity,
debugging gets harder
Things to redesign on the worker:
- class redesign probably needed, eg queries are tracked
by hash, there no hash collision strategy, nothing ever
gets deleted, interractions for 2 queries that start at
~the same time might get mixed up
- perhaps premerge on worker instead of sending individual
chunk results to master
- perhaps instead of sending individual queries to each
subchunk, send simple template to worker, and worker
distributes to subchunks (this increases worker complexity..)
modularity
- master/worker separation is clean, but
beyond that it quickly gets very murky
- modules we thought would be useful to define:
- query rewriting (this is on master only)
- parsing logic (this is on master only)
- thread pooling (this is needed both on M and W,
probably will need one common module, plus two
implementations: one for M and one for W, but
this needs more thinking)
- sql execution (mainly worker, but there are some
things happening on the master too. Potentially
the logic could be structured similarly to thread
pooling: common plus 2 implementations)
- xrootd glue layer
- merging logic
- c++ geometry (on master, could be used on worker)
- logging (small module, eg for things like turning
to json, the actual logging is called from everywhere)
- metadata interface
- chunk mapping
- perhaps put each module in separate name space and
subdirectory?
- each module should have its own unit testing (perhaps
its own directory for tests)
- look at each class in the source code and try to assign
it to module(s)
--> action item: Bill will look into that, will have
something that we can be used to drive discussion
at the next meeting (this Thursday)
- capture in trac page
- definition of module, where it belongs (m/w/both), etc
Redesign (qserv installation/administration)
--------------------------------------------
- two big things that need attention:
a) packaging
b) use of scons
- modularity is not bad
Packaging
- action item: evaluate eups, makes most sense if Fabrice/Emmanuel
do that. Document in trac
Scons
- evaluate use of scons, it is now heavily used in install,
(and for building qserv)
- scons-based build system for qserv needs major rework
- it would be good to get some advice from some experts
outside of qserv team
- action item: write down what scons is doing / what we
want from scons (Fabrice)
- also, need to get rid of perl scripts
Jacek
########################################################################
Use REPLY-ALL to reply to list
To unsubscribe from the QSERV-L list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=QSERV-L&A=1
|