WP3 R-GMA – Architecture and Query Mediation 24/4/2003 Werner Nutt (Heriot-Watt University) <w.nutt@hw.ac.uk> Contributors • • • • • • • • • • • • • • • • Rob Byrom Andy Cooke Roney Cordenonsi Abdeslem Djaoui Laurence Field Steve Fisher Alasdair Gray Steve Hicks Jason Leake Lisha Ma James Magowan Werner Nutt Norbert Podhorszki Manish Soni Paul Taylor Antony Wilson R-GMA - Architecture and Query Mediation RAL Heriot-Watt QMUL RAL PPARC RAL Heriot-Watt RAL RAL Heriot-Watt IBM-UK Heriot-Watt SZTAKI PPARC IBM-UK PPARC Werner Nutt - 24/4/2003 WP3 2 Grid Monitoring: Where are the Concepts? WP3 There are two styles of talking about the Grid: – General metaphors (virtual organisations, services,…) – Low-level technicalities and jargon (LDAP, XML, SOAP, OGSA, OGSI, ...) What is missing – Clear definitions of the problems – intuitive concepts for solving them Needed for communication with both, users and developers R-GMA - Architecture and Query Mediation Werner Nutt - 24/4/2003 3 The Grid Monitoring Problem WP3 In a Grid we have – Computers – Storage elements – Network nodes and connections – Application programmes, … Monitoring: – What is the current state of the system? – How did the system behave in the past ? R-GMA - Architecture and Query Mediation Werner Nutt - 24/4/2003 4 Monitoring Data Come in two Kinds WP3 A Grid monitoring system makes available two kinds of data • static data “pools”, e.g., databases on – network topology, nodes connected – applications available (versions, licences, ...) • “streams” of data, e.g., – sensor data (cpu load, network traffic, ...) Data streams may give rise to data pools if they are archived Today: R-GMA is tailored towards streams, but not pools R-GMA - Architecture and Query Mediation Werner Nutt - 24/4/2003 5 Examples of Monitoring Queries WP3 • “Show me the (average) cpu-load of computers at Heriot-Watt!” • “Between which nodes was yesterday the average transportation time for 1 MB packets higher than than 0.… seconds?” • For every node N, how many computers connected to N have currently a cpu-load of no “ more than 30%?” R-GMA - Architecture and Query Mediation Werner Nutt - 24/4/2003 6 Stream Queries can have Various Temporal Interpretations WP3 Consider a query over the relation “Transport Time” tt(src, dest, pcktSize, method, timestamp, time) SELECT * FROM tt WHERE src = ral AND dest = bologna What is meant? Measurements (Continuous Query) – from now ? – up until now ? (History Query) – right now ? (Latest Snapshot Query) Today: Queries can be “flagged” with their type R-GMA - Architecture and Query Mediation Werner Nutt - 24/4/2003 7 Advanced Queries: Mixing Temporal Query Types WP3 • “Which connections have currently a transportation time that is higher than last week's average?” (latest snapshot and history) • “Show me the cpu load of those machines where it is lower than yesterday's load average!” (continuous and history) We do not intend to support such queries by R-GMA! R-GMA - Architecture and Query Mediation Werner Nutt - 24/4/2003 8 Architecture Approach 1: A Monitoring Data Warehouse WP3 Idea: – store all data about the Grid status into a huge database – and query it Not realistic: • Loading takes time • Data occupy space • Connections to the warehouse may fail • Often monitoring data flow as data streams, and queries ask for data streams as output R-GMA - Architecture and Query Mediation Werner Nutt - 24/4/2003 9 Approach 2: Monitoring with a “Multi-agent System” WP3 The Grid Monitoring Architecture (GMA) of the Global Grid Forum distinguishes between: • Consumers of information • Producers of information Consumer find/ register • Directory Service – Producers register their supply – Consumers register their demand Sensor Directory Service Producer Data Base MonitoringApplication Directory Service mediates between producers and consumers R-GMA - Architecture and Query Mediation Werner Nutt - 24/4/2003 10 Questions about GMA: WP3 • Which kinds of producers and consumers are there? • In which language do producers register their supply and consumers their demand ? • What is the meaning of a registration? • How does a consumer find suitable producers? And how does a producer find suitable consumers? • Producers have different capabilities to answer queries (e.g. selections, joins, …). Which of them should they register? R-GMA - Architecture and Query Mediation Werner Nutt - 24/4/2003 11 R-GMA: A Virtual Monitoring Data Warehouse • Language of producers and consumers: relational queries (SQL) • Vocabulary: Relations in a global schema Consumer • Consumer: poses queries over global schema Query Global Schema S DB-Producer DB V1 V2 . . . Vn Views on S WP3 V Registry R-GMA - Architecture and Query Mediation • Producer: – has a type (stream p., database p.) Stream Producer Sensor – publishes relations R1, … ,Rk – for every R, registers a simple view V on the global schema Werner Nutt - 24/4/2003 12 Primary Producers WP3 Database producer • supports queries over fixed set of tuples (static queries) • can be used to publish a database Stream producer • supports queries over changing set of tuples (continuous queries) • supports “latest snapshot queries” – offers up-to-date values for each primary key Today: DatabaseProducer’s and StreamProducer’s in R-GMA are different from the above! R-GMA - Architecture and Query Mediation Werner Nutt - 24/4/2003 13 Communication Modes of Stream Producers WP3 Stream Producers may offer two communication modes for continuous queries: – lossless (… but tuples could become stale) – lossy (… but tuples are fresh) Producer Producer Servlet Consumer Servlet IIIIIIII... IIIIIIII... Queue Queue Consumer Today: R-GMA’s StreamProducer’s are resilient and support lossless communication R-GMA - Architecture and Query Mediation Werner Nutt - 24/4/2003 14 Republishers Publish Query Answers WP3 into database into stream Static Query Materialised View -- Continuous Query Archiver Stream Republisher Archiver: shows the history of a stream. Stream Republisher: enables – merging, – thinning, – summarising of streams … R-GMA - Architecture and Query Mediation Werner Nutt - 24/4/2003 15 Republishers in R-GMA Today WP3 Republishers are called “archivers” (although some of them don't archive anything) An archiver (= republisher) • is defined by a query • consumes only from “stream producers” • publishes the query result according to its type, using – a “stream producer”, or – a “latest snapshot producer”, or – a “database producer” (which keeps an archive) R-GMA - Architecture and Query Mediation Werner Nutt - 24/4/2003 16 Which View should a Republisher Register? WP3 Problem: Republishers may compute complex queries … but complex views would confuse the “mediator”! Ideas: – register a simplified view for a complex query – register a new table R-GMA - Architecture and Query Mediation Werner Nutt - 24/4/2003 17 What is the Meaning of a Query in R-GMA? WP3 Assumption: the views of (primary) producers are selections on a single relation, i.e., queries of the form SELECT * FROM cpu_load WHERE machine_id = ‘AB123’ AND loc = ‘hw’ (each producer contributes its parts of a relation) • The virtual database contains the union of the data of all the primary producers • Conceptually, a query is evaluated over the entire virtual db R-GMA - Architecture and Query Mediation Werner Nutt - 24/4/2003 18 In R-GMA Query Answering Needs Mediation WP3 Suppose P1, P2 produce for tt (Transport Time) P1: P2: … WHERE src = hw … WHERE src = ral AND pcktSize > 20 A global consumer poses its query over global relations SELECT * FROM tt WHERE pcktSize > 10 A mediator translates this into queries over local relations SELECT * FROM UNION SELECT * FROM P1.tt WHERE pcktSize > 10 P2.tt Today: R-GMA’s mediator handles simple queries like the one above R-GMA - Architecture and Query Mediation Werner Nutt - 24/4/2003 19 Global and Local Consumers • WP3 Global consumers pose queries over global relations SELECT * FROM tt WHERE pcktSize > 10 , which are translated into queries over local relations SELECT * FROM UNION SELECT * FROM • P1.tt WHERE pcktSize > 10 P2.tt Local consumers pose queries over local relations directly SELECT * FROM P1.tt WHERE method = ping Today: a consumer can be global or local, but local relations cannot be referred to explicitly R-GMA - Architecture and Query Mediation Werner Nutt - 24/4/2003 20 How does the Mediator Find Suitable Producers? WP3 P1, P2, P3 produce for tt (Transport Time) P1: P2: P3: Q: … src = hw … src = ral AND pcktSize > 20 … src = ral AND method = ping SELECT * FROM tt WHERE src = ral AND method = ping We see: P1 is not suitable for Q, but P2 and P3 are. Why? src = hw AND src = ral AND method = ping src = ral AND pcktSize > 20 AND … is never true is sometimes true Satisfiability Test! Today: implemented R-GMA - Architecture and Query Mediation Werner Nutt - 24/4/2003 21 … So Which Producers Should the Mediator Ask? P2: P3: WP3 … src = ral AND pcktSize > 20 … src = ral AND method = ping Q: SELECT * FROM tt WHERE src = ral AND method = ping All answers to Q returned by P2 are also returned by P3 : whenever src = ral AND pcktSize > 20 AND src = ral AND method = ping is true, then src = ral AND method = ping AND src = ral AND method = ping is true. Hence, R-GMA only needs to ask P3 Entailment Test! Today: not implemented R-GMA - Architecture and Query Mediation Werner Nutt - 24/4/2003 22 … But What Did the Producers Promise? WP3 P registers view V Does P promise – some of V ? – all of V? (sound description) (sound and complete description) • The Entailment Test only makes sense when the registered views are sound and complete descriptions • Producers should register completeness flags R-GMA - Architecture and Query Mediation Werner Nutt - 24/4/2003 23 … Why May a Producer not be Complete? WP3 • The language of views is more restricted than the language of queries Hence: republishers may be unable to say exactly what they publish • Archivers may archive in lossy mode • Producers may lose tuples • A producer may not know everything about the real world Open to debate R-GMA - Architecture and Query Mediation Werner Nutt - 24/4/2003 24 Keys in the Global Schema WP3 tt(src, dest, method, pcktSize, timestamp, time) Intuitively, tt has the primary key (src, dest, method, pcktSize, timestamp). We need to know the primary keys • to understand the global schema • to answer latest snapshot queries But can we enforce them? Sometimes, they hold globally if they hold locally ! Today: global tables have keys, which are used to keep a latest snapshot cache R-GMA - Architecture and Query Mediation Werner Nutt - 24/4/2003 25 Summary (1) WP3 Types of Stream Queries • continuous vs. history vs. latest snapshot Producers • primary producers vs. republishers • DB producers: publish database • stream producers: lossless vs. lossy communication modes • republishers: materialised views vs. archivers vs. stream republishers R-GMA - Architecture and Query Mediation Werner Nutt - 24/4/2003 26 Summary (2) WP3 Global Schema • primary keys Consumers • global vs. local consumers Mediator • translates global query into local queries • applies Satisfiability Test to find suitable producers Query Planning • Entailment Test • sound vs. sound and complete producers R-GMA - Architecture and Query Mediation Werner Nutt - 24/4/2003 27