GL Stream Server Module Notification Sequence Diagram December
GL Stream Server Module Notification Sequence Diagram December 12 th, 2007 GL TRADE Internal Use Only
GL TRADE Internal Use Only GLStream Module Notification Sequence Diagram Server / Satellite Loading • All available modules libraries are • loaded All module objects are instantiated Configuration • All modules are configured • Queues and stubs are locally • If one of them fails, the host stops registered constructor() Module Instantiation • Queues and stubs can be created has. Been. Loaded() has. Been. Registered() Initialisation • All modules are initialised • If one of them fails, the host stops Connection • The satellite connects to the server • The server becomes master Launch • All modules are notified of the • connection If one of them fails, the host stops Running • The GLStream Server / Satellite is running Shutdown • All modules are asked to stop • Until all modules are ok to stop • Or until a timeout expires Module Configuration • Module configuration file is available • All queues and stubs should have been created Module Initialisation • All local queues and stubs have been properly • registered Module should get ready to be • connected Queues can be opened has. Been. Connected() Module Launch • Module is connected to the master GLStream Server • Recovery should be launched if needed will. Shutdown() false will. Shutdown() Module Shutdown • Module should tell when it is ready to be stopped • Messages can still be posted to queues false will. Shutdown() true Termination • Timers are stopped • All modules are notified of the termination Destruction • All modules are destroyed will. Terminate() Module Termination • Messages cannot be posted • Module should get ready to be destroyed destructor() Module Destruction 2
GL Stream Server Backup Network Architecture February 22 nd, 2007 GL TRADE Internal Use Only
GL TRADE Internal Use Only Backup Architecture Master GLStream System Slave GLStream System MASTER SERVER SLAVE SERVER MODULE A VIEW MODULE C MODULE B VIEW MASTER SATELLITE #1 • • • MODULE C MODULE D VIEW MASTER SATELLITE #2 MODULE B SLAVE SATELLITE #1 MODULE D When the Slave Satellite #1 connects to the Slave Server, it sends the list of its modules. In its turn, the Slave Server sends to Master Server the physical locations of all of the slave modules. The Master Server then creates a view with all the slave module locations. The View is replicated on all hosts of the Master system. With the view, Master Modules can then find out the physical location of their peer in the Slave system. 4
GL TRADE Internal Use Only File Backup Network Architecture Master GLStream System Slave GLStream System MASTER SERVER SLAVE SERVER MODULE A VIEW MODULE C MODULE B VIEW MASTER SATELLITE #1 • • • MODULE C MODULE D VIEW MASTER SATELLITE #2 MODULE B SLAVE SATELLITE #1 MODULE D Module D opens a file to be backed up. By using the view, the Master Satellite #2 then finds out that the slave module D is on Slave Satellite #1. The Master Satellite #2 then opens a direct TCP connection to the Slave Satellite #1. Over that connection, the Master Satellite #2 requests the Slave Satellite #1 to open the backup file. The image of the master file is then replicated on the Slave Satellite #1. Any update on the master file is sent to the Slave Satellite which applies them on the slave file. 5
GL Stream Server Backup Network Sequence Diagram February 23 rd, 2007 GL TRADE Internal Use Only
GL TRADE Internal Use Only File Backup Network Sequence Diagram Slave Host Master Host Open SYNCHRONIZING OPENING Open Backup File Rename Backup File Create New Backup File Open Successful Read Page #1 Read Page #2 Read Page #3 Read Page #4 Unsynchronize File Write Page #1 Successful Page #3 Write Page #2 Successful Page #4 (last page) Write Page #3 Successful Write Page #4 Synchronize File Page #4 Successful UPDATING Data Update Data Update Data Update 7
GL TRADE Internal Use Only File Backup Logical Sequence Diagram - Opening STCDatabase. File open() STCHost get. Slave. Host. Id() STCNet create. Channel() STCNet. Channel STCHost STCDatabase. File new() configure() launch() connecti on send(OPEN BACKUP) OPEN BACKUP open. Backup() send(SUCCESS OPEN) SUCCESS OPEN slave. Succeeded() Entering into the Synchronization Procedure MASTER HOST Main Application Thread Socket Reading Thread SLAVE HOST Socket Writing Thread 8
GL TRADE Internal Use Only File Backup Logical Sequence Diagram - Synchronizing STCDatabase. File STCNet. Channel slave. Succeeded() STCNet. Channel STCHost STCDatabase. File SUCCESS OPEN send(PAGE #1) send(PAGE #2) PAGE #1 process(PAGE #1) PAGE #2 write. Data() send(SUCCESS PAGE #1) slave. Succeeded() SUCCESS PAGE #1 process(PAGE #2) send(PAGE #3) PAGE #3 slave. Succeeded() send(SUCCESS PAGE #2) SUCCESS PAGE #2 process(PAGE #3) send(LAST PAGE #4) LAST PAGE #4 slave. Succeeded() write. Data() send(SUCCESS PAGE #3) SUCCESS PAGE #3 process(LAST PAGE #4) write. Data() set. Synchronized() send(SUCCESS PAGE #4) slave. Succeeded() MASTER HOST SUCCESS PAGE #4 SLAVE HOST 9
- Slides: 9