cassandra.gif

Apache Cassandra cumple 10 años

En los últimos dos años se han superado varios hitos de 10 años, como los aniversarios de la década de Amazon Web Services, MongoDB, Hadoop y muchos otros. Y así, en 2018, es el turno de Apache Cassandra. En la actualidad, Apache Cassandra se ha transformado en un ecosistema modesto donde hay un proveedor principal de plataformas comerciales, DataStax, complementado por una pequeña colección de empresas que brindan soporte de terceros. Combina la versatilidad de una base de datos orientada a tablas con la velocidad y eficiencia de una tienda de valor clave.

Pero no se equivoque al respecto: el hecho de que no haya una docena de proveedores de distribuciones de Cassandra no oculta el hecho de que Cassandra es una base de datos muy popular. Es una de un cuarteto de bases de datos NoSQL que se encuentran entre las diez mejores de db-Engine. Y en sí misma, Cassandra se ha hecho un hueco para los sistemas continuos en línea que pueden transportar hasta PBytes de datos. Al igual que otras bases de datos de “columna ancha” que comenzaron su vida como almacenes de valores clave, Cassandra fue conocida por primera vez por sus escrituras rápidas, pero a lo largo de los años, el rendimiento de lectura se ha recuperado.

Por ejemplo, cuando recibe recomendaciones de películas en Netflix, provienen de una aplicación que se ejecuta en Cassandra. Ha ganado presencia con el mantenimiento de perfiles de usuario en línea, carritos de compras, detección de fraudes y, cada vez más, aplicaciones móviles y de IoT en tiempo real. De hecho, también lo han hecho la mayoría de los principales competidores NoSQL de Cassandra, como MongoDB, DynamoDB y Cosmos DB.

Como es el décimo cumpleaños, tiene sentido mirar los comienzos de Cassandra. La historia es familiar. Un gigante de Internet, Facebook, necesitaba una alternativa de base de datos más escalable y siempre activa para su función de bandeja de entrada y creó Cassandra en 2008 basándose en el artículo de Dynamo publicado por Amazon. Después de abrirlo, Jonathan Ellis, un ingeniero de Rackspace en ese momento, vio su potencial como una base de datos distribuida para impulsar aplicaciones en la nube, y un año después, atrajo el respaldo de una empresa para cofundar lo que ahora es DataStax con su entonces colega Matt Pfeil.

La mayor fuente de confusión al principio fue con Hadoop. Debido a algunas ridículas coincidencias históricas, Cassandra fue incluida en el proyecto Hadoop, donde todavía aparece en la página del proyecto Apache. Eso implica que Cassandra es un reemplazo en especie de HBase. Bueno, un poco y un poco no. Aunque ambos fueron diseñados inicialmente para ejecutarse como sistemas de producción en línea para big data, HBase requiere HDFS, YARN y Zookeeper para ejecutarse, mientras que Cassandra no requiere componentes de Hadoop y se ejecuta en su propio clúster. Luego hay otras diferencias arquitectónicas, como que HBase se ejecuta con topología jerárquica de Hadoop, mientras que Cassandra funciona en un modo más de igual a igual.

Comparación con los sospechosos habituales

A pesar de los coqueteos de Hadoop, ¿cómo se diferencia Cassandra de los sospechosos habituales de NoSQL? Comenzaremos con el mayor diferenciador: el lenguaje de consulta. Cassandra también tiene un lenguaje de consulta que se parece mucho más a SQL en comparación con la mayoría de sus rivales, excepto Couchbase.

En comparación con MongoDB, Cassandra era más fácil de escribir, pero a medida que maduraron ambas bases de datos, las diferencias en el rendimiento de lectura y escritura ya no son tan marcadas. Cassandra se diseñó inicialmente como una base de datos tabular para datos de valor clave (en comparación con el modelo más similar a un objeto de MongoDB), pero con el tiempo se desarrolló para adaptarse a los documentos JSON. Todavía existen diferencias básicas en la topología de la base de datos: Cassandra se diseñó para escrituras de mayor disponibilidad con su arquitectura multimaestro, mientras que MongoDB usa un solo maestro, pero sugiere administrar la fragmentación para escrituras de mayor disponibilidad.

Entre las contrapartes nativas de la nube, Cassandra comparte linaje con Amazon DynamoDB. Puede encontrar una comparación detallada aquí. Pero a alto nivel, la diferencia obvia es dónde se ejecutan: DynamoDB solo se ejecuta en AWS como un servicio administrado (y lo mismo ocurre con Microsoft Azure Cosmos DB en Azure); Cassandra, por otro lado, puede ejecutarse en cualquier lugar, pero como servicio administrado, DataStax Managed Cloud Service solo se ha introducido recientemente. Tanto Cassandra como DynamoDB le permiten ajustar los niveles de coherencia: Cassandra ofrece cinco opciones para la coherencia, mientras que DynamoDB lo reduce a dos (eventual o fuerte).

En comparación con Microsoft Azure Cosmos DB, la mayor diferencia es el modelo múltiple que es fundamental para la oferta de Azure; en comparación, la versión comercial de Cassandra, DataStax Enterprise, recién está comenzando en este camino, ya que todavía está integrando su modelo gráfico.

¿Estamos en un mundo post-relacional?

Dado que cuatro bases de datos NoSQL han llegado a la corriente principal (según el interés de los desarrolladores registrado por db-Engines), uno pensaría que el asunto se ha resuelto sobre el papel que juegan estas plataformas. Uno estaría equivocado.

Todavía hay un debate saludable. Por un lado, está la exuberancia irracional de estar en un mundo post-relacional. Sí, las bases de datos NoSQL se han vuelto muy populares entre los desarrolladores de bases de datos. Y sí, DataStax tiene su parte de problemas con Oracle, pero estos serán triunfos fuera de la base de back office central de Oracle. En realidad, DataStax y Oracle son amigos enemigos, ya que DataStax Enterprise (DSE) es una de las primeras bases de datos de terceros en ser oficialmente compatible con los servicios bare metal de Oracle Public Cloud, pero estamos divagando.

Afortunadamente, habiendo hablado con Patrick McFadin, el autor de las cinco etapas del duelo, hemos descubierto que sus ideas son mucho más matizadas de lo que sugiere su publicación en el blog. Pero hay muchos otros que adoptan puntos de vista más extremos basados ​​en la noción de que los macrodatos se están convirtiendo en la corriente principal. Por otro lado, está el electorado que todavía cree que NoSQL está sobrevalorado.

La realidad es mucho más gris. El hecho de que las bases de datos NoSQL como Cassandra permitan que el esquema varíe no significa que carezcan de esquema, o que los desarrolladores no deberían molestarse en optimizar la base de datos para tipos específicos de esquemas. En una base de datos NoSQL, el esquema sigue siendo importante y también lo es el diseño de la tabla. Incluso si no diseña el modelo de datos exactamente para las consultas que le va a lanzar, aún debe considerar qué datos tocará la aplicación al diseñar las tablas.

Tampoco descarte lo relacional. Si su aplicación o caso de uso requiere estrictas garantías ACID y datos con integridad referencial, relacional será su elección. Si el caso de uso implica consultas analíticas complejas, tiene un par de opciones. Puede optar por la ruta NoSQL si desnormaliza los datos para mejorar el rendimiento; diseñe la aplicación para que no tenga que depender de complejas combinaciones de tablas; y aproveche los conectores Spark que se están convirtiendo en elementos de casilla de verificación con bases de datos comerciales NoSQL como DataStax Enterprise. Pero si el propósito de la base de datos es únicamente para análisis, NoSQL no será la ruta correcta.

datastaxlogo.png

DataStax y Cassandra hoy

Entonces, ¿qué pasa con Apache Cassandra y DataStax, la empresa que durante la mayor parte de su historia estuvo más estrechamente asociada con la base de datos y el proyecto de código abierto? Se reduce a la naturaleza del proyecto de código abierto. A diferencia de MongoDB, que controla el proyecto de código abierto subyacente y licencia la base de datos bajo la licencia AGPL 3 (que requiere que los desarrolladores contribuyan a la comunidad), Cassandra es un proyecto oficial de la Fundación Apache que se rige por la licencia Apache.

Por lo tanto, DataStax no posee ni controla a Cassandra, y hace un par de años, se retiró del liderazgo del proyecto. DataStax aún contribuye y mantiene su presencia en el proyecto Cassandra, pero la mayor parte de sus energías están en la construcción de las características de la plataforma empresarial a su alrededor. En esencia, DataStax se está convirtiendo en una empresa de software clásica de “núcleo abierto”, una estrategia que no es tan diferente de la de Cloudera en Hadoop.

Con Cassandra en 10, DataStax todavía adopta la plataforma, pero la ve como el punto de partida para funciones adicionales. Se está extendiendo para acomodar análisis y búsqueda con conectividad Spark y nuevas funciones de búsqueda que se han agregado a su lenguaje de consulta CQL. Luego está la adición de graph, que provino de la adquisición de Aurelius en 2015 que trajo a los líderes del proyecto Apache TinkerPop a DataStax. Si bien DataStax todavía está trabajando para integrar completamente el gráfico en su implementación de Cassandra, en la versión DSE 6.0, puede cargar gráficos y tablas de Cassandra al mismo tiempo en su clúster. Y la compañía ahora se está enfrentando a enemigos de la nube como Amazon de frente al implementar el servicio DataStax Managed Cloud en AWS y Azure.

Hay una razón por la que hemos estado viendo todos estos décimos aniversarios en el espacio de big data durante los últimos años. Esto se debe a que en la primera década de la década de 2000, se formó una reacción violenta contra el consenso posterior al año 2000 de que estábamos al final de los tiempos en los que n-tier era la arquitectura de aplicación estándar de facto; .NET y Java fueron las pilas de desarrollo de aplicaciones predominantes; y las bases de datos relacionales se consolidaron como el estándar empresarial. En particular, fueron las experiencias de empresas de Internet como Amazon y Google las que posteriormente derrocaron el orden empresarial de TI cuyas experiencias con las limitaciones de la pila de tecnología posterior al 2000 dieron lugar a las innovaciones que ahora están llegando a la mediana edad.

Una década después, Cassandra ya no es la chica nueva de la cuadra. Pero la base de datos se ha convertido en uno de los accesorios de los sistemas operativos modernos, y la empresa más asociada con ella la está utilizando como punto de partida hacia una plataforma más amplia.

Similar Posts

Leave a Reply