Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-10424

Replication Framework (integration with Qserv)

    Details

    • Type: Story
    • Status: Done
    • Resolution: Done
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None
    • Story Points:
      10
    • Sprint:
      DB_S18_02, DB_S18_03, DB_S18_04, DB_S18_05, DB_F18_06
    • Team:
      Data Access and Database

      Description

      This task has two goals:

      1. establishing a mechanism to notify Qserv on a completion of the replication operations after new replicas are created. This also includes a possible negotiation process when replicas need to be removed from a cluster
      2. serve as an anchor for the first code review of the project

       

      Here is a link to my presentation on the design and the architecture of the Replication system:

      http://www.slac.stanford.edu/~gapon/TALKS/2018_Apr_LSST_GroupMeeting/QservReplicationSystem.pdf

       

      Suggested areas for code review (assuming Qsev module replica or its subfolders sql/ and tools/):

      1.  Nate Pease Messaging network:
        • Messenger, MessengerConnectionWorkerServerWorkerServerConnection
        • tools/qserv-replica-messenger-test
      2. Andy Salnikov Configuration service:
        • Configuration, ConfigurationMySQL, ConfigurationFile
        • sql/replication.sql, sql/replication_config*.sql
      3. Andy Salnikov Database and persistent state support:
        • DatabaseMySQL, DatabaseServicesDatabaseServicesMySQL
        • sql/replication.sql
        • tools/qserv-replica-mysql-test - a simple test for the database API
        • tools/qserv-replica-test-sql - experimentation (And a demo) with the C++11's variadic templates for query construction
      4. Nate Pease Replication framework:
        • controller-side: Controller, Request, RequestMessenger (intermediate base class for specific requests based on the Messenger), FindRequest, FindAllRequest, ReplicationRequest, DeleteRequest, StatusRequest (a family of classes), StopRequest (a family of classes), ServiceManagementRequest (a family of classes), JobJobController
        • worker-side: WorkerProcessor, WorkerRequest, WorkerFindRequestWorkerFindAllRequest,WorkerReplicationRequest, WorkerDeleteRequest
        • shared: ServiceProvider, Configuration, DatabaseServices, QservMgtServices, ChunkLocker
        • tools/qserv-replica-worker - the worker-side server with a built-in file service
        • tools/qserv-replica-controller-cmd - tool for invoking individual requests
        • tools/qserv-replica-controller-admin - tool for inspecting/managing worker services
        • tools/qserv-replica-embedded-test - all-in-one solution encapsulating both Controller and (multiple) worker-side services
      5. Fritz Mueller High-level algorithms:
        • Job - base class for a family of requests
        • JobController - job controller
        • specific jobs: FindJob, FindAllJob, ReplicateJob, PurgeJob, RebalanceJob, CreateReplicaJob, DeleteReplicaJob, MoveReplicaJob, PurgeJob, FixUpJob, VerifyJob
        • tools/qserv-replica-master - a fixed-logic replication master executing a sequence of jobs in an infinite loop
        • tools/qserv-replica-jobctrl-test - a simple test of the JobController
        • tools/qserv-replica-job-* - a collection of single-job controllers
      6. John Gates File transfer services, operations with files:
        • FileServer, FileServerConnection, FileClient, FileUtils
        • tools/qserv-replica-calc-cs - a test for the iterative computation of check-sums (see FileUtils)
        • tools/qserv-replica-file-server - stand alone file service
        • tools/qserv-replica-file-read - an example application using the file service to read a remote file
      7. John Gates Integration with Qserv (over XRootD/SSI)
        • QservMgtServices - provides services for Jobs
        • QservMgtRequest - base class for a family of Controller requests
        • specific requests: AddReplicaQservMgtRequest, RemoveReplicaQservMgtRequestGetReplicasQservMgtRequest, SetReplicasQservMgtRequest
        • relevant Job classes: QservGetReplicasJob
        • tools/qserv-replica-worker-notify - tool for sending commands to Qserv workers
        • tools/qserv-replica-job-sync - single job controller application for getting Qserv collection of chunks in synch with the actual disposition of data

        Attachments

          Issue Links

            Activity

            fritzm Fritz Mueller created issue -
            fritzm Fritz Mueller made changes -
            Field Original Value New Value
            Epic Link DM-3158 [ 18717 ]
            fritzm Fritz Mueller made changes -
            Priority Undefined [ 10000 ] Major [ 3 ]
            fritzm Fritz Mueller made changes -
            Sprint DB_S17_5 [ 615 ]
            fritzm Fritz Mueller made changes -
            Story Points 4
            fritzm Fritz Mueller made changes -
            Epic Link DM-3158 [ 18717 ] DM-10681 [ 32633 ]
            fritzm Fritz Mueller made changes -
            Sprint DB_S17_6 [ 619 ]
            fritzm Fritz Mueller made changes -
            Rank Ranked higher
            fritzm Fritz Mueller made changes -
            Sprint DB_S17_6 [ 619 ] DB_S17_6, DB_S17_7 [ 619, 627 ]
            fritzm Fritz Mueller made changes -
            Rank Ranked higher
            fritzm Fritz Mueller made changes -
            Rank Ranked higher
            fritzm Fritz Mueller made changes -
            Sprint DB_S17_6, DB_S17_7 [ 619, 627 ] DB_S17_6, DB_S17_7, DB_S17_8 [ 619, 627, 634 ]
            fritzm Fritz Mueller made changes -
            Sprint DB_S17_6, DB_S17_7, DB_S17_8 [ 619, 627, 634 ] DB_S17_6, DB_S17_7, DB_S17_8, DB_S17_9 [ 619, 627, 634, 640 ]
            fritzm Fritz Mueller made changes -
            Rank Ranked higher
            fritzm Fritz Mueller made changes -
            Story Points 4 10
            fritzm Fritz Mueller made changes -
            Sprint DB_S17_6, DB_S17_7, DB_S17_8, DB_S17_9 [ 619, 627, 634, 640 ] DB_S17_6, DB_S17_7, DB_S17_8, DB_S17_10 [ 619, 627, 634, 650 ]
            fritzm Fritz Mueller made changes -
            Rank Ranked lower
            fritzm Fritz Mueller made changes -
            Sprint DB_S17_6, DB_S17_7, DB_S17_8, DB_S17_10 [ 619, 627, 634, 650 ] DB_S17_6, DB_S17_7, DB_S17_8 [ 619, 627, 634 ]
            fritzm Fritz Mueller made changes -
            Rank Ranked higher
            gapon Igor Gaponenko made changes -
            Summary Replication Framework (connect to css) Replication Framework (integration with Qserv)
            gapon Igor Gaponenko made changes -
            Description This task has two goals:
            # integration with Qserv CSS to pull names of database and tables which is a subject of replication
            # establishing a mechanism to notify Qserv on a completion of the replication operations after new replicas are created. This also includes a possible negotiation process when replicas need to be removed from a cluster
            fritzm Fritz Mueller made changes -
            Sprint DB_S17_6, DB_S17_7, DB_S17_8 [ 619, 627, 634 ] DB_S17_6, DB_S17_7, DB_S17_8, DB_S18_01 [ 619, 627, 634, 680 ]
            fritzm Fritz Mueller made changes -
            Rank Ranked higher
            gapon Igor Gaponenko made changes -
            Link This issue is blocked by DM-13301 [ DM-13301 ]
            gapon Igor Gaponenko made changes -
            Link This issue is blocked by DM-13302 [ DM-13302 ]
            gapon Igor Gaponenko made changes -
            Link This issue is blocked by DM-13303 [ DM-13303 ]
            vaikunth Vaikunth Thukral made changes -
            Sprint DB_S17_6, DB_S17_7, DB_S17_8, DB_S18_01 [ 619, 627, 634, 680 ] DB_S18_02 [ 689 ]
            vaikunth Vaikunth Thukral made changes -
            Status To Do [ 10001 ] In Progress [ 3 ]
            vaikunth Vaikunth Thukral made changes -
            Sprint DB_S18_02 [ 689 ] DB_S18_02, DB_S18_3 [ 689, 697 ]
            gapon Igor Gaponenko made changes -
            Link This issue relates to DM-9867 [ DM-9867 ]
            vaikunth Vaikunth Thukral made changes -
            Sprint DB_S18_02, DB_S18_03 [ 689, 697 ] DB_S18_02, DB_S18_03, DB_S18_04 [ 689, 697, 703 ]
            gapon Igor Gaponenko made changes -
            Description This task has two goals:
            # integration with Qserv CSS to pull names of database and tables which is a subject of replication
            # establishing a mechanism to notify Qserv on a completion of the replication operations after new replicas are created. This also includes a possible negotiation process when replicas need to be removed from a cluster
            This task has two goals:
             # establishing a mechanism to notify Qserv on a completion of the replication operations after new replicas are created. This also includes a possible negotiation process when replicas need to be removed from a cluster
             # serve as an anchor for the first code review of the project

             

            Suggested areas for code review (assuming Qsev module *replica* or its subfolders *sql*/ and *tools*/):
             # Messaging network:
             ** *Messenger*, *MessengerConnection*, *WorkerServer*, *WorkerServerConnection*
             ** tools/*qserv-replica-messenger-test*
             # Configuration service:
             ** *Configuration*, *ConfigurationMySQL*, *ConfigurationFile*
             ** sql/*replication.sql*, sql/*replication_config**.sql
             # Database and persistent state support:
             ** *DatabaseMySQL*, *DatabaseServices*, *DatabaseServicesMySQL*
             ** sql/*replication*.sql
             ** tools/*qserv-replica-mysql-tes*t - a simple test for the database API
             # Replication framework:
             ** controller-side: *Controller*, *Request*, *RequestMessenger* (intermediate base class for specific requests based on the *Messenger*), *FindRequest,* *FindAllRequest, Replication**Request, DeleteRequest, StatusRequest* (a family of classes)*, StopRequest* (a family of classes)*,* *ServiceManagementRequest* (a family of classes), *Job*, *JobController*
             ** worker-side: *WorkerProcessor*, *WorkerRequest, WorkerFindRequest*, *WorkerFindAllRequest,**WorkerReplicationRequest,* *WorkerDeleteRequest*****
             ** shared: *ServiceProvider,* *Configuration,* *DatabaseServices,* *QservMgtServices, ChunkLocker*******
             ** tools/*qserv-replica-worker* - the worker-side server with a built-in file service
             ** tools/*qserv-replica-controller-cmd* - tool for invoking individual requests
             ** tools/*qserv-replica-controller-admin* - tool for inspecting/managing worker services
             ** tools/*qserv-replica-embedded-test* - all-in-one solution encapsulating both Controller and (multiple) worker-side services
             **
             # High-level algorithms:
             ** *Job* - base class for a family of requests
             ** *JobController* - job controller
             ** specific jobs: *FindJob,* *FindAllJob, ReplicateJob, PurgeJob, RebalanceJob, CreateReplicaJob, DeleteReplicaJob, MoveReplicaJob, PurgeJob, FixUpJob, VerifyJob,***
             ** tools*/qserv-replica-master* - a fixed-logic replication master executing a sequence of jobs in an infinite loop
             ** tools/*qserv-replica-jobctrl-test* - a simple test of the *JobController*
             ** tools*/**qserv-replica-job-** - a collection of single-job controllers**
             # File transfer services, operations with files:
             ** *FileServer*, *FileServerConnection*, *FileClient*, *FileUtils*
             ** tools/*qserv-replica-calc-cs* - a test for the iterative computation of check-sums (see *FileUtils*)
             ** tools*/qserv-replica-file-server* - stand alone file service
             ** tools*/qserv-replica-file-read* - an example application using the file service to read a remote file
             # Integration with Qserv (over XRootD/SSI)
             ** *QservMgtServices* - provides services for Jobs
             ** *QservMgtRequest* - base class for a family of Controller requests
             ** specific requests: *AddReplicaQservMgtRequest*, *RemoveReplicaQservMgtRequest*, *GetReplicasQservMgtRequest*, *SetReplicasQservMgtRequest***
             ** relevant Job classes: *QservGetReplicasJob*
             ** tools/*qserv-replica-worker-notify* - tool for sending commands to Qserv workers
             ** tools/*qserv-replica-job-sync* - single job controller application for getting Qserv collection of chunks in synch with the actual disposition of data
            gapon Igor Gaponenko made changes -
            Risk Score 0
            gapon Igor Gaponenko made changes -
            Description This task has two goals:
             # establishing a mechanism to notify Qserv on a completion of the replication operations after new replicas are created. This also includes a possible negotiation process when replicas need to be removed from a cluster
             # serve as an anchor for the first code review of the project

             

            Suggested areas for code review (assuming Qsev module *replica* or its subfolders *sql*/ and *tools*/):
             # Messaging network:
             ** *Messenger*, *MessengerConnection*, *WorkerServer*, *WorkerServerConnection*
             ** tools/*qserv-replica-messenger-test*
             # Configuration service:
             ** *Configuration*, *ConfigurationMySQL*, *ConfigurationFile*
             ** sql/*replication.sql*, sql/*replication_config**.sql
             # Database and persistent state support:
             ** *DatabaseMySQL*, *DatabaseServices*, *DatabaseServicesMySQL*
             ** sql/*replication*.sql
             ** tools/*qserv-replica-mysql-tes*t - a simple test for the database API
             # Replication framework:
             ** controller-side: *Controller*, *Request*, *RequestMessenger* (intermediate base class for specific requests based on the *Messenger*), *FindRequest,* *FindAllRequest, Replication**Request, DeleteRequest, StatusRequest* (a family of classes)*, StopRequest* (a family of classes)*,* *ServiceManagementRequest* (a family of classes), *Job*, *JobController*
             ** worker-side: *WorkerProcessor*, *WorkerRequest, WorkerFindRequest*, *WorkerFindAllRequest,**WorkerReplicationRequest,* *WorkerDeleteRequest*****
             ** shared: *ServiceProvider,* *Configuration,* *DatabaseServices,* *QservMgtServices, ChunkLocker*******
             ** tools/*qserv-replica-worker* - the worker-side server with a built-in file service
             ** tools/*qserv-replica-controller-cmd* - tool for invoking individual requests
             ** tools/*qserv-replica-controller-admin* - tool for inspecting/managing worker services
             ** tools/*qserv-replica-embedded-test* - all-in-one solution encapsulating both Controller and (multiple) worker-side services
             **
             # High-level algorithms:
             ** *Job* - base class for a family of requests
             ** *JobController* - job controller
             ** specific jobs: *FindJob,* *FindAllJob, ReplicateJob, PurgeJob, RebalanceJob, CreateReplicaJob, DeleteReplicaJob, MoveReplicaJob, PurgeJob, FixUpJob, VerifyJob,***
             ** tools*/qserv-replica-master* - a fixed-logic replication master executing a sequence of jobs in an infinite loop
             ** tools/*qserv-replica-jobctrl-test* - a simple test of the *JobController*
             ** tools*/**qserv-replica-job-** - a collection of single-job controllers**
             # File transfer services, operations with files:
             ** *FileServer*, *FileServerConnection*, *FileClient*, *FileUtils*
             ** tools/*qserv-replica-calc-cs* - a test for the iterative computation of check-sums (see *FileUtils*)
             ** tools*/qserv-replica-file-server* - stand alone file service
             ** tools*/qserv-replica-file-read* - an example application using the file service to read a remote file
             # Integration with Qserv (over XRootD/SSI)
             ** *QservMgtServices* - provides services for Jobs
             ** *QservMgtRequest* - base class for a family of Controller requests
             ** specific requests: *AddReplicaQservMgtRequest*, *RemoveReplicaQservMgtRequest*, *GetReplicasQservMgtRequest*, *SetReplicasQservMgtRequest***
             ** relevant Job classes: *QservGetReplicasJob*
             ** tools/*qserv-replica-worker-notify* - tool for sending commands to Qserv workers
             ** tools/*qserv-replica-job-sync* - single job controller application for getting Qserv collection of chunks in synch with the actual disposition of data
            This task has two goals:
             # establishing a mechanism to notify Qserv on a completion of the replication operations after new replicas are created. This also includes a possible negotiation process when replicas need to be removed from a cluster
             # serve as an anchor for the first code review of the project

             

            Suggested areas for code review (assuming Qsev module *replica* or its subfolders *sql*/ and *tools*/):
             # Messaging network:
             ** *Messenger*, *MessengerConnection*, *WorkerServer*, *WorkerServerConnection*
             ** tools/*qserv-replica-messenger-test*
             # Configuration service:
             ** *Configuration*, *ConfigurationMySQL*, *ConfigurationFile*
             ** sql/*replication.sql*, sql/*replication_config**.sql
             # Database and persistent state support:
             ** *DatabaseMySQL*, *DatabaseServices*, *DatabaseServicesMySQL*
             ** sql/*replication*.sql
             ** tools/*qserv-replica-mysql-test* - a simple test for the database API
             ** tools/*qserv-replica-test-sql* - experimentation (And a demo) with the C++11's variadic templates for query construction
             # Replication framework:
             ** controller-side: *Controller*, *Request*, *RequestMessenger* (intermediate base class for specific requests based on the *Messenger*), *FindRequest,* *FindAllRequest, Replication**Request, DeleteRequest, StatusRequest* (a family of classes)*, StopRequest* (a family of classes)*,* *ServiceManagementRequest* (a family of classes), *Job*, *JobController*
             ** worker-side: *WorkerProcessor*, *WorkerRequest, WorkerFindRequest*, *WorkerFindAllRequest,**WorkerReplicationRequest,* *WorkerDeleteRequest*****
             ** shared: *ServiceProvider,* *Configuration,* *DatabaseServices,* *QservMgtServices, ChunkLocker*******
             ** tools/*qserv-replica-worker* - the worker-side server with a built-in file service
             ** tools/*qserv-replica-controller-cmd* - tool for invoking individual requests
             ** tools/*qserv-replica-controller-admin* - tool for inspecting/managing worker services
             ** tools/*qserv-replica-embedded-test* - all-in-one solution encapsulating both Controller and (multiple) worker-side services
             **
             # High-level algorithms:
             ** *Job* - base class for a family of requests
             ** *JobController* - job controller
             ** specific jobs: *FindJob,* *FindAllJob, ReplicateJob, PurgeJob, RebalanceJob, CreateReplicaJob, DeleteReplicaJob, MoveReplicaJob, PurgeJob, FixUpJob, VerifyJob,***
             ** tools*/qserv-replica-master* - a fixed-logic replication master executing a sequence of jobs in an infinite loop
             ** tools/*qserv-replica-jobctrl-test* - a simple test of the *JobController*
             ** tools*/**qserv-replica-job-** - a collection of single-job controllers**
             # File transfer services, operations with files:
             ** *FileServer*, *FileServerConnection*, *FileClient*, *FileUtils*
             ** tools/*qserv-replica-calc-cs* - a test for the iterative computation of check-sums (see *FileUtils*)
             ** tools*/qserv-replica-file-server* - stand alone file service
             ** tools*/qserv-replica-file-read* - an example application using the file service to read a remote file
             # Integration with Qserv (over XRootD/SSI)
             ** *QservMgtServices* - provides services for Jobs
             ** *QservMgtRequest* - base class for a family of Controller requests
             ** specific requests: *AddReplicaQservMgtRequest*, *RemoveReplicaQservMgtRequest*, *GetReplicasQservMgtRequest*, *SetReplicasQservMgtRequest***
             ** relevant Job classes: *QservGetReplicasJob*
             ** tools/*qserv-replica-worker-notify* - tool for sending commands to Qserv workers
             ** tools/*qserv-replica-job-sync* - single job controller application for getting Qserv collection of chunks in synch with the actual disposition of data
            gapon Igor Gaponenko made changes -
            Description This task has two goals:
             # establishing a mechanism to notify Qserv on a completion of the replication operations after new replicas are created. This also includes a possible negotiation process when replicas need to be removed from a cluster
             # serve as an anchor for the first code review of the project

             

            Suggested areas for code review (assuming Qsev module *replica* or its subfolders *sql*/ and *tools*/):
             # Messaging network:
             ** *Messenger*, *MessengerConnection*, *WorkerServer*, *WorkerServerConnection*
             ** tools/*qserv-replica-messenger-test*
             # Configuration service:
             ** *Configuration*, *ConfigurationMySQL*, *ConfigurationFile*
             ** sql/*replication.sql*, sql/*replication_config**.sql
             # Database and persistent state support:
             ** *DatabaseMySQL*, *DatabaseServices*, *DatabaseServicesMySQL*
             ** sql/*replication*.sql
             ** tools/*qserv-replica-mysql-test* - a simple test for the database API
             ** tools/*qserv-replica-test-sql* - experimentation (And a demo) with the C++11's variadic templates for query construction
             # Replication framework:
             ** controller-side: *Controller*, *Request*, *RequestMessenger* (intermediate base class for specific requests based on the *Messenger*), *FindRequest,* *FindAllRequest, Replication**Request, DeleteRequest, StatusRequest* (a family of classes)*, StopRequest* (a family of classes)*,* *ServiceManagementRequest* (a family of classes), *Job*, *JobController*
             ** worker-side: *WorkerProcessor*, *WorkerRequest, WorkerFindRequest*, *WorkerFindAllRequest,**WorkerReplicationRequest,* *WorkerDeleteRequest*****
             ** shared: *ServiceProvider,* *Configuration,* *DatabaseServices,* *QservMgtServices, ChunkLocker*******
             ** tools/*qserv-replica-worker* - the worker-side server with a built-in file service
             ** tools/*qserv-replica-controller-cmd* - tool for invoking individual requests
             ** tools/*qserv-replica-controller-admin* - tool for inspecting/managing worker services
             ** tools/*qserv-replica-embedded-test* - all-in-one solution encapsulating both Controller and (multiple) worker-side services
             **
             # High-level algorithms:
             ** *Job* - base class for a family of requests
             ** *JobController* - job controller
             ** specific jobs: *FindJob,* *FindAllJob, ReplicateJob, PurgeJob, RebalanceJob, CreateReplicaJob, DeleteReplicaJob, MoveReplicaJob, PurgeJob, FixUpJob, VerifyJob,***
             ** tools*/qserv-replica-master* - a fixed-logic replication master executing a sequence of jobs in an infinite loop
             ** tools/*qserv-replica-jobctrl-test* - a simple test of the *JobController*
             ** tools*/**qserv-replica-job-** - a collection of single-job controllers**
             # File transfer services, operations with files:
             ** *FileServer*, *FileServerConnection*, *FileClient*, *FileUtils*
             ** tools/*qserv-replica-calc-cs* - a test for the iterative computation of check-sums (see *FileUtils*)
             ** tools*/qserv-replica-file-server* - stand alone file service
             ** tools*/qserv-replica-file-read* - an example application using the file service to read a remote file
             # Integration with Qserv (over XRootD/SSI)
             ** *QservMgtServices* - provides services for Jobs
             ** *QservMgtRequest* - base class for a family of Controller requests
             ** specific requests: *AddReplicaQservMgtRequest*, *RemoveReplicaQservMgtRequest*, *GetReplicasQservMgtRequest*, *SetReplicasQservMgtRequest***
             ** relevant Job classes: *QservGetReplicasJob*
             ** tools/*qserv-replica-worker-notify* - tool for sending commands to Qserv workers
             ** tools/*qserv-replica-job-sync* - single job controller application for getting Qserv collection of chunks in synch with the actual disposition of data
            This task has two goals:
             # establishing a mechanism to notify Qserv on a completion of the replication operations after new replicas are created. This also includes a possible negotiation process when replicas need to be removed from a cluster
             # serve as an anchor for the first code review of the project

             

            Suggested areas for code review (assuming Qsev module *replica* or its subfolders *sql*/ and *tools*/):
             # Messaging network:
             ** *Messenger*, *MessengerConnection*, *WorkerServer*, *WorkerServerConnection*
             ** tools/*qserv-replica-messenger-test*
             # Configuration service:
             ** *Configuration*, *ConfigurationMySQL*, *ConfigurationFile*
             ** sql/*replication.sql*, sql/*replication_config**.sql
             # Database and persistent state support:
             ** *DatabaseMySQL*, *DatabaseServices*, *DatabaseServicesMySQL*
             ** sql/*replication*.sql
             ** tools/*qserv-replica-mysql-test* - a simple test for the database API
             ** tools/*qserv-replica-test-sql* - experimentation (And a demo) with the C++11's variadic templates for query construction
             # Replication framework:
             ** controller-side: *Controller*, *Request*, *RequestMessenger* (intermediate base class for specific requests based on the *Messenger*), *FindRequest,* *FindAllRequest, Replication**Request, DeleteRequest, StatusRequest* (a family of classes)*, StopRequest* (a family of classes)*,* *ServiceManagementRequest* (a family of classes), *Job*, *JobController*
             ** worker-side: *WorkerProcessor*, *WorkerRequest, WorkerFindRequest*, *WorkerFindAllRequest,**WorkerReplicationRequest,* *WorkerDeleteRequest*
             ** shared: *ServiceProvider,* *Configuration,* *DatabaseServices,* *QservMgtServices, ChunkLocker*
             ** tools/*qserv-replica-worker* - the worker-side server with a built-in file service
             ** tools/*qserv-replica-controller-cmd* - tool for invoking individual requests
             ** tools/*qserv-replica-controller-admin* - tool for inspecting/managing worker services
             ** tools/*qserv-replica-embedded-test* - all-in-one solution encapsulating both Controller and (multiple) worker-side services
             # High-level algorithms:
             ** *Job* - base class for a family of requests
             ** *JobController* - job controller
             ** specific jobs: *FindJob,* *FindAllJob, ReplicateJob, PurgeJob, RebalanceJob, CreateReplicaJob, DeleteReplicaJob, MoveReplicaJob, PurgeJob, FixUpJob, VerifyJob*
             ** tools/*qserv-replica-master* - a fixed-logic replication master executing a sequence of jobs in an infinite loop
             ** tools/*qserv-replica-jobctrl-test* - a simple test of the *JobController*
             ** tools/*qserv-replica-job-** - a collection of single-job controllers
             # File transfer services, operations with files:
             ** *FileServer*, *FileServerConnection*, *FileClient*, *FileUtils*
             ** tools/*qserv-replica-calc-cs* - a test for the iterative computation of check-sums (see *FileUtils*)
             ** tools/*qserv-replica-file-server* - stand alone file service
             ** tools/*qserv-replica-file-read* - an example application using the file service to read a remote file
             # Integration with Qserv (over XRootD/SSI)
             ** *QservMgtServices* - provides services for Jobs
             ** *QservMgtRequest* - base class for a family of Controller requests
             ** specific requests: *AddReplicaQservMgtRequest*, *RemoveReplicaQservMgtRequest*, *GetReplicasQservMgtRequest*, *SetReplicasQservMgtRequest*
             ** relevant Job classes: *QservGetReplicasJob*
             ** tools/*qserv-replica-worker-notify* - tool for sending commands to Qserv workers
             ** tools/*qserv-replica-job-sync* - single job controller application for getting Qserv collection of chunks in synch with the actual disposition of data
            gapon Igor Gaponenko made changes -
            Description This task has two goals:
             # establishing a mechanism to notify Qserv on a completion of the replication operations after new replicas are created. This also includes a possible negotiation process when replicas need to be removed from a cluster
             # serve as an anchor for the first code review of the project

             

            Suggested areas for code review (assuming Qsev module *replica* or its subfolders *sql*/ and *tools*/):
             # Messaging network:
             ** *Messenger*, *MessengerConnection*, *WorkerServer*, *WorkerServerConnection*
             ** tools/*qserv-replica-messenger-test*
             # Configuration service:
             ** *Configuration*, *ConfigurationMySQL*, *ConfigurationFile*
             ** sql/*replication.sql*, sql/*replication_config**.sql
             # Database and persistent state support:
             ** *DatabaseMySQL*, *DatabaseServices*, *DatabaseServicesMySQL*
             ** sql/*replication*.sql
             ** tools/*qserv-replica-mysql-test* - a simple test for the database API
             ** tools/*qserv-replica-test-sql* - experimentation (And a demo) with the C++11's variadic templates for query construction
             # Replication framework:
             ** controller-side: *Controller*, *Request*, *RequestMessenger* (intermediate base class for specific requests based on the *Messenger*), *FindRequest,* *FindAllRequest, Replication**Request, DeleteRequest, StatusRequest* (a family of classes)*, StopRequest* (a family of classes)*,* *ServiceManagementRequest* (a family of classes), *Job*, *JobController*
             ** worker-side: *WorkerProcessor*, *WorkerRequest, WorkerFindRequest*, *WorkerFindAllRequest,**WorkerReplicationRequest,* *WorkerDeleteRequest*
             ** shared: *ServiceProvider,* *Configuration,* *DatabaseServices,* *QservMgtServices, ChunkLocker*
             ** tools/*qserv-replica-worker* - the worker-side server with a built-in file service
             ** tools/*qserv-replica-controller-cmd* - tool for invoking individual requests
             ** tools/*qserv-replica-controller-admin* - tool for inspecting/managing worker services
             ** tools/*qserv-replica-embedded-test* - all-in-one solution encapsulating both Controller and (multiple) worker-side services
             # High-level algorithms:
             ** *Job* - base class for a family of requests
             ** *JobController* - job controller
             ** specific jobs: *FindJob,* *FindAllJob, ReplicateJob, PurgeJob, RebalanceJob, CreateReplicaJob, DeleteReplicaJob, MoveReplicaJob, PurgeJob, FixUpJob, VerifyJob*
             ** tools/*qserv-replica-master* - a fixed-logic replication master executing a sequence of jobs in an infinite loop
             ** tools/*qserv-replica-jobctrl-test* - a simple test of the *JobController*
             ** tools/*qserv-replica-job-** - a collection of single-job controllers
             # File transfer services, operations with files:
             ** *FileServer*, *FileServerConnection*, *FileClient*, *FileUtils*
             ** tools/*qserv-replica-calc-cs* - a test for the iterative computation of check-sums (see *FileUtils*)
             ** tools/*qserv-replica-file-server* - stand alone file service
             ** tools/*qserv-replica-file-read* - an example application using the file service to read a remote file
             # Integration with Qserv (over XRootD/SSI)
             ** *QservMgtServices* - provides services for Jobs
             ** *QservMgtRequest* - base class for a family of Controller requests
             ** specific requests: *AddReplicaQservMgtRequest*, *RemoveReplicaQservMgtRequest*, *GetReplicasQservMgtRequest*, *SetReplicasQservMgtRequest*
             ** relevant Job classes: *QservGetReplicasJob*
             ** tools/*qserv-replica-worker-notify* - tool for sending commands to Qserv workers
             ** tools/*qserv-replica-job-sync* - single job controller application for getting Qserv collection of chunks in synch with the actual disposition of data
            This task has two goals:
             # establishing a mechanism to notify Qserv on a completion of the replication operations after new replicas are created. This also includes a possible negotiation process when replicas need to be removed from a cluster
             # serve as an anchor for the first code review of the project

             

            Suggested areas for code review (assuming Qsev module *replica* or its subfolders *sql*/ and *tools*/):
             # [~fritzm] Messaging network:
             ** *Messenger*, *MessengerConnection*, *WorkerServer*, *WorkerServerConnection*
             ** tools/*qserv-replica-messenger-test*
             # [~salnikov] Configuration service:
             ** *Configuration*, *ConfigurationMySQL*, *ConfigurationFile*
             ** sql/*replication.sql*, sql/*replication_config**.sql
             # [~salnikov] Database and persistent state support:
             ** *DatabaseMySQL*, *DatabaseServices*, *DatabaseServicesMySQL*
             ** sql/*replication*.sql
             ** tools/*qserv-replica-mysql-test* - a simple test for the database API
             ** tools/*qserv-replica-test-sql* - experimentation (And a demo) with the C++11's variadic templates for query construction
             # [~npease] Replication framework:
             ** controller-side: *Controller*, *Request*, *RequestMessenger* (intermediate base class for specific requests based on the *Messenger*), *FindRequest,* *FindAllRequest, Replication**Request, DeleteRequest, StatusRequest* (a family of classes)*, StopRequest* (a family of classes)*,* *ServiceManagementRequest* (a family of classes), *Job*, *JobController*
             ** worker-side: *WorkerProcessor*, *WorkerRequest, WorkerFindRequest*, *WorkerFindAllRequest,**WorkerReplicationRequest,* *WorkerDeleteRequest*
             ** shared: *ServiceProvider,* *Configuration,* *DatabaseServices,* *QservMgtServices, ChunkLocker*
             ** tools/*qserv-replica-worker* - the worker-side server with a built-in file service
             ** tools/*qserv-replica-controller-cmd* - tool for invoking individual requests
             ** tools/*qserv-replica-controller-admin* - tool for inspecting/managing worker services
             ** tools/*qserv-replica-embedded-test* - all-in-one solution encapsulating both Controller and (multiple) worker-side services
             # [~fritzm] High-level algorithms:
             ** *Job* - base class for a family of requests
             ** *JobController* - job controller
             ** specific jobs: *FindJob,* *FindAllJob, ReplicateJob, PurgeJob, RebalanceJob, CreateReplicaJob, DeleteReplicaJob, MoveReplicaJob, PurgeJob, FixUpJob, VerifyJob*
             ** tools/*qserv-replica-master* - a fixed-logic replication master executing a sequence of jobs in an infinite loop
             ** tools/*qserv-replica-jobctrl-test* - a simple test of the *JobController*
             ** tools/*qserv-replica-job-** - a collection of single-job controllers
             # [~jgates] File transfer services, operations with files:
             ** *FileServer*, *FileServerConnection*, *FileClient*, *FileUtils*
             ** tools/*qserv-replica-calc-cs* - a test for the iterative computation of check-sums (see *FileUtils*)
             ** tools/*qserv-replica-file-server* - stand alone file service
             ** tools/*qserv-replica-file-read* - an example application using the file service to read a remote file
             # [~jgates] Integration with Qserv (over XRootD/SSI)
             ** *QservMgtServices* - provides services for Jobs
             ** *QservMgtRequest* - base class for a family of Controller requests
             ** specific requests: *AddReplicaQservMgtRequest*, *RemoveReplicaQservMgtRequest*, *GetReplicasQservMgtRequest*, *SetReplicasQservMgtRequest*
             ** relevant Job classes: *QservGetReplicasJob*
             ** tools/*qserv-replica-worker-notify* - tool for sending commands to Qserv workers
             ** tools/*qserv-replica-job-sync* - single job controller application for getting Qserv collection of chunks in synch with the actual disposition of data
            gapon Igor Gaponenko made changes -
            Reviewers Andy Salnikov, Fritz Mueller, John Gates, Nate Pease [ salnikov, fritzm, jgates, npease ]
            Status In Progress [ 3 ] In Review [ 10004 ]
            gapon Igor Gaponenko made changes -
            Description This task has two goals:
             # establishing a mechanism to notify Qserv on a completion of the replication operations after new replicas are created. This also includes a possible negotiation process when replicas need to be removed from a cluster
             # serve as an anchor for the first code review of the project

             

            Suggested areas for code review (assuming Qsev module *replica* or its subfolders *sql*/ and *tools*/):
             # [~fritzm] Messaging network:
             ** *Messenger*, *MessengerConnection*, *WorkerServer*, *WorkerServerConnection*
             ** tools/*qserv-replica-messenger-test*
             # [~salnikov] Configuration service:
             ** *Configuration*, *ConfigurationMySQL*, *ConfigurationFile*
             ** sql/*replication.sql*, sql/*replication_config**.sql
             # [~salnikov] Database and persistent state support:
             ** *DatabaseMySQL*, *DatabaseServices*, *DatabaseServicesMySQL*
             ** sql/*replication*.sql
             ** tools/*qserv-replica-mysql-test* - a simple test for the database API
             ** tools/*qserv-replica-test-sql* - experimentation (And a demo) with the C++11's variadic templates for query construction
             # [~npease] Replication framework:
             ** controller-side: *Controller*, *Request*, *RequestMessenger* (intermediate base class for specific requests based on the *Messenger*), *FindRequest,* *FindAllRequest, Replication**Request, DeleteRequest, StatusRequest* (a family of classes)*, StopRequest* (a family of classes)*,* *ServiceManagementRequest* (a family of classes), *Job*, *JobController*
             ** worker-side: *WorkerProcessor*, *WorkerRequest, WorkerFindRequest*, *WorkerFindAllRequest,**WorkerReplicationRequest,* *WorkerDeleteRequest*
             ** shared: *ServiceProvider,* *Configuration,* *DatabaseServices,* *QservMgtServices, ChunkLocker*
             ** tools/*qserv-replica-worker* - the worker-side server with a built-in file service
             ** tools/*qserv-replica-controller-cmd* - tool for invoking individual requests
             ** tools/*qserv-replica-controller-admin* - tool for inspecting/managing worker services
             ** tools/*qserv-replica-embedded-test* - all-in-one solution encapsulating both Controller and (multiple) worker-side services
             # [~fritzm] High-level algorithms:
             ** *Job* - base class for a family of requests
             ** *JobController* - job controller
             ** specific jobs: *FindJob,* *FindAllJob, ReplicateJob, PurgeJob, RebalanceJob, CreateReplicaJob, DeleteReplicaJob, MoveReplicaJob, PurgeJob, FixUpJob, VerifyJob*
             ** tools/*qserv-replica-master* - a fixed-logic replication master executing a sequence of jobs in an infinite loop
             ** tools/*qserv-replica-jobctrl-test* - a simple test of the *JobController*
             ** tools/*qserv-replica-job-** - a collection of single-job controllers
             # [~jgates] File transfer services, operations with files:
             ** *FileServer*, *FileServerConnection*, *FileClient*, *FileUtils*
             ** tools/*qserv-replica-calc-cs* - a test for the iterative computation of check-sums (see *FileUtils*)
             ** tools/*qserv-replica-file-server* - stand alone file service
             ** tools/*qserv-replica-file-read* - an example application using the file service to read a remote file
             # [~jgates] Integration with Qserv (over XRootD/SSI)
             ** *QservMgtServices* - provides services for Jobs
             ** *QservMgtRequest* - base class for a family of Controller requests
             ** specific requests: *AddReplicaQservMgtRequest*, *RemoveReplicaQservMgtRequest*, *GetReplicasQservMgtRequest*, *SetReplicasQservMgtRequest*
             ** relevant Job classes: *QservGetReplicasJob*
             ** tools/*qserv-replica-worker-notify* - tool for sending commands to Qserv workers
             ** tools/*qserv-replica-job-sync* - single job controller application for getting Qserv collection of chunks in synch with the actual disposition of data
            This task has two goals:
             # establishing a mechanism to notify Qserv on a completion of the replication operations after new replicas are created. This also includes a possible negotiation process when replicas need to be removed from a cluster
             # serve as an anchor for the first code review of the project

             

            Here is a link to my presentation on the design and the architecture of the Replication system:

            [http://www.slac.stanford.edu/~gapon/TALKS/2018_Apr_LSST_GroupMeeting/QservReplicationSystem.pdf]

             

            Suggested areas for code review (assuming Qsev module *replica* or its subfolders *sql*/ and *tools*/):
             # [~fritzm] Messaging network:
             ** *Messenger*, *MessengerConnection*, *WorkerServer*, *WorkerServerConnection*
             ** tools/*qserv-replica-messenger-test*
             # [~salnikov] Configuration service:
             ** *Configuration*, *ConfigurationMySQL*, *ConfigurationFile*
             ** sql/*replication.sql*, sql/*replication_config**.sql
             # [~salnikov] Database and persistent state support:
             ** *DatabaseMySQL*, *DatabaseServices*, *DatabaseServicesMySQL*
             ** sql/*replication*.sql
             ** tools/*qserv-replica-mysql-test* - a simple test for the database API
             ** tools/*qserv-replica-test-sql* - experimentation (And a demo) with the C++11's variadic templates for query construction
             # [~npease] Replication framework:
             ** controller-side: *Controller*, *Request*, *RequestMessenger* (intermediate base class for specific requests based on the *Messenger*), *FindRequest,* *FindAllRequest, Replication**Request, DeleteRequest, StatusRequest* (a family of classes)*, StopRequest* (a family of classes)*,* *ServiceManagementRequest* (a family of classes), *Job*, *JobController*
             ** worker-side: *WorkerProcessor*, *WorkerRequest, WorkerFindRequest*, *WorkerFindAllRequest,**WorkerReplicationRequest,* *WorkerDeleteRequest*
             ** shared: *ServiceProvider,* *Configuration,* *DatabaseServices,* *QservMgtServices, ChunkLocker*
             ** tools/*qserv-replica-worker* - the worker-side server with a built-in file service
             ** tools/*qserv-replica-controller-cmd* - tool for invoking individual requests
             ** tools/*qserv-replica-controller-admin* - tool for inspecting/managing worker services
             ** tools/*qserv-replica-embedded-test* - all-in-one solution encapsulating both Controller and (multiple) worker-side services
             # [~fritzm] High-level algorithms:
             ** *Job* - base class for a family of requests
             ** *JobController* - job controller
             ** specific jobs: *FindJob,* *FindAllJob, ReplicateJob, PurgeJob, RebalanceJob, CreateReplicaJob, DeleteReplicaJob, MoveReplicaJob, PurgeJob, FixUpJob, VerifyJob*
             ** tools/*qserv-replica-master* - a fixed-logic replication master executing a sequence of jobs in an infinite loop
             ** tools/*qserv-replica-jobctrl-test* - a simple test of the *JobController*
             ** tools/*qserv-replica-job-** - a collection of single-job controllers
             # [~jgates] File transfer services, operations with files:
             ** *FileServer*, *FileServerConnection*, *FileClient*, *FileUtils*
             ** tools/*qserv-replica-calc-cs* - a test for the iterative computation of check-sums (see *FileUtils*)
             ** tools/*qserv-replica-file-server* - stand alone file service
             ** tools/*qserv-replica-file-read* - an example application using the file service to read a remote file
             # [~jgates] Integration with Qserv (over XRootD/SSI)
             ** *QservMgtServices* - provides services for Jobs
             ** *QservMgtRequest* - base class for a family of Controller requests
             ** specific requests: *AddReplicaQservMgtRequest*, *RemoveReplicaQservMgtRequest*, *GetReplicasQservMgtRequest*, *SetReplicasQservMgtRequest*
             ** relevant Job classes: *QservGetReplicasJob*
             ** tools/*qserv-replica-worker-notify* - tool for sending commands to Qserv workers
             ** tools/*qserv-replica-job-sync* - single job controller application for getting Qserv collection of chunks in synch with the actual disposition of data
            vaikunth Vaikunth Thukral made changes -
            Sprint DB_S18_02, DB_S18_03, DB_S18_04 [ 689, 697, 703 ] DB_S18_02, DB_S18_03, DB_S18_04, DB_S18_05 [ 689, 697, 703, 726 ]
            npease Nate Pease made changes -
            Description This task has two goals:
             # establishing a mechanism to notify Qserv on a completion of the replication operations after new replicas are created. This also includes a possible negotiation process when replicas need to be removed from a cluster
             # serve as an anchor for the first code review of the project

             

            Here is a link to my presentation on the design and the architecture of the Replication system:

            [http://www.slac.stanford.edu/~gapon/TALKS/2018_Apr_LSST_GroupMeeting/QservReplicationSystem.pdf]

             

            Suggested areas for code review (assuming Qsev module *replica* or its subfolders *sql*/ and *tools*/):
             # [~fritzm] Messaging network:
             ** *Messenger*, *MessengerConnection*, *WorkerServer*, *WorkerServerConnection*
             ** tools/*qserv-replica-messenger-test*
             # [~salnikov] Configuration service:
             ** *Configuration*, *ConfigurationMySQL*, *ConfigurationFile*
             ** sql/*replication.sql*, sql/*replication_config**.sql
             # [~salnikov] Database and persistent state support:
             ** *DatabaseMySQL*, *DatabaseServices*, *DatabaseServicesMySQL*
             ** sql/*replication*.sql
             ** tools/*qserv-replica-mysql-test* - a simple test for the database API
             ** tools/*qserv-replica-test-sql* - experimentation (And a demo) with the C++11's variadic templates for query construction
             # [~npease] Replication framework:
             ** controller-side: *Controller*, *Request*, *RequestMessenger* (intermediate base class for specific requests based on the *Messenger*), *FindRequest,* *FindAllRequest, Replication**Request, DeleteRequest, StatusRequest* (a family of classes)*, StopRequest* (a family of classes)*,* *ServiceManagementRequest* (a family of classes), *Job*, *JobController*
             ** worker-side: *WorkerProcessor*, *WorkerRequest, WorkerFindRequest*, *WorkerFindAllRequest,**WorkerReplicationRequest,* *WorkerDeleteRequest*
             ** shared: *ServiceProvider,* *Configuration,* *DatabaseServices,* *QservMgtServices, ChunkLocker*
             ** tools/*qserv-replica-worker* - the worker-side server with a built-in file service
             ** tools/*qserv-replica-controller-cmd* - tool for invoking individual requests
             ** tools/*qserv-replica-controller-admin* - tool for inspecting/managing worker services
             ** tools/*qserv-replica-embedded-test* - all-in-one solution encapsulating both Controller and (multiple) worker-side services
             # [~fritzm] High-level algorithms:
             ** *Job* - base class for a family of requests
             ** *JobController* - job controller
             ** specific jobs: *FindJob,* *FindAllJob, ReplicateJob, PurgeJob, RebalanceJob, CreateReplicaJob, DeleteReplicaJob, MoveReplicaJob, PurgeJob, FixUpJob, VerifyJob*
             ** tools/*qserv-replica-master* - a fixed-logic replication master executing a sequence of jobs in an infinite loop
             ** tools/*qserv-replica-jobctrl-test* - a simple test of the *JobController*
             ** tools/*qserv-replica-job-** - a collection of single-job controllers
             # [~jgates] File transfer services, operations with files:
             ** *FileServer*, *FileServerConnection*, *FileClient*, *FileUtils*
             ** tools/*qserv-replica-calc-cs* - a test for the iterative computation of check-sums (see *FileUtils*)
             ** tools/*qserv-replica-file-server* - stand alone file service
             ** tools/*qserv-replica-file-read* - an example application using the file service to read a remote file
             # [~jgates] Integration with Qserv (over XRootD/SSI)
             ** *QservMgtServices* - provides services for Jobs
             ** *QservMgtRequest* - base class for a family of Controller requests
             ** specific requests: *AddReplicaQservMgtRequest*, *RemoveReplicaQservMgtRequest*, *GetReplicasQservMgtRequest*, *SetReplicasQservMgtRequest*
             ** relevant Job classes: *QservGetReplicasJob*
             ** tools/*qserv-replica-worker-notify* - tool for sending commands to Qserv workers
             ** tools/*qserv-replica-job-sync* - single job controller application for getting Qserv collection of chunks in synch with the actual disposition of data
            This task has two goals:
             # establishing a mechanism to notify Qserv on a completion of the replication operations after new replicas are created. This also includes a possible negotiation process when replicas need to be removed from a cluster
             # serve as an anchor for the first code review of the project

             

            Here is a link to my presentation on the design and the architecture of the Replication system:

            [http://www.slac.stanford.edu/~gapon/TALKS/2018_Apr_LSST_GroupMeeting/QservReplicationSystem.pdf]

             

            Suggested areas for code review (assuming Qsev module *replica* or its subfolders *sql*/ and *tools*/):
             #  [~npease] Messaging network:
             ** *Messenger*, *MessengerConnection*, *WorkerServer*, *WorkerServerConnection*
             ** tools/*qserv-replica-messenger-test*
             # [~salnikov] Configuration service:
             ** *Configuration*, *ConfigurationMySQL*, *ConfigurationFile*
             ** sql/*replication.sql*, sql/*replication_config**.sql
             # [~salnikov] Database and persistent state support:
             ** *DatabaseMySQL*, *DatabaseServices*, *DatabaseServicesMySQL*
             ** sql/*replication*.sql
             ** tools/*qserv-replica-mysql-test* - a simple test for the database API
             ** tools/*qserv-replica-test-sql* - experimentation (And a demo) with the C++11's variadic templates for query construction
             # [~npease] Replication framework:
             ** controller-side: *Controller*, *Request*, *RequestMessenger* (intermediate base class for specific requests based on the *Messenger*), *FindRequest,* *FindAllRequest, Replication**Request, DeleteRequest, StatusRequest* (a family of classes)*, StopRequest* (a family of classes)*,* *ServiceManagementRequest* (a family of classes), *Job*, *JobController*
             ** worker-side: *WorkerProcessor*, *WorkerRequest, WorkerFindRequest*, *WorkerFindAllRequest,**WorkerReplicationRequest,* *WorkerDeleteRequest*
             ** shared: *ServiceProvider,* *Configuration,* *DatabaseServices,* *QservMgtServices, ChunkLocker*
             ** tools/*qserv-replica-worker* - the worker-side server with a built-in file service
             ** tools/*qserv-replica-controller-cmd* - tool for invoking individual requests
             ** tools/*qserv-replica-controller-admin* - tool for inspecting/managing worker services
             ** tools/*qserv-replica-embedded-test* - all-in-one solution encapsulating both Controller and (multiple) worker-side services
             # [~fritzm] High-level algorithms:
             ** *Job* - base class for a family of requests
             ** *JobController* - job controller
             ** specific jobs: *FindJob,* *FindAllJob, ReplicateJob, PurgeJob, RebalanceJob, CreateReplicaJob, DeleteReplicaJob, MoveReplicaJob, PurgeJob, FixUpJob, VerifyJob*
             ** tools/*qserv-replica-master* - a fixed-logic replication master executing a sequence of jobs in an infinite loop
             ** tools/*qserv-replica-jobctrl-test* - a simple test of the *JobController*
             ** tools/*qserv-replica-job-** - a collection of single-job controllers
             # [~jgates] File transfer services, operations with files:
             ** *FileServer*, *FileServerConnection*, *FileClient*, *FileUtils*
             ** tools/*qserv-replica-calc-cs* - a test for the iterative computation of check-sums (see *FileUtils*)
             ** tools/*qserv-replica-file-server* - stand alone file service
             ** tools/*qserv-replica-file-read* - an example application using the file service to read a remote file
             # [~jgates] Integration with Qserv (over XRootD/SSI)
             ** *QservMgtServices* - provides services for Jobs
             ** *QservMgtRequest* - base class for a family of Controller requests
             ** specific requests: *AddReplicaQservMgtRequest*, *RemoveReplicaQservMgtRequest*, *GetReplicasQservMgtRequest*, *SetReplicasQservMgtRequest*
             ** relevant Job classes: *QservGetReplicasJob*
             ** tools/*qserv-replica-worker-notify* - tool for sending commands to Qserv workers
             ** tools/*qserv-replica-job-sync* - single job controller application for getting Qserv collection of chunks in synch with the actual disposition of data
            gapon Igor Gaponenko made changes -
            Link This issue is blocked by DM-14674 [ DM-14674 ]
            vaikunth Vaikunth Thukral made changes -
            Sprint DB_S18_02, DB_S18_03, DB_S18_04, DB_S18_05 [ 689, 697, 703, 726 ] DB_S18_02, DB_S18_03, DB_S18_04, DB_S18_05, DB_F18_06 [ 689, 697, 703, 726, 744 ]
            npease Nate Pease made changes -
            Status In Review [ 10004 ] Reviewed [ 10101 ]
            gapon Igor Gaponenko made changes -
            Resolution Done [ 10000 ]
            Status Reviewed [ 10101 ] Done [ 10002 ]

              People

              • Assignee:
                gapon Igor Gaponenko
                Reporter:
                fritzm Fritz Mueller
                Reviewers:
                Andy Salnikov, Fritz Mueller, John Gates, Nate Pease
                Watchers:
                Andy Salnikov, Fritz Mueller, Igor Gaponenko, John Gates, Nate Pease
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Summary Panel