<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Folks,</p>
    <p>You will recall that we switched the default choice for the
      database engine for CCDB at JLab from SQLite to MySQL back on
      March 12
      (<a class="moz-txt-link-freetext"
href="https://mailman.jlab.org/pipermail/halld-offline/2019-March/003561.html"
        moz-do-not-send="true">https://mailman.jlab.org/pipermail/halld-offline/2019-March/003561.html</a>).
      Since then we have been studying usage patterns and CCDB
      performance on MySQL. And, not unexpectedly, we have experienced
      "storms" where the MySQL server is overloaded with CCDB requests
      from farm jobs and performance is severely degraded. Jobs don't
      crash but they take a long time to read in constants before
      starting to analyze events, up to two hours in the worst cases.
      These have been occurring once every day or two and last for a few
      hours.<br>
      <br>
      We have learned a lot. The storms are definitely coming from farm
      jobs when many of them start at the same time. The queries have
      been analyzed (no big inefficiencies found). These things were
      invisible to us when we were running with the SQLite default. As a
      result IT is putting up a new beefier server for us to use for the
      farm.<br>
      <br>
      Until the new server comes online (a week or two), <b>I am
        proposing that we switch back to using SQLite as the default for
        CCDB</b>, but with two differences from how we used SQLite at
      JLab in the past.<br>
      <br>
      (1) SQLite will be used <b>for the farm only</b>. Interactive
      users at JLab will continue to use the MySQL server.<br>
      (2) Rather than accessing the ccdb.sqlite file on the group disk,
      farm jobs will access one of 100 copies of ccdb.sqlite, located on
      the work disk, chosen randomly for each job.<br>
      <br>
      The idea is to separate farm demand for CCDB constants from other
      functions of our main database server while we wait for the new
      server that will do just that. Other functions include the writing
      of calibration constants to the CCDB, RCDB access, and MCwrapper
      job control functions.<br>
      <br>
      Note again that this change only affects processes using the
      defaults from the build_scripts-based environment set-up. Those
      that set their own JANA_CALIB_URL environment variable explicitly
      will get what they ask for, as always.<br>
      <br>
      <b>The proposed switch-over time is COB today.</b> I will make the
      change unless I hear objections.<br>
    </p>
    <p>  -- Mark<br>
    </p>
  </body>
</html>