Download presentation
Presentation is loading. Please wait.
Published bySheryl Martin Modified over 8 years ago
1
NCBI Grid Presentation
2
NCBI Grid Structure NetCache NetSchedule Load Balancer (LBSM) Load Balancer (LBSM) Worker Nodes CGI Gateway
3
NetCache Problems: 1.HTTP/CGI is stateless protocol Every CGI call is a new run, no previous memory We need session state storage compatible with our Load Balancer 2. Storing information in files does not always work - File system overflow - Not protected against failures - Hard to load balance - No access log - Network access can be problematic (maintenance issues)
4
NetCache Design objectives: 1.BLOB ID can be used in Web apps URLs, HTML, cookies 2.Universal temporary BLOB storage Can store session info, graphics, sequences, ASN.1, XML 3.Automatic removal of old, unused objects Garbage collection 4.Compatible with NCBI Load Balancing 5.Can work on off-the-shelf hardware 6.High availability, automatic recovery after failures 7.Easy to scale economically by adding components * No RDBMS license * Any Linux, Unix, Windows box can be a NetCache host
5
NetCache CGI Load Balancer
6
NetCache CGI Load Balancer
7
NetCache CGI Load Balancer BLOB
8
NetCache CGI Load Balancer BLOB NetCache BLOB ID
9
NetCache CGI BLOB CGI NetCache BLOB ID
10
NetCache CGI BLOB CGI NetCache BLOB ID
11
NetCache Typical use cases: 1.Store session info 2.Graphics generated by CGIs 3.Caching results of computational algorithms 4.Cache results of expensive DBMS or search system queries 5.Data exchange between programs
12
NetSchedule CGI Typical CGI web call scenario:
13
NetSchedule CGI 30 sec timeout Typical CGI web call scenario: #include for (int i = 0; i < 10000; ++i) { …. }
14
CGI 30 sec timeout Expired! Typical CGI web call scenario: NetSchedule Reproduced with permission from Oleg O. Moiseyenko
15
Why do timeouts happen? Peak load hours. In peak hours number of resource-hungry tasks exceed available CPU time. Peak load hours. In peak hours number of resource-hungry tasks exceed available CPU time. CGI used as a platform to implement complex computationally intensive algorithms CGI used as a platform to implement complex computationally intensive algorithms Execution time depends on web user input Execution time depends on web user input user can specify complex criteria user can specify complex criteria user can upload a lot of data user can upload a lot of data
16
Worker Node NetSchedule NetSchedule CGI
17
Worker Node NetSchedule NetSchedule CGI
18
Worker Node NetSchedule NetSchedule CGI NetSchedule JOB ID
19
Worker Node NetSchedule NetSchedule CGI
20
Worker Node NetSchedule NetSchedule CGI #include for (int i = 0; i < 10000; ++i) { …. } Progress Report
21
NetSchedule Push-Pull Model Queue 1Queue 2 Job 1 Job 2 ….. Job 3 NetSchedule server maintains several FIFO queues Push Job Pull Job Worker Nodes CGIs
22
NCBI Grid Structure NetCache NetSchedule Load Balancer (LBSM) Load Balancer (LBSM) Stores JOB input/output General purpose queue management
23
NCBI Grid Structure NetCache NetSchedule Load Balancer (LBSM) Load Balancer (LBSM) Stores JOB input/output Worker Node API: Distribution, Logging, Remote Management General purpose queue management
24
NCBI Grid Structure NetCache NetSchedule Load Balancer (LBSM) Load Balancer (LBSM) CGI front end, and migration toolkit, HTML templates Stores JOB input/output Worker Node API: Distribution, Logging, Remote Management General purpose queue management
25
High availability All central components (queue and data storage) are duplicated All central components (queue and data storage) are duplicated All components are controlled by NCBI load balancer All components are controlled by NCBI load balancer Protection against back-end (remote CGI) failures - by timeout or via job re-scheduling Protection against back-end (remote CGI) failures - by timeout or via job re-scheduling Remote administration and statistics Remote administration and statistics
26
Worker node API High level design High level design standard C++ streams standard C++ streams ASN.1, XML serialization ASN.1, XML serialization Support of SMP Support of SMP thread based parallel jobs thread based parallel jobs Remote administrative access to worker nodes Remote administrative access to worker nodes shutdown shutdown availability checking availability checking statistics statistics
27
Acknowledgements C++ Group (Development) Denis Vakatov - coordination, design Anton Lavrentiev - communication libraries, load balancer Aaron Ucko - threaded server Anatoliy Kuznetsov - NetCache, NetSchedule Maxim Didenko - Grid API, CGI migration framework Other NCBI Groups BLAST Group Tom Madden George Coulouris Yuri Merezhuk Yan Raytselis Ron Edgar Mike DiCuccio Yuri Kapustin Boris Fedorov Mark Johnson - presentation rehearsal
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.