Sistema de archivos CassandraEl sistema de archivos Cassandra, más conocido como CFS, es un sistema de archivos distribuido compatible con Hadoop Data File System (HDFS) y desarrollado por DataStax, Inc. DataStax creo este sistema de archios distribuido para que trabajara en conjunto con sus aplicaciones y Cassandra la cual es una base de datos distribuida NoSQL. CFS fue diseñado para reemplazar los daemon o demonios NameNode, Secondary NameNode y DataNode de HDFS.[1] Es un almacén de columnas amplio y un sistema de gestión de bases de datos NoSQL que está diseñado para manejar grandes cantidades de datos en muchos servidores con baja latencia.
Esto genera que si NameNide falla, entonces todo el sistema falla, por lo que, el sistema de archivos Cassandra sigue una arquitectura con varios nodos peer-to-peer, también llamada anillo, con el objetivo de disminuir los fallos. Características
Funciones principalesCFS read pathCFS read path se utiliza porque para la lectura es necesario partir de un archivo o parte de este, por lo que, es necesario que se lea la información de "inode" para encontrar los bloques y sub bloques que se deben de leer. Una vez hecho lo anterior se ejecuta una llamada personalizada que retorna los datos del sub bloque o, en caso de que la llamada haya sido en un nodo con los datos locales, el archivo y la información de compensación de la tabla “SSTable” de Cassandra y el sub bloque respectivo. CFS write pathEn el caso de Hadoop, se tiene un parámetro que se llama “dfs.block.size” el cual nos dice el teamaño de que tan grande tiene que ser un bloque de archivo por cada archivo de escritura existente, cuando este llega, los atributos estáticosse escriben en la columna familia de "inode". Posteriormente se ejecuta “dfs.block.size” por cada dato y, mientras se hace la lectura de los datos, los datos se van dividiendo en sub bloques con tamaños que se obtienen de la función “cfs.local.subblock.size”, estos sub bloques generados se comprimen para que cada bloque tenga escrito su ID en "inode", mientras que los bloques secundarios se escriben en Cassandra con su respectivo ID, donde la llave de la fila será el ID del bloque y los ID de los sub bloques como llaves de columna. Limitaciones
Debido a que Cassandra no fue diseñada para almacenar grandes cantidades de datos binarios como una celda individual, los archivos en CFS se tienen que dividir en bloques y sub-bloques donde cada uno es de 2MB por default. Un bloque es almacenado en una tabla de particiones y un sub-bloque se almacena en tabla de celdas. La tabla de Inodes almacena los metadatos del archivo así como el nombre o los atributos y una lista de identificadores de bloques. Conceptos útiles
Recursos que almacenaTodos los datos de recursos recopilados por los servicios siguientes se envían al servicio de gestión de recursos, que almacena todos estos datos en la base de datos Cassandra:
DesusoCFS ha quedado en desuso y se reemplazó con un sistema de archivos DataStax Enterprise (DSEFS). DSEFS está disponible como una opción en DSE 5.0 (DataStax Enterprise) y se convirtió en el sistema de archivos distribuido predeterminado en DSE 5.1.[2] Referencias
|