Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • (tick) persistent support for super-transactions
    • table schema
    • DatabaseServices  
    • REST  services for managing super-transactions
  • (tick) database attribute to differentiate PUBLISHED databases from the ones which are being ingested
    • table schema
    • Configuration
    • REST  services for managing the database state (Configuration)
    • extended selectors in DatabaseServices  to differentiate operations with databases of different states. The default parameters of the selectors would always include database the PUBLISHED databases
  • (tick) test the above aded functions
    • first, merge DM-19226 into master, then rebase DM-19156 against master. This is neeed because of the schema change, whic
  • (minus)(tick)  REST  services for Ingest
    • (tick) Adding UNPUBLISHED databases
    • (tick)(minus) Adding tables
      • (question)in which format to store table schema for the ingested catalogs? CSS, MySQL INFORMATION_SCHEMA, ?
        • (tick) added Configuration table to the Replication system to store column definitions
      • (tick) creating prototype tables at workers
      • (minus)(tick) add the director  table attribute to the Configuration as requested by a client. Also add the name of the objectId  column if the director  table attribute is provided when adding a table. Also add these attributes to class Configuration::DatabaseInfo.
        • (question) what about the overlap  radius? Should it be also stored in the Configuration?
      • (question) what about chunkId  and subChunkId  columns of the partitioned tables? Should the input schema be tested for a presence of those? Or should they be added automatically as the very last columns? (warning) look at how it's done now.
    • (tick) chunk allocator
      • (warning) still needs to be fully tested. Probably after putting in place a simple loader server
    • (tick) (super-)transaction management
      • (question) should the secondary index be also extended at this stage by harvesting triplets  from Object  (Qserv director  table)
    • (minus) publishing databases
      • (minus) build the secondary index.
        • (question) Should this be a separate REST call and a job? Note that it may be a lengthy operation.
        • (question) Should this be done when committing super-transactions? This may be much quicker compared to doing all at once.

        • (warning) from the implementation prospective this would require adding a special kind of Controller and Worker requests to harvest triplets  from the Object  tables of the workers and loading them into the secondary index  table in Qserv czar's database.
      • (minus) create database & tables entries in the Qserv master database

        • (question) should this be rather done when creating UNPUBLISHED  databases an adding tables?
      • (minus) grant SELECT authorizations for the new databases to Qserv MySQL account(s) at all workers and the master(s)

      • (minus) register the databases, tables and partitioning parameters at CSS

      • (minus)(tick) enable databases at Qserv workers by adding an entry to table 'qservw_worker.Dbs'

        • (warning) the implementation of this operation is ready. It just needs to be wired into the REST service

      • (minus)(tick) remove MySQL partitions
        • (warning) the implementation of this operation is ready. It just needs to be wired into the REST service
      • (minus) ask Replication workers to reload their Configurations so that they recognized the new database as the published one. This step should be probably done after publishing the database.

  • (tick) (minus) loader server at workers
    • (tick) extend Configuration to support loader services
      • extended attributes in WorkerInfo  
      • extended Configuration  schema
      • extended Configuration  API
    • Initially support TSV only
    • (tick) support  both CSV and TSV files
    • (tick) manage manage MySQL partitions
      • (warning) the prototype tables created by the REST services have the default partition p0  as required by MySQL DDL. The loading service would have to ensure a new partition (based on numbers/values of the provided super-transactions) is added to the chunk-specific tables 
    • implement (tick) implement a command-line tool for sending CSV/TSV files to the loader services
    • (question) what needs to be done to (tick) Added a REST service for generating the empty chunks list? and placing it a usual location of the Qserv master  nodes
    • (minus) add support for for the regular  (non-chunked) tables
      • (warning) this can be done via an optional switch to the loading application. The protocol definition may also need to be extended.
  • (minus) add support for replicating semi-ingested tables when committing super-transactions 
  • (minus) add support for translating partitioned MySQL tables into the monolithic ones when publishing databases
  • (minus) Extend the Web Dashboard to display various aspects of the Ingest System (status of the UNPUBLISHED  databases, super-transactions, the number of chunks loaded, the amount of data loaded, etc.)

...