Skip to content

SchemaVersion2

Jeff Squyres edited this page Sep 3, 2014 · 1 revision

Transition to MTT 2.0 (MTT Database Schema)

Server

Insertion

  • Each INSERT statement will be preceded by four more SELECTs to check and see if an identical cluster, mpi_get, mpi_install, and compiler exists in the mtt database.
  • The phase input parameter will determine the phase_id index in the submit table, rather than determining which of the three phase tables the row goes in.

Selection

  • Each SQL query will contain four more JOIN clauses to combine the cluster, mpi_get, mpi_install, and compiler into the row.
  • The "run keys" (host, mpi, timestamp) in reporter.php will give way to the new client_serial value for By Run queries.
  • To fully realize the benefit of the new schema, the [i] link at the right of each row in the results table should be expanded to display info on each of the other phases, not just the phase for the given row.

Client

  • How does submit.php know which tables will receive enumerative values (e.g., foo_1, foo_2, ..., foo_n) in the HTTP POST? The current enumerative fields (MTT 1.0) appear to reflect the 1.0 schema (go figure). To reflect the new schema, only non '_id' fields in the results and test_run table will be enumerative in a single submit. It will improve efficiency to correctly enumerate here, as it will allow us to not check for a row in the database that matches the submitted data.
    • We could comment the fields (e.g., label columns "enumerative"), and fetch the comment using obj_description(objectOID, tablename). Would that be preferable to hardcoding this stuff in the server-side scripts?
  • vpath_mode should be sent as an int, not a string (e.g., "none").
  • Send local_username as part of HTTP POST (see trac ticket 1)
  • platform_id should be renamed so it does not end in _id, to avoid confusion with the serial-integer _id pairs that link the tables together

Client/Server

  • We want to be able to key a given Test Build to an MPI Install, but there can be several MPI Installs that differ only by a field currently not submitted in a Test Build phase (e.g., they only differ by stdout). In this case, what should submit.php do?
    1. Take the most recent matching MPI Install
    2. Set the mpi_install_id to a null value - meaning the MPI Install can not be determined.
    3. Have the client store the index of the MPI Install in an XML metadata file(s), and send that to submit.php as part of the result submission