Design and Implementation of a Notification Model for

  • Slides: 29
Download presentation
Design and Implementation of a Notification Model for Grid Monitoring Events S. Andreozzi, G.

Design and Implementation of a Notification Model for Grid Monitoring Events S. Andreozzi, G. L. Rubini, INFN-CNAF, Bologna, Italy N. De Bortoli, G. Tortone, INFN, Napoli, Italy S. Fantinel, Lab. Naz. Legnaro, Italy Switzerland - 27 th - 1 st October 2004 30 Sep 2004 CHEP 2004 - Interlaken. CHEP'04 Natascia De. September Bortoli

Overview l Motivation & Requirements l Publish/Subscribe – General Architecture – Choosen Solution: YFilter

Overview l Motivation & Requirements l Publish/Subscribe – General Architecture – Choosen Solution: YFilter Grid. ICE Notification Service l Conclusions l 30 Sep 2004 CHEP'04 Natascia De Bortoli 2

Motivation & Requirements 30 Sep 2004 CHEP'04 Natascia De Bortoli

Motivation & Requirements 30 Sep 2004 CHEP'04 Natascia De Bortoli

Grid. ICE Monitoring System Monitoring Service for Grid systems developed by INFN as part

Grid. ICE Monitoring System Monitoring Service for Grid systems developed by INFN as part of the EU Data. TAG project (WP 4). l It is currently integrated in LCG middleware release 2 l It fulfills a set of requirements needed for a Grid Service Monitoring: l – Partitioning resources & service usage – Data collection – Handling large volume of data – Detect and notify fault situations, user-defined events – Having low intrusivity 30 Sep 2004 CHEP'04 Natascia De Bortoli 4

Grid. ICE: layered architecture Presentation Service Detection & Notification Data Analyzer Data Collector Service

Grid. ICE: layered architecture Presentation Service Detection & Notification Data Analyzer Data Collector Service New Resource Detector + Scheduler + Persistent Storage Publisher Service Measurement Service 30 Sep 2004 CHEP'04 Natascia De Bortoli 5

Grid. ICE Notification Service: Why? l The Notification Service currently implemented offers a limited

Grid. ICE Notification Service: Why? l The Notification Service currently implemented offers a limited set of notifications: – Disk space, i-node availability, process transition l 30 Sep 2004 There is a growing interest for more flexible and scalable notification capabilities from LHC experiments CHEP'04 Natascia De Bortoli 8

Grid. ICE Notification Service: Requirements (1) Users requests Data Source 30 Sep 2004 Message

Grid. ICE Notification Service: Requirements (1) Users requests Data Source 30 Sep 2004 Message Broker Customized Notifications CHEP'04 Natascia De Bortoli 9

Grid. ICE Notification Service: Requirements (2) l l l l Expressive language to specify

Grid. ICE Notification Service: Requirements (2) l l l l Expressive language to specify users requests Users add/delete requests Matching between data sources and users requests Aggregated notifications Users are notified about the changing of state of a request Customizable notification frequency Asynchronous notification delivery Scalability 30 Sep 2004 CHEP'04 Natascia De Bortoli 10

Grid. ICE Notification Service: characteristics Message-oriented system l Event-driven mechanism l No knowledge between

Grid. ICE Notification Service: characteristics Message-oriented system l Event-driven mechanism l No knowledge between recipients l Publish/Subscribe system 30 Sep 2004 CHEP'04 Natascia De Bortoli 11

Publish/Subscribe Systems 30 Sep 2004 CHEP'04 Natascia De Bortoli

Publish/Subscribe Systems 30 Sep 2004 CHEP'04 Natascia De Bortoli

Publish/Subscribe System (1) Subscriptions Event Message Broker Event Matching Events 30 Sep 2004 Main

Publish/Subscribe System (1) Subscriptions Event Message Broker Event Matching Events 30 Sep 2004 Main components: Publishers, Subscribers, Message Broker l Messages: events, subscriptions l Message Broker: Filtering Algorithm & Filter Engine l CHEP'04 Natascia De Bortoli 13

Publish/Subscribe System (2) Two main approaches: l Topic-based: selects event by topic l Content-based:

Publish/Subscribe System (2) Two main approaches: l Topic-based: selects event by topic l Content-based: predicate over the content of the event Suitable for a Notification Service 30 Sep 2004 CHEP'04 Natascia De Bortoli 14

Publish/Subscribe System (3): Content-based Filter Engine XML is world wide used for data representation

Publish/Subscribe System (3): Content-based Filter Engine XML is world wide used for data representation & data exchange l Increasing interest in filtering and content-based routing of XML data l XML filtering l – Events: XML documents – Subscriptions: XPath queries + Value-based predicates 30 Sep 2004 CHEP'04 Natascia De Bortoli 15

Publish/Subscribe System (3): YFilter as Filter Engine Different algorithms & implementations available for the

Publish/Subscribe System (3): YFilter as Filter Engine Different algorithms & implementations available for the XML filtering l YFilter: choosen solution for Grid. ICE Notification Service l – Filtering via a Nondeterministic Finite Automa (NFA) build from subscriptions – Incoming events drive the NFA through its various transitions 30 Sep 2004 CHEP'04 Natascia De Bortoli 16

Publish/Subscribe System (4): YFilter Each (XPath) subscription is related to a Finite State Machine

Publish/Subscribe System (4): YFilter Each (XPath) subscription is related to a Finite State Machine (FSM) l FSMs are combined in a unique NFA by merging common prefixes of the subscription path: each of them is processed only once l Incremental construction and maintenance l 30 Sep 2004 CHEP'04 Natascia De Bortoli 17

Publish/Subscribe System (4): YFilter Matching = Structure Matching + Predicate Processing l Structure Matching:

Publish/Subscribe System (4): YFilter Matching = Structure Matching + Predicate Processing l Structure Matching: l – A subscription matches an event if during parsing an accepting state is reached – Events are processed once l Predicate processing: – Inline: value-based predicates are processed as soon as the relevant state is reached during structure matching. – Selection Postponed: predicate processing is executed at the end of the structure matching, if an accepting state is reached. 30 Sep 2004 CHEP'04 Natascia De Bortoli 18

Publish/Subscribe System (4): YFilter Q 1=/a/b Q 2=/a/c Q 3=/a/b/c Q 4=/a//b/c Q 5=/a/*/c

Publish/Subscribe System (4): YFilter Q 1=/a/b Q 2=/a/c Q 3=/a/b/c Q 4=/a//b/c Q 5=/a/*/c Q 6=/a//c Q 7=/a/*/*/c Q 8=/a/b/c (Q 1) c (Q 3, Q 8) b (Q 2) XPath Queries a c * b c (Q 4) c * (Q 6) State Final state c (Q 5) * c (Q 7) Shared state YFilter - NFA 30 Sep 2004 CHEP'04 Natascia De Bortoli 19

Grid. ICE Notification Service 30 Sep 2004 CHEP'04 Natascia De Bortoli

Grid. ICE Notification Service 30 Sep 2004 CHEP'04 Natascia De Bortoli

Grid. ICE Notification Service Subscriber Filter Engine Subscriptions XML Views Filter Engine Users Notifications

Grid. ICE Notification Service Subscriber Filter Engine Subscriptions XML Views Filter Engine Users Notifications DB Filtered Data Notification Manager Publisher Notification Manager 30 Sep 2004 CHEP'04 Natascia De Bortoli 21

Grid. ICE Notification Service: Publisher (1) Generates events from Grid. ICE DB l Periodical

Grid. ICE Notification Service: Publisher (1) Generates events from Grid. ICE DB l Periodical XML Views l (global information about VO, Site, …) l Decomposes XML Views in single XML events (by XPath) 30 Sep 2004 CHEP'04 Natascia De Bortoli 22

Grid. ICE Notification Service: Publisher (2) <? xml version="1. 0" encoding="UTF-8"? > <Grid. ICE:

Grid. ICE Notification Service: Publisher (2) <? xml version="1. 0" encoding="UTF-8"? > <Grid. ICE: Site. Info xlmns: Grid. ICE="http: //…/gridice/"> <Grid. ICE: Site. Data Name="ba. infn. it"> …. </Grid. ICE: Site. Data> <Grid. ICE: Site. Data Name="bo. infn. it"> … </Grid. ICE: Site. Data> <? xml version="1. 0" encoding="UTF-8"? > <Grid. ICE: Event Type="Site" Key="ba. infn. it"> <Grid. ICE: Site Name="ba. infn. it"> … <? xml version="1. 0" encoding="UTF-8"? > </Grid. ICE: Site> <Grid. ICE: Event Type="Site" Key="bo. infn. it"> </Grid. ICE: Event> <Grid. ICE: Site Name="bo. infn. it"> … Select events by XPath: //Grid. ICE: Site. Info/Grid. ICE: Site. Data <? xml version="1. 0" encoding="UTF-8"? > </Grid. ICE: Site> . . . <Grid. ICE: Site. Data Name="bo. ingv. it"> <Grid. ICE: Event Type="Site" Key=“bo. infn. it"> </Grid. ICE: Event> <Grid. ICE: Site Name=“bo. ingv. it"> . . . </Grid. ICE: Site. Data> </Grid. ICE: Site. Info> XML Site View 30 Sep 2004 … </Grid. ICE: Site> </Grid. ICE: Event> CHEP'04 Natascia De Bortoli 23

Grid. ICE Notification Service: Subscriber (1) DB Define Subscriptions Users Web-based GUI: l User

Grid. ICE Notification Service: Subscriber (1) DB Define Subscriptions Users Web-based GUI: l User Registration l Subscriptions definition Users 30 Sep 2004 CHEP'04 Natascia De Bortoli 24

Grid. ICE Notification Service: Subscriber (2) User Registration: l Subscription Definitions User identity Unique

Grid. ICE Notification Service: Subscriber (2) User Registration: l Subscription Definitions User identity Unique ID & Default profile assigned Delivery frequency l No limit on subscribers number l Graphically driven l XPath representation l Related to subscriber (by ID) Add & Delete subscriptions l Acknowledgement to stop multiple notifications of the same events l Customizable subscriptions: l – Single notification – Delivery frequency History about notifications l Notification of restored states l 30 Sep 2004 CHEP'04 Natascia De Bortoli 25

Grid. ICE Notification Service: Subscriber (3) subscription S 1: "notify me for critical status

Grid. ICE Notification Service: Subscriber (3) subscription S 1: "notify me for critical status of any Computing Element daemon related to ‘. ba. infn. it' domain“ S 1 c 1 = //Grid. ICE: Event/Grid. ICE: Machine[@Role. Name = 'ce-access-node'] S 1 c 2 = //Grid. ICE: Event/Grid. ICE: Machine/Grid. ICE: Daemons. Info/ Grid. ICE: Process[@Status < 1] S 1 c 3 = //Grid. ICE: Event/Grid. ICE: Machine[contains(@Hostname, '. ba. infn. it')] S 1 = S 1 c 1 and S 1 c 2 and S 1 c 3 30 Sep 2004 CHEP'04 Natascia De Bortoli 26

Grid. ICE Notification Service: Subscriber (3) subscription S 2: “Notify me for Storage Load

Grid. ICE Notification Service: Subscriber (3) subscription S 2: “Notify me for Storage Load grater then 80% for Storage Resources related to ‘. na. infn. it’ domain” S 2 c 1 = //Grid. ICE: Event/Grid. ICE: Site[contains(@Name, 'na. infn. it')] S 2 c 2 = //Grid. ICE: Event/Grid. ICE: Site[Grid. ICE: Storage. Load > 0. 8] S 2 = S 2 c 1 and S 2 c 2 30 Sep 2004 CHEP'04 Natascia De Bortoli 27

Grid. ICE Notification Service: Filter Engine (1) Based on Yfilter algorithm l Input: l

Grid. ICE Notification Service: Filter Engine (1) Based on Yfilter algorithm l Input: l – XML events generated by Publisher Module – Subscription as XPath queries. l Output – Set of Filtered Events matching (some) subscriptions – Event linked to matched subscription(s) and subscriber 30 Sep 2004 CHEP'04 Natascia De Bortoli 28

Grid. ICE Notification Service: Filter Engine (2) E 0 Type="Site" Key="ba. infn. it"> <?

Grid. ICE Notification Service: Filter Engine (2) E 0 Type="Site" Key="ba. infn. it"> <? xml<Grid. ICE: Event version="1. 0" encoding="UTF-8"? > Ek <? xml version="1. 0" encoding="UTF-8"? > S 1 c 1 , S 1 c 2 , S 1 c 3 , S 2 c 1 , S 2 c 2 <Grid. ICE: Event Type="Site" Key="ba. infn. it"> <Grid. ICE: Site Name="ba. infn. it"> … Machine Host. Name = "gridba 2. ba. infn. it" <Grid. ICE: Role. Name ="ce-access-node“ Name="bo. infn. it"> </Grid. ICE: Site> subscriptions <? xml version="1. 0" encoding="UTF-8"? > …</Grid. ICE: Event> < Grid. ICE: Event Type="Site" Key="ba. infn. it"> </Grid. ICE: Machine> </Grid. ICE: Event> < Grid. ICE: Site Name=“na. infn. it"> …. (S 2 c 1, S 2 c 2) < Grid. ICE: Storage. Load> 0. 87 </ Grid. ICE: Storage. Load> …. </ Grid. ICE: Site> Site En </Grid. ICE: Event> Event Machine Deamons. Info Events (S 1 c 1, S 1 c 3) 30 Sep 2004 CHEP'04 Natascia De Bortoli (S 1 c 2) 29

Grid. ICE Notification Service: Notification Manager l Responsible to send notifications to subscribers Report:

Grid. ICE Notification Service: Notification Manager l Responsible to send notifications to subscribers Report: document containing details about events and matched subscriptions Synchronous process l Operates on set of Filtered Events from Filter Engine: l – Identifies involved subscribers – Aggregates matched events & subscriptions – Composes notification reports Refers to subscriber profile & subscription(s) properties – Sends notification message(s) 30 Sep 2004 CHEP'04 Natascia De Bortoli 30

Conclusions l Our proposal of Notification Service improves Grid. ICE Monitoring Service: – satisfying

Conclusions l Our proposal of Notification Service improves Grid. ICE Monitoring Service: – satisfying a wider number of identified requirements – adding new features – taking advantage of the rich semantic and structural information offered by XML data representation l Proposed solution is suitable for all that scenarios, in which a message broker plays the key role in the exchanging of information (e. g. , broker matchmaking or content based routing) 30 Sep 2004 CHEP'04 Natascia De Bortoli 31