Couchbase all’ Istituto Nazionale di Fisica Nucleare

Home  >>  Couchbase News  >>  Couchbase all’ Istituto Nazionale di Fisica Nucleare

Couchbase all’ Istituto Nazionale di Fisica Nucleare

On maggio 19, 2014, Posted by , In Couchbase News, With No Comments

In una delle mie recenti peregrinazioni su internet mi sono imbattuto in questo link http://chaos.infn.it

in cui si parla di un progetto che l’ INFN , Istituto Nazionale di Fisica Nucleare, sta portando avanti da qualche tempo.

Il progetto si chiama !CHAOS (Control system based on Higly Abstracted and Open Structure) e si propone di definire e validare un nuovo paradigma per i sistemi di controllo e acquisizione degli acceleratori di particelle.
Leggendo tra le varie pagine che illustrano quale sia lo scopo del progetto ho trovato questo stralcio …

Un altro esempio sono i sistemi di distributed object caching che sono utilizzati, in maniera trasparente per gli utenti, per immagazzinare insiemi d’informazioni frequentemente richieste ( …..) Queste due tecnologie software, citate ovviamente non a caso, rappresentano il nucleo centrale del modello di sistema di controllo che si vuole sviluppare con l’esperimento !CHAOS. In particolare il key/value database (KVDB) sarà il sistema con cui verrà realizzato il servizio DAQ di archiviazione di quelli che definiamo history data, mentre il distributed object caching (DOC) sostituirà i protocolli di comunicazione client/server per la distribuzione dei live data, cioè le informazioni che in tempo reale saranno distribuite dai controller di front-end verso le console di operatore o gli applicativi di misura.

La mia attenzione è ovviamente caduta sulla frase “distributed object caching (DOC)

Non vi viene in mente niente ???

Tengo a precisare che sono un po’ di parte, la fisica delle particelle mi ha sempre affascinato, vedere quanto c’è di grande nell’ infinitamente piccolo
è qualcosa di mistico e se non facessi il lavoro che faccio, forse oggi sarei con i ragazzi INFN :)

Tralasciando le mie personali elucubrazioni , volevo ricordarvi, qualora non lo sapeste, che a Frascati è presente l’acceleratore tuttora piu’ grande che abbiamo in Italia e si chiama DAFNE
Per farla estremamente semplice (ragazzi dell’ INFN non odiatemi) potremmo dire che DAFNE è un cocktail composto da tre parti:
due parti di hardware, un’ acceleratore lineare e un doppio anello di accumulazione,dove avvengono le collisioni fra elettroni e positroni ed una di software, un sistema di controllo

A questo punto la domanda sorgeva spontanea

Useranno forse Couchbase all’ interno del sistema di controllo dell’ Acceleratore di Particelle ???
Ero diventato troppo curioso e dopo un po’ di ricerche, sono riuscito a contattare Claudio Bisegni ,
il responsabile dello sviluppo del progetto !CHAOS e a fargli qualche domanda

 

Massimo: Ciao Claudio, Di cosa ti occupi all’ INFN?

Claudio: Ciao Massimo, innanzi tutto grazie di avermi contattato. Nell’ INFN  mi occupo di sviluppo software ad uso Locale e Nazionale. L’istituto conta diverse sedi e laboratori sparsi per l’Italia e quindi stiamo sviluppando servizi ad hoc per una soluzione generale dei problemi. Ovviamente tutti i servizi  ricadono sempre nella ricerca. Il computing ormai e’ uno dei principali vettori di risultati, senza di esso la grande mole di dati,che la moderna ricerca dei fenomeni fisici richiede,sarebbe impossibile da gestire.

Uno dei primi progetti da me realizzati e’ stato quello del gruppo AAI (Authentication and Authorization Infrastructure). In pratica un gestore delle identita’ digitali che permette l’autenticazione SAML e l’autorizzazione automatica secondo determinate logiche programmabili. Questo prodotto e’ tuttora usato per autenticare le identità (persone e software)  o per compiere azioni nell’infrastruttura tecnologiche messe a disposizione dei laboratori. Ovviamente si va dall’accesso alla mensa, all’uso come coordinatore di una mailing lists, o all’accesso ad un’area riservata. Con un software gestiamo praticamente tutto.

 

Massimo: Cos’è !CHAOS ?

Claudio: !CHAOS (Control system base on a Highly Abstracted and Open Structure) e’ un nuovo progetto INFN, mirato invece a migliorare il controllo di grandi e piccoli apparati, di fatto rivolto alla ricerca. L’idea e’ quella di ridisegnare il vecchio sistema di controllo in dafne, che vanta il primato di essere il primo controllo per acceleratori realizzato usando normali personal computer.
Nel progetto, come e’ deducibile dall’acronimo, abbiamo cercato di realizzare un sistema  fortemente basato sull’astrazione dei dati, il che ci porta al concetto di schema-less. Se fai una ricerca  su google, schema-less e’ associato quasi sempre ai nosql. Durante le prime fasi di studio di !CHAOS il filo conduttore  era quello di poter controllare un alto numero di strumentazione composta da una grande varietà di canali(I/O) differenti tra loro. Tra l’altro lo scopo di chaos e’ anche quello  di fornire un archivio storico per i dati acquisiti e permetterne la ricerca. !CHAOS quindi doveva permettere il monitoraggio e ilcontrollo di strumentazione in tempo reale, contemporaneamente all’archiviazione dei dati ricevuti. Ci tengo a sottolineare che !CHAOS ha vinto un progetto del MIUR. Quindi ci stanno finanziando per portarlo avanti, nella sua espressione di “Big Data per il Cloud”, al link http://giovannimazzitelli.wordpress.com/2014/04/10/una-nuvola-di-controlli/ un articolo che dettagli il progetto.
Massimo: Usate veramente Couchbase all’ interno del vostro progetto ?
Claudio: Si lo stiamo usando, ma ‘e interessante capire come ci siamo arrivati.  !CHAOS doveva quindi permettere il controllo e la visualizzazione realtime dello stato di ognuno di essi. Studiando un possibile modo di condivisione dei dati, ho cominciato a pormi il problema di come reperire più velocemente  l’ultimo  generato. Ho scartato da subito l’idea di permettere a piu’ console di collegarsi direttamente al software che gestisce lo strumento (immagina centinaia di console che interrogano un schedina ARM che controlla un magnete…);da  qui ho cercato di capire come si comportassero i database a questo scopo e usando i normali database SQL ho dovuto creare una struttura relazionale per gestire strutture dati eterogene. Questo portava ad una lentezza di inserimento  dati non adatto ai nostri scopi ed ho capito che non avrei potuto usare i normali db. Mi sono quindi messo a studiare l’ampio mondo dei database NoSQL, in pratica i “document-based database”. E’ stato da subito evidente come le operazioni di insert risultassero nettamente piu’ veloci rispetto ad una corrispettiva insert su DB relazionale. Nel nostro caso una transazione, nel db relazionale, avrebbe dovuto avere inserimenti in differenti tabelle prima di poter andare a buon fine. Il primo dei NoSQL testati e’ stato MongoDB. Ottimo, veloce e veramente in grado di scalare su grandi quantita’ di nodi(cosa praticamente impossibile per i normali database sql).
L’inserimento sembrava risolto, andava studiato ora il fetch dell’ultimo dato generato. Questo andava fatto in modo da avere il minor ritardo possibile. A questo punto ebbi una mezza delusione. Anche se estremamente piu veloce (con alti carichi di richieste da piu client) rispetto ai fratelli SQL anche i NoSQL, per “trovare” i dati devono, in qualche modo, eseguire una query su degli indici e andare a prendere il dato su disco o nei migliori di casi in cache e ritornarli. Durante i mie tests, MongoDB si comportava spesso bene a volte, ovviamente, ottenevo dei ritardi di secondi (quindi non proprio lento). Ovviamente questo accadeva quando avevo un alto carico di inserimenti con un alto carico di letture.

A noi di !CHAOS pero’ serviva di piu’.

Soprattutto con un ritardo massimo costante dato un determinato numero di lettori e inserimento.
Un giorno mi sono imbatutto nelle cosi dette shared-cache realizzate usando i normali PC e da subito ho provato il popolare Memcached. E qui e’ stato amore a prima vista. Estremamente veloce e durante prove durate giorni non ha mai collassato o aumentato il ritardo medio nelle risposte. E soprattuto riuscivamo ad avere ritardi di pochissimi millisecondi (< 5) tra inserimento e lettura del dato. Ovviamente aumentando il numero di lettori e scrittori, e rilanciando il test, il ritardo massimo aumentava però aveva un suo massismo che non veniva mai superato. Il perche di tante performance è semplice: tutto e’ tenuto in ram, uso di slab per la minimizzare dell’overhead dell’allocazione della memoria, indice semplicissimo basato su hastable ben fatta. Questi punti facevano vincere alle shared-cache il primo posto nella gara della scelta del software da usare per il data-shared cache in !CHAOS.
Questa lunga premessa per arrivare a Couchbase.

Massimo:Perchè avete scelto Couchbase ?

Claudio: Stiamo studiando couchbase perche’ ci sembra essere la versione enterprise di memcached. Noi siamo quasi obbligati ad usare la versione opensource. Da subito abbiamo notato quanto fosse semplice, praticamente banale, mettere in piedi un cluster  . In pratica fa tutto da solo. L’sdk ,noi usiamo quello in c,  riesce a capire la topologia dei nodi del cluster  e quando cambia, si  aggiorna automaticamente. Il suo sistema di HA e’ molto funzionale e velocissimo. Ovviamente tutto e’ migliorabile quindi anche couchbase puo’ migliorare, soprattuto nel failover automatico che per i nostri scopi è troppo lento(di default 30 secondi) ma questo è solo un problema di configurazione.

Infatti eseguendo il failover a mano tutto va splendidamente.

Tra l’altro ha molti SDK per i noti linguaggi di programmazione. Noi usiamo quello in c.

Se mi permetti vorrei ringrazione Giovanni Mazzitelli(http://giovannimazzitelli.wordpress.com) e Alessandro Stecchi che coordinano il progetto esecutivo di !CHAOS e la sua Applciaizone sulle infrastrutture dei Laboratori Nazionali di Frascati

Grazie Claudio a presto e buon lavoro

 

Saluti anche a te, a presto

 

 

Lascia un Commento