Quick summary of what we (AndyS, Nate and me) discussed.
We will discuss it more at the Qserv meeting…
* Zookeeper is not great for quick and frequent updates, so implementing
things like synchronizing access to resources such as table state/metadata
in zookeeper is questionable
* if we combine it with fact that watchers are not reliable and with the pains
with c++ bindings, we’d basically want to …. get rid of zookeeper
Proposal
* push CSS metadata into transactional mysql
* register every query in query metadata, including interactive
* change Facade API: new API would only have “fetch all metadata for a given
table”
* KVInterface - stays as is (granularity: key/value). Add support for updates
(Eg we need to set flags used to sync access to tables and that’d be done
through KVInterface)
* implement new MySQLKvInterface
* need to think how to store CSS info internally in mysql. Pack as JSON?
* high availability: standby replica(s) + auto-fail over. Two modes
1) Don’t handle new queries while fail over is happening, or
2) we could maintain a stand-by snapshot in czar, and work off the snapshot
while fail over is happening
* need a flag in mysql per table to synchronize access
- process that wants to delete a table would lock it (exclusive lock)
- czar would lock it (shared read lock) when it starts processing new query
* Need python interface for qservAdmin type things, Could wrap the C++ one
I hope that is enough to plan it in your heads. Think about it over the next
day or so, and we will discuss more on Wed.
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
|