Print

Print


[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