Wed, 24 Mar 2010
Couchdb, Cassandra ... a l'ull de l'huracà.
Fa pocs dies es va fer pública per part de digg la notícia de la migració de tota la seva arquitectura LAMP basada principalment en emmagatzematge relacional sota MySql a un arquitectura noSQL. Per una referència ràpida sobre noSQL visiteu aquest post de l'Oriol.Arrel d'aquest fet i de la posterior inclusió de couchdb en un dels projectes que estic treballant últimament m'he intentat respondre algunes preguntes. Potser antagòniques entre ells a simple vista però que en el fons volen seguir el mateix fil conductor : l'escalabilitat.
Quins motius porten a migrar a noSQL a la gent de digg?
Digg migra a aquest nou paradigma per un motiu obvi - i així ho reflecteixen : l'actual estratègia d'optimització de l'arquitectura sql els ha allunyat totalment de les possibilitats d'utilitzar les avantatges convencionals de les bases de dades relacionals.
Aquest darrer paràgraf cal llegir-lo tenint en compte les actuals estratègies que s'utilitzen per tal de donar cabuda a milers de milers de connexions simultànies al servei - víctimes del seu propi èxit. Una d'aquestes estratègies és l'anomenat data sharding, disciplina que té com objectiu separar les dades en troços més petits per aconseguir que aquestes subdivisions siguin suficientment petites com per ser computacionalment computables en una maquina per ella mateixa.
Aquests mecanismes, sharding entre d'altres, obliguen a mantenir instàncies no connectades - a nivell físic i no de lògica - de bases de dades sql que no poden explotar les suposades avantatges de les bases de dades relacionals - com faríem una consulta per clau forana si les taules es troben disperses en diferents instàncies ?
Davant d'aquest fet, l'us d'un sistema no sql és d'obligat compliment.
Són couchdb, cassandra, etc els pioners ?
No. Couchdb, Cassandra són una imitació de la ja coneguda BigTable de Google. Google ja va en el seu moment arribar a la conclusió que calia aplicar mecanismes de divideix i venceràs a les seves arquitectures i que aquesta assumpció portaria directament a l'ús de sistemes d'emmagatzematge del tipus noSQL.
És couchdb una solució implicitament concurrent ?
Per desgràcia No, tal com es pot llegir en un dels seus llibres cal seguir aplicant tècniques de sharding i per tan algoritmes de distribució basades amb consistent hashing - amb totes les problemàtiques implícites que involucre - per tal de poder fer particionament de les dades en múltiples instàncies no connectades de bases de dades.
Posted at: 00:52 | category: /noSQL | Comments (608)