Su quali basi scegliere una soluzione per la gestione dei propri dati? Limitandosi agli engine Open Source, è meglio adottare un classico database relazionale ad oggetti come per esempio PostgreSQL o un gestionale di tipo non relazionale, orientato ai documenti e NoSQL come MongoDB? Naturalmente la risposta più corretta in questi casi è "dipende dalle caratteristiche del progetto", ma gli sviluppatori di Errbit hanno voluto spendere di recente una parola in favore dell'RDBMS.
Errbit è un error catcher libero (MIT License), uno strumento utilizzabile per la raccolta e la gestione degli errori prodotti da un'applicazione durante in suo funzionamento; grazie ad esso sarà possibile rilevare, anche dietro un firewall, se le eccezioni generate presentano dati sensibili la cui trasmissione dovrà essere evitata, identificare le varie tipologie di errori verificatisi per ciascuna App e capire quanto la loro registrazione incida sulle risorse di sistema a livello di spazio e memoria.
Secondo quanto riportato su GitHub da realmyst di Errbit, quest'ultimo verrebbe utilizzato dagli stessi sviluppatori di Undev per testare centinaia di progetti simultaneamente connessi e in grado di produrre giornalmente migliaia di errori; attraverso tale attività e all'analisi dei report dei server, sarebbe stato possibile scoprire che il 98% dei malfunzionamenti rilevati era dovuto all'utilizzo di MongoDB per la gestione delle proprie basi di dati.
In pratica sarebbe stata rilevata una crescita del volume dei dischi pari a circa 3 o 4 volte rispetto al reale volume dei dati allocati; le conseguenza di questo fenomeno sarebbero state un consumo sovradimensionato e non limitabile di memoria e un generale rallentamento delle prestazioni dovuto al continuo accesso ai dischi; Errbit avrebbe smesso di funzionare una volta raggiunto il limite massimo di memoria disponibile a meno di non disporre di spazio aggiuntivo.
Quanto rilevato avrebbe portato alla decisione di effettuare una migrazione verso PostgreSQL tramite la rimozione di mongoid (l'Object-Document-Mapper per MongoDB scritto Ruby), l'introduzione dell'ActiveRecord e la realizzazione di un apposito migrator per i dati allocati. La messa in produzione della nuova infrastruttura si sarebbe quindi tradotta in una diminuzione degli errori generati.
L'esperienza riportata non andrebbe però considerata come il consiglio di escludere del tutto MongoDB dai propri progetti, ma più propriamente come una testimonianza sull'utilità degli error catchers.
Via Errbit