Un almacén de datos distribuido es una red informática donde la información se almacena en más de un nodo , a menudo de forma replicada . [1] Por lo general, se usa específicamente para referirse a una base de datos distribuida donde los usuarios almacenan información en varios nodos , o a una red informática en la que los usuarios almacenan información en varios nodos de la red de pares . [2]
Las bases de datos distribuidas suelen ser bases de datos no relacionales que permiten un acceso rápido a los datos a través de una gran cantidad de nodos. Algunas bases de datos distribuidas exponen capacidades de consulta enriquecidas, mientras que otras se limitan a una semántica de almacenamiento de valores clave . Ejemplos de bases de datos distribuidas limitadas son Bigtable de Google , que es mucho más que un sistema de archivos distribuido o una red peer-to-peer , [3] Dynamo de Amazon [4] y Microsoft Azure Storage . [5]
Como la capacidad de realizar consultas arbitrarias no es tan importante como la disponibilidad , los diseñadores de almacenes de datos distribuidos han aumentado esta última a expensas de la coherencia. Pero el acceso de lectura/escritura de alta velocidad da como resultado una coherencia reducida, ya que no es posible garantizar tanto la coherencia como la disponibilidad en una red particionada, como lo establece el teorema CAP .
En los almacenes de datos de redes de pares, el usuario generalmente puede corresponder y permitir que otros usuarios también usen su computadora como nodo de almacenamiento. La información puede ser accesible o no para otros usuarios dependiendo del diseño de la red.
La mayoría de las redes peer-to-peer no tienen almacenes de datos distribuidos, ya que los datos del usuario sólo están disponibles cuando su nodo está en la red. Sin embargo, esta distinción es un tanto borrosa en un sistema como BitTorrent , donde es posible que el nodo de origen se desconecte pero el contenido continúe sirviéndose. Aun así, este es sólo el caso de los archivos individuales solicitados por los redistribuidores, a diferencia de redes como Freenet , Winny , Share y Perfect Dark , donde cualquier nodo puede almacenar cualquier parte de los archivos en la red.
Los almacenes de datos distribuidos suelen utilizar una técnica de detección y corrección de errores . Algunos almacenes de datos distribuidos (como Parchive sobre NNTP) utilizan técnicas de corrección de errores hacia adelante para recuperar el archivo original cuando partes de ese archivo están dañadas o no están disponibles. Otros intentan nuevamente descargar ese archivo desde un espejo diferente.
Aunque GFS proporciona a Google un almacenamiento de archivos distribuido confiable y escalable, no proporciona ninguna facilidad para estructurar los datos contenidos en los archivos más allá de una estructura de directorio jerárquica y nombres de archivo significativos. Es bien sabido que se requieren soluciones más expresivas para grandes conjuntos de datos. Los terabytes y terabytes de datos de Google que recupera de los rastreadores web, entre muchas otras fuentes, necesitan organizarse, de modo que las aplicaciones cliente puedan realizar rápidamente búsquedas y actualizaciones con una granularidad más fina que el nivel de archivo. [...] Lo primero que debe saber sobre Bigtable es que no es una base de datos relacional. Esto no debería sorprender: un tema persistente en todos estos artículos sobre almacenes de datos distribuidos a gran escala es que es difícil hacer RDBMS con un buen rendimiento. No existe un esquema rígido y fijo en Bigtable, ni integridad referencial entre tablas (por lo tanto, no hay claves externas) y, por lo tanto, poco soporte para uniones optimizadas.
Dynamo: un almacén de datos distribuido altamente disponible y escalable