100 likes | 188 Views
R-GMA is a relational implementation for monitoring and creating an information system, using SQL statements for data flow between producers and consumers in a distributed environment. The system integrates various components for seamless data exchange. It includes a query planner to handle complex queries across multiple data sources, API support in Java and C++, and integration with MDS for data processing and display. Future developments focus on scalability, performance, and security enhancements.
E N D
INFORMATION SERVICES: R-GMA Abdeslem Djaoui RAL Laurence Field RAL Steve Fisher RAL James Magowan IBM Gavin McCance Glasgow Manfred Oevers IBM http://hepunx.rl.ac.uk/grid/wp3
Consumer lookup Registry Producer register Relational Grid Monitoring Architecture R-GMA • We use it not only for monitoring but also as the basis of an information system • We have chosen a relational implementation
Relational Approach to Information services • Not a general distributed RDBMS system, but a way to use the relational model in a distributed environment where Atomicity, Consistency, Isolation and Durability (ACID) properties are not generally important. • Producers:announce: SQL “CREATE TABLE” publish: SQL “INSERT” • Consumers: collect: SQL “SELECT”
DBProducer Servlet DBProducer Producer Servlet Producer Registry Interface Sensor Invocation Information Registry Servlet Consumer Consumer Servlet Application Schema Interface Archiver Servlet Schema Servlet Application Archiver R-GMA components Client side Hidden components
Circular Buffer Wpos Buffer[ ] Rpos,wrapF 1..* 1 execute() Consumer pop() Queue[ ] Streaming Consumer Information Information flow from producers to consumers • execute(): get latest tuple Producer Servlet • setBufferSize(N>0): Stream information • pop(): get head of queue Producer Consumer Servlet
DBProducer • Uses a RDBMS as a buffer to make produced data persistent • Consumer cannot tell the difference • Data inserted like a simple Producer • Can produce more than one table • Cannot stream data RDBMS DBProducer Servlet DBProducer Sensor Code Registry Servlet
Archiver Application Code Archiver Servlet Archiver Consumer Consumer DBProducer Consumer Servlet Consumer Servlet Registry Servlet DBProducer Servlet Producer Servlet Producer Servlet • consumes, archives and produces
Query Planner • to deal with a query which requires combining data at more than one physical location: • split query into sub-queries • send to different producers • combine results • EPSRC funding with Herriot Watt • A new RA starting soon
The user view today (M9 release) • API in both JAVA and C++ • Basic sensors (ie cpuload) for producing information • Integration with MDS: a sensor to query the MDS GRIS and republish information within R-GMA • some basic displays to consume data • demo code to get people started
Next steps • Integration of WP3 strands • Internal improvements to code - QA • Security • Soft state registration - GRRP • Query planner • Distributed schema and registry • Query tools for registry and schema • Investigate SOAP • Address issues of scalability and performance • add NetLogger calls to our code