21 febbraio 2006

MySQL verso Firebird


Le recenti acquisizioni di Oracle sono state recentemente completate da Sleepycat software (leggi post a riguardo), ovvero BerkeleyDB, che fa anche parte degli storage engines di mysql.
Mysql sembra quindi come privato della piena disponibilità dei suoi motori "transazionali" di ricerca. Sotto questa luce diventa maggiormente comprensibile la recente contromossa di mysql dell'acquisto di Netfrastructure, che offre una implementazione di Firebird.
È interessante la lettura dell'articolo relativo nelle Firebird news, specialmente nella parte centrale, dove si afferma che la mossa di mysql valida il fatto che Firebird possiede un codice più maturo e ricco. Sembra quindi che l'evoluzione futura di mysql vada verso l'implementazione delle transazioni tramite l'adozione dell'architettura Firebird.

Nella foto: il logo firebird sulle Pontiac americane :-)

19 febbraio 2006

Oracle acquisisce Sleepycat

È una notizia di ieri l'acquisizione di Sleepycat software da parte di Oracle.
Il link del titolo di questo post porta all blog di arstechnica, l'articolo migliore che ho trovato fin'ora, che mi ha spinto a commentare la notizia; sulla pagina del comunicato stampa di Oracle si trovano comunque tutte le ragioni dell'azienda.
Personalmente ho trovato molto interessante DBXML, versione XML nativa di Berkeley DB. Ho cominciato a leggere la documentazione e fare qualche prova sul mio portatile con Ubuntu, e le prime impressioni sono favolose. Per lavoro maneggio milioni di documenti XML, e questo database mi apre muovi e interessantissimi orizzonti. È un db XML nativo, quindi è possibile immagazzinare direttamente i documenti e poi eseguire query con XQuery e indicizzare il contenuto.
L'acquisizione di Oracle continua, a mio giudizio, la politica di mettere le mani nei prodotti open-source, e nello stesso tempo offrire una gamma di prodotti diversificata, ma questo è puro marketing. Dal punto di vista tecnico stiamo parlando di prodotti molto diversi (es. InnoDB di mysql), che non vanno a cambiare l'ordine delle cose.

14 febbraio 2006

Cluster MySQL

Dalla versione 5 di mysql è presente la funzionalità di clustering, che a detta della pagina del prodotto prometterebbe velocità, stabilità, ecc.
Dopo gli entusiasmi iniziali dati dalla lettura del capitolo del manuale che parla di cluster mysql, mi sono imbattuto verso la fine nelle "Known limitations"; infatti il server mysql in realtà poggia le proprie capacità di clustering sul motore del database, ovvero ciò che immagazzina effettivamente i dati, separato dal server che li elabora. Per fare un paragone, siamo sempre nel caso della differenza tra le tabelle myisam e innodb: se le prime possono avere indici fulltext, le seconde no, ma hanno le transazioni.
Per il cluster c'è un altro motore di database chiamato NDB, che ha caratteristiche sue particolari e deve essere specificato in fase di creazione delle tabelle; le tabelle che andrete quindi a creare nel cluster non saranno né myisam né innodb.

  • Gli indici fulltext non sono supportati, come i tipi di dati geografici

  • Il livello di isolamento è read committed (c'è da capire come si comporti il database in un caso reale con gli accessi contemporanei - le prove fatte in passato non erano molto confortanti)

  • Tutte le righe delle tabelle sono di lunghezza fissa (!)

  • La lunghezza massima di ogni riga è di 8 KB (!)

  • Nessun supporto per foreign key


Come al solito ci si trova davanti ad un prodotto innovativo, ma con pesanti limitazioni, che possono anche annullare i vantaggi. Tipico alla mysql.
Spero di potere presto fare qualche prova.

10 febbraio 2006

Migrazioni verso Oracle

Scopro oggi che Oracle ha un centro dedicato alla migrazione da altri database. L'applicazione è il migration workbench.

Ah, aggiornate il feed RSS del blog: http://feeds.feedburner.com/RDBLand

Che cosa manca a MySQL?

Ce lo dice Monty Widenius, in un'intervista per Linux Magazine dell'11 novembre 2005:

Linux Magazine: [...] However, what desirable Oracle -- or other database -- features are still needed in MySQL?

Monty Widenius: Oracle has a lot more performance indicators than MySQL (which makes it easier to tune Oracle for different kinds of load). We want to extend the status information and tuning parameters in MySQL to allow advanced users to do similar things with MySQL.
Partition is also a nice feature that exists in other databases and we are working on having our own partition solution. (First version of this will be in 5.1)
Advanced replication with better conflict resolution and federated tables to other databases are also on the roadmap.
And of course, we are always working on making MySQL even faster for a an even broader set of cases.

Di concorrenza e transazionalità nessun accenno.