information and monitoring

Download Information and Monitoring

If you can't read please download the document

Upload: eli

Post on 06-Jan-2016

35 views

Category:

Documents


1 download

DESCRIPTION

Information and Monitoring. The European DataGrid Project Team http://www.eu-datagrid.org. Contents. Grid Information Systems GMA and R-GMA Tools and APIs. Features of a grid information system. Provides information on both: The Grid itself Mainly for the middleware packages - PowerPoint PPT Presentation

TRANSCRIPT

  • Information and MonitoringThe European DataGrid Project Teamhttp://www.eu-datagrid.org

    EU DataGrid: Information and Monitoring

  • ContentsGrid Information SystemsGMA and R-GMATools and APIs

    EU DataGrid: Information and Monitoring

  • Features of a grid information systemProvides information on both:The Grid itselfMainly for the middleware packagesThe user may query it to understand the status of the GridGrid applicationsFor usersFlexible infrastructure Able to cope with nodes in a distributed environment with an unreliable networkDynamic addition and deletion of information producersSecurity system able to address the access to information at a fine level of granularityAllow new data types to be definedScaleableGood performanceStandards based

    EU DataGrid: Information and Monitoring

  • GMAFrom GGFVery simple modelDoes not define:Data modelData transfer mechanismRegistry implementationProducerConsumerRegistryStore locationLookup locationexecute or stream

    EU DataGrid: Information and Monitoring

  • R-GMAUse the GMA from GGFA relational implementationPowerful data model and query languageAll data modelled as tablesSQL can express most queries in one expressionApplied to both information and monitoringCreates impression that you have one RDBMS per VOProducerConsumerRegistryStore locationLookup locationexecute or stream

    EU DataGrid: Information and Monitoring

  • Relational Data Model in R-GMANot a general distributed RDBMS system, but a way to use the relational model in a distributed environment where global consistency is not importantProducers announce:SQL CREATE TABLE publish:SQL INSERTConsumers collect:SQL SELECT Some producers, the Registry and Schema make use of RDBMS as appropriate but what is central is the relational modelAll R-GMA tuples are time-stamped

    EU DataGrid: Information and Monitoring

  • Example: 2 tablesService

    ServiceStatus

    URIVARCHAR(255)URI to contact the serviceVOVARCHAR(50)Where info should be published or an empty string to indicate alltypeVARCHAR(50)Type of serviceemailContactVARCHAR(50)The e-mail of a human being to complain tositeVARCHAR(50)Domain name of site hosting the servicesecureVARCHAR(1)y or n - indicates whether or not this is a secure servicemajorVersionINTVersion of protocol not implementationminorVersionINTVersion of protocol not implementationpatchVersionINTVersion of protocol not implementation

    URIVARCHAR(255)URI to contact the servicestatusINTstatus code. 0 means the service is up.messageVARCHAR(255)Message corresponding to status code

    EU DataGrid: Information and Monitoring

  • SQL example 1SELECT DISTINCT type FROM Service

    +--------------------------------------+| type |+--------------------------------------+| GridFTP || GRIS || RFIO |

    | R-GMA.ResilientStreamProducerService || R-GMA.ArchiverService || R-GMA.StreamProducerService || R-GMA.CanonicalProducerService || R-GMA.DBProducerService || R-GMA.LatestProducerService || GIN || R-GMA.RegistryService || R-GMA.SchemaService || R-GMA.BrowserService || GOUT || edg-netmon || edg-iperf || edg-udpmon || myproxy || edg-pinger |+--------------------------------------+25 Rows in set

    EU DataGrid: Information and Monitoring

  • SQL Example 2 SELECT Service.site, ServiceStatus.status, ServiceStatus.message, Service.URI FROM Service,ServiceStatus WHERE Service.URI = ServiceStatus.URI AND ServiceStatus.status 0 AND Service.Type = 'GIN'+-----------+--------+----------------+----------------------------+| site | status | message | URI |+-----------+--------+----------------+----------------------------+| nikhef.nl | 2 | Gin is stopped | http://tbn03.nikhef.nl/GIN || nikhef.nl | 2 | Gin is stopped | http://tbn09.nikhef.nl/GIN || nikhef.nl | 2 | Gin is stopped | http://tbn16.nikhef.nl/GIN |+-----------+--------+----------------+----------------------------+3 Rows in set

    EU DataGrid: Information and Monitoring

  • Data Transfer: Producer ConsumerConsumer can issue one-off queriesSimilar to normal database queryConsumer can also start a continuous queryRequests all data published which matches the queryAs new data matching the query is produced it is streamed to the ConsumerCan be seen as an alert mechanismRemember that all tuples carry a time-stamp

    EU DataGrid: Information and Monitoring

  • 3 Kinds of QueryTupleTupleTupleTupleTupleStreamProducerDataBaseProducerLatestProducerTupleTupleTupleTupleTupleTupleTupleTupleTupleTupleTupleTupleTupleTupleTupleTupleTupleTupleTupleTupleTupleContinuous QueriesHistory QueryLatest Queriesinsertselect

    EU DataGrid: Information and Monitoring

  • ProducersStreamProducer Supports Continuous QueriesIn memory data structureCan define minimum retention periodDataBaseProducer Supports History QueriesInformation not lostSupports joins Clean up strategy LatestProducer Supports Latest QueriesAs DataBaseProducer butJust holds the latest information for any primaryish keyCanonicalProducer Supports anythingOffers anything as relationsUser has to write code to handle SQL etc.

    EU DataGrid: Information and Monitoring

  • Registry and SchemaRegistry has two main tables:ProducerTable name PredicateLocationConsumerQueryLocationSchema holds description of tablesColumn names and types of each tableRegistry predicate defines subset of global table

    ProducerConsumerRegistry

    Store locationLookup locationexecute or streamSchema

    Store table description

    EU DataGrid: Information and Monitoring

  • Contributions to the global tableWHERE country = UK AND site = RAL

    WHERE country = CH AND site = CERN

    CPULoad (Global Schema)CountrySite FacilityLoadTimestamp

    CPULoad (Producer 3)CHCERNATLAS1.619055611022002CHCERNCDF0.619055511022002

    CPULoad (Producer 1)UKRALCDF0.319055711022002UKRALATLAS1.619055611022002

    CPULoad (Producer 2)UKGLACDF0.419055811022002UKGLAALICE0.519055611022002

    CPULoad (Global Schema)CountrySite FacilityLoadTimestampUKRALCDF0.319055711022002UKRALATLAS1.619055611022002

    CPULoad (Global Schema)CountrySite FacilityLoadTimestampUKRALCDF0.319055711022002UKRALATLAS1.619055611022002UKGLACDF0.419055811022002UKGLAALICE0.519055611022002

    CPULoad (Global Schema)CountrySite FacilityLoadTimestampUKRALCDF0.319055711022002UKRALATLAS1.619055611022002UKGLACDF0.419055811022002UKGLAALICE0.519055611022002CHCERNALICE0.919055611022002CHCERNCDF0.619055511022002

    EU DataGrid: Information and Monitoring

  • MediatorQueries posed against a virtual data baseThe Mediator must:find the right Producerscombine information from themHidden component but vital to R-GMAWill eventually support full distributed queries but for now will only merge information: from multiple producers for queries on one table or over multiple tables from one producer

    EU DataGrid: Information and Monitoring

  • Queries over global table merging streamsMediator handles merging information from multiple producers for queries on one tableSELECT * from CPULoad WHERE country = UK

    CPULoad (Consumer)CountrySite FacilityLoadTimestamp

    CPULoad (Producer 3)CHCERNATLAS1.619055611022002CHCERNCDF0.619055511022002

    CPULoad (Producer 1)UKRALCDF0.319055711022002UKRALATLAS1.619055611022002

    CPULoad (Producer 2)UKGLACDF0.419055811022002UKGLAALICE0.519055611022002

    CPULoad (Consumer)CountrySite FacilityLoadTimestampUKRALCDF0.319055711022002UKRALATLAS1.619055611022002

    CPULoad (Consumer)CountrySite FacilityLoadTimestampUKRALCDF0.319055711022002UKRALATLAS1.619055611022002UKGLACDF0.419055811022002UKGLAALICE0.519055611022002

    EU DataGrid: Information and Monitoring

  • Queries over global table joining tablesService/ServiceStatus (Latest Producer)SELECT Service.URI Service.emailContact from Service S, ServiceStatus SS WHERE (S.URI= SS.URI and SS.up=n)

    ServiceURIVOtypeemailContactsitesecuremajorVersionminorVersionpatchVersiongppse01aliceSEsysad@[email protected]@rl.ac.ukRALlxshare0404aliceSEsysad@[email protected]

    ServiceStatusURIupmessagegppse01ySE is runninggppse02nSE ERROR 101lxshare0404ySE is running

    Service/ServiceStatus (Consumer)URIemailContact

    Service/ServiceStatus (Consumer)URIemailContact [email protected]

    [email protected]

    gppse02n

    EU DataGrid: Information and Monitoring

  • Archiver (Re-publisher)It is a combined Consumer-ProducerFollows the GMA concept but packaged for ease of useYou just have to tell it what to collect and it does so on your behalfRe-publishes to any kind of Insertable (i.e. not to the CanonicalProducer)Can support joins if archiving to a DataBaseProducer or a LatestProducer

    EU DataGrid: Information and Monitoring

  • TopologiesNormally publish via SPArchivers instantiated with a Producer and a PredicateOften no predicateMust avoid cycles in the graph

    A DBPA SPA HPSPSPSPSP

    EU DataGrid: Information and Monitoring

  • GIN and GOUT (Gadget IN and Gadget OUT)GLUESchema

    EU DataGrid: Information and Monitoring

  • RangliaR-GMA meets GangliaA CanonicalProducer is used to interface GangliaAllows R-GMA queries to be made to GangliaNot yet released

    EU DataGrid: Information and Monitoring

  • R-GMA ToolsR-GMA BrowserApplication dynamically generating web pagesSupports pre-defined and user-defined queriesR-GMA CLI (edg-rgma)Command Line Interface (similar to MySQL)Supports single query and interactive modesCan perform simple operations with Consumers, Producers and ArchiversR-GMA packaged SQL (edg-rgma-util)e.g. edg-rgma-util contacts:Command: SELECT siteName, sysAdminContact, userSupportContact, siteSecurityContact FROM SiteInfo

    EU DataGrid: Information and Monitoring

  • EU DataGrid: Information and Monitoring

  • edg-rgmashow tablesdescribe ServiceStatusshow producers of ServiceStatuslatest select * from ServiceStatusold continuous select * from ServiceStatus

    EU DataGrid: Information and Monitoring

  • edg-rgma Example$> edg-rgmargma> stream declare userTable rgma> stream minret 0.2rgma> stream INSERT into userTable (userId, aString, aReal, anInt) values ('fisher', 'hello', 3.162, 21)rgma> timeout 0.3rgma> old continuous SELECT * from userTable +--------+---------+-------+-------+-----------------+-----------------+| userId | aString | aReal | anInt | MeasurementDate | MeasurementTime |+--------+---------+-------+-------+-----------------+-----------------+| fisher | hello | 3.162 | 21 | 2003-11-11 | 11:06:01 |+--------+---------+-------+-------+-----------------+-----------------+1 Rows in set

    EU DataGrid: Information and Monitoring

  • APIsExist in Java, C++, C, Python and PerlC, Python and Perl follow an object based style reflecting the Java and C++ APIsJava myProducer = new StreamProducer(); C++ myProducer= new edg::info::StreamProducer(); C myProducer = StreamProducer_new(); Perl $myProducer = edg_rgma_perl::StreamProducer_new(); Python myProducer = edg_rgma_python.StreamProducer_new() or myProducer = rgma.StreamProducer()

    EU DataGrid: Information and Monitoring

  • Some TimesTerminationIntervalPeriod by which the producer must re-announce its existenceIf it fails to do so it will be removed from the registryDefault is 20 minutesDont set it too shortDont set it too longRetentionPeriodPeriod for which the published data will remain available, even after the Producer has been closedDefault is 0

    EU DataGrid: Information and Monitoring

  • C++ Producer - Example#include #include "info/StreamProducer.hh"int main(int argc, char* args[]) {if (argc != 2) { std::cout
  • C++ Consumer - Example

    #include #include "info/Consumer.hh"#include "info/ResultSet.hh"

    int main(){try { edg::info::Consumer myConsumer("SELECT * FROM userTable, edg::info::Consumer::LATEST); edg::info::TimeInterval Timeout(60); myConsumer.start(Timeout); while(myConsumer.isExecuting()){ sleep(1); } if(myConsumer.hasAborted()){ std::printf("Consumer query timed-out\n"); } edg::info::ResultSet resultSet = myConsumer.popIfPossible(); if (resultSet) { std::printf("ResultSet: %s\n", resultSet.toString().c_str()); } } catch (edg::info::RGMAException& e) { std::printf("Exception: %s\n", e.what()); }}

    EU DataGrid: Information and Monitoring

  • SummaryR-GMAis suitable for Information and Monitoringis a relational implementation of the GGFs GMAhas different Producer typesmediator creates the impression of a single RDBMShas authentication using grid certificateshas been integrated with Gangliahas an API available in multiple languages

    EU DataGrid: Information and Monitoring

  • Further InformationInformation and Monitoring Serviceshttp://hepunx.rl.ac.uk/edg/wp3/

    R-GMAhttp://www.r-gma.org/

    EU DataGrid: Information and Monitoring