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 utiliza específicamente para referirse a una base de datos distribuida donde los usuarios almacenan información en varios nodos , o una red informática en la que los usuarios almacenan información en varios nodos de red pares . [2]
Las bases de datos distribuidas suelen ser bases de datos no relacionales que permiten un acceso rápido a los datos en una gran cantidad de nodos. Algunas bases de datos distribuidas ofrecen capacidades de consulta avanzadas, mientras que otras se limitan a una semántica de almacenamiento de clave-valor . 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 consistencia. Pero el acceso de lectura/escritura de alta velocidad da como resultado una consistencia reducida, ya que no es posible garantizar tanto la consistencia como la disponibilidad en una red particionada, como lo establece el teorema CAP .
En los almacenes de datos de redes entre pares, el usuario puede normalmente corresponder y permitir que otros usuarios utilicen su ordenador como nodo de almacenamiento también. La información puede ser accesible o no para otros usuarios según el 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 solo están disponibles cuando su nodo está en la red. Sin embargo, esta distinción es un tanto difusa en un sistema como BitTorrent , donde es posible que el nodo de origen se desconecte pero el contenido continúe siendo entregado. Aún así, esto solo es así para 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 de reenvío para recuperar el archivo original cuando partes de ese archivo están dañadas o no están disponibles. Otros intentan descargar ese archivo nuevamente desde un espejo diferente.
GFS proporciona a Google un almacenamiento de archivos distribuido escalable y confiable, no proporciona ninguna función 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 búsquedas y actualizaciones rápidamente 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 sorprenderle: un tema persistente en todos estos documentos sobre almacenes de datos distribuidos a gran escala es que los RDBMS son difíciles de hacer con un buen rendimiento. No existe un esquema fijo y estricto en una Bigtable, no hay integridad referencial entre tablas (por lo que no hay claves externas) y, por lo tanto, hay poco soporte para uniones optimizadas.
Dynamo: un almacén de datos distribuido escalable y de alta disponibilidad