Cassandra vs Riak
(5)
Como usted probablemente sabe, ambos están fuertemente influenciados arquitectónicamente por Dynamo (finalmente consistente, sin puntos únicos de falla, etc.). Ambos también van más allá de Dynamo al proporcionar un modelo de datos "más rico que K / V puro", en el caso de Cassandra, proporcionando un modo de familia de columnas de tipo Bigtable, en Riak, uno orientado a documentos. He visto a personas sanas elegir ambos.
Creo que los puntos que favorecen a Cassandra incluyen
- velocidad
- Soporte para clusters que abarcan múltiples centros de datos.
- grandes nombres que lo usan (digg, twitter, facebook, webex, ... - http://n2.nabble.com/Cassandra-users-survey-tp4040068p4040393.html )
Los puntos que favorecen a Riak incluyen
- mapear / reducir soporte fuera de la caja
/ Cassandra dev, fwiw
Estoy buscando un almacén de datos eventualmente consistente y parece que se está reduciendo a Riak o Cassandra. ¿Alguien tiene experiencia en esto?
El uso y la descarga son diferentes. Lo mejor para obtener referencias.
¿Quizás se podría tener una conversación privada donde las referencias de Riak en estas compañías podrían ser compartidas? No estoy seguro de cómo lograrlo con Cassandra, pero hay una comunidad de compañías que apoyan a Cassandra que parece ser un buen lugar para comenzar. Como estos probablemente tienen participantes de la comunidad en el desarrollo de Cassandra, puede ser un lugar REALMENTE razonable para comenzar.
Me gustaría escuchar la respuesta de Riak a implementaciones grandes y recientes donde los clientes están contentos.
También me gustaría ver la hoja de ruta para cada producto. Cassandra es un poco más fácil de rastrear (http://wiki.apache.org/cassandra/) que Riak, en mi opinión, ya que la wiki de Cassandra analiza las limitaciones y las cosas que probablemente vayan a cambiar en el futuro, pero tampoco esbozan los futuros. Podría entender eso de una comunidad de código abierto ... quizás ... pero no puedo por un producto por el cual debo pagar.
Para completar: una buena comparación (probablemente sesgada) entre los dos se puede encontrar en http://docs.basho.com/riak/1.3.2/references/appendices/comparisons/Riak-Compared-to-Cassandra/
Riak es utilizado por
- Fundación Mozilla
- Ask.com patrocinado listados
- Comcast
- Citigroup
- Bet365
Creo que ambos pasan la prueba de clientes / usuarios de referencia creíbles.
Cassandra parece más madura, y actualmente está mejorando en los puntos de referencia. Riak parece más fácil agregar un nodo a medida que tu clúster crece.
También sugeriría la investigación de Cloudant, que tiene lo que parece ser una muy buena combinación de capacidades. También parece que está poniendo en práctica las capacidades en otras partes de la tierra de Apache. CouchDB es la plataforma Apache en la que se basa Cloudant. PERO la indexación con Lucene parece solo la punta del iceberg cuando se trata de donde Cloudant podría ir. La creación y administración de un índice es un proceso muy sistemático, un tipo de canalización de datos, que se puede generar mediante scripts utilizando otros activos de la comunidad de Apache. Las capacidades AND como la PNL también podrían agregarse a través de Lucene indirectamente, o tal vez directamente en lo que se persiste.
Sería bueno ver una hoja de ruta propuesta de Cloudant, especialmente porque el equipo podría explotar las riquezas de la comunidad Apache e integrarse en Cloudant. Es probable que exista, ya que hay un componente operacional para el modelo de ingresos de Cloudant que lo requerirá, por ninguna otra razón.
Otra área de interés ... el modelo de precios de Cloudant ... está claro que su modelo de ingresos no se basa en el software, sino en el servicio. Eso es bastante atractivo, y parece ser consistente con el ecosistema que rodea a Cassandra también. No sé si la gente de Basho ya se ha ganado lo suficiente de la comunidad de nosql ... no lo veo por ningún rumor en su sitio web o producto.
Me gusta esta página web de Cloudant (https://cloudant.com/the-data-layer/). Me sorprendió ver la capacidad integrada de Erlang ... No sabía que CouchDB estaba escrito en Erlang porque me parece extraño en la comunidad apache (mi ignorancia); CouchDB parece ser más antiguo que otros productos de nosql que conozco (ahora) que están escritos en Erlang. Cualquiera que sea su estrategia, al menos cuentan con Amazon EC2 y Microsoft Azure como socios de alojamiento, lo que indica una apreciación de Microsoft y de los mundos de Microsoft; todo esto es muy importante si se reconoce correctamente el potencial de valor de middleware (más allá de las aplicaciones de la tabla caché o hash) que este tipo de datos Las tiendas podrían tener.
Finalmente, aunque no conozco bien a la junta directiva, la orientación de Andy Palmer parece que será valiosa. Puede brindar orientación en relación con los datos estructurados (a través de VoltDB) a un mundo que, de forma correcta o incorrecta, puede ser calificado injustamente como tablas hash KVP de datos no estructurados. La necesidad de estructura y ecosistema que rodea a las "bases de datos" nosql está siendo reconocida ... presenciar los esfuerzos de Google con Spanner ... KVP / poca estructura / necesidad de capacidad de búsqueda motivada por la inversión de Google en el espacio Spanner. Si bien es posible que no todos necesitemos algo como Spanner, es probable que necesitemos una capacidad de gestión e interoperabilidad "empresarial" mejorada y robusta en estas bases de datos nosql para que sea razonable incorporarlos en las arquitecturas de nube modernas. La estructura necesaria puede provenir de la facilidad de interoperabilidad y la riqueza funcional. También puede provenir de nuevas capacidades que admiten la conversión de datos no estructurados a datos estructurados (por ejemplo, índices, uso de PNL para crear representaciones estructuradas y analizadas de cosas dentro de una burbuja KVP, y muchas otras cosas que, si se ponen en una hoja de ruta y publicado, podría atraer y hacer crecer una base de usuarios). Cloudant parece que tiene una buena probabilidad de éxito ... Lo veré más de cerca ...
Y mira lo que encontré sobre CouchDB ...
CouchDB viene con un conjunto de características, como la transformación de documentos sobre la marcha y las notificaciones de cambios en tiempo real, que hacen que el desarrollo de aplicaciones web sea muy fácil. Incluso viene con una consola de administración web fácil de usar. Lo has adivinado, servido directamente de CouchDB! Nos preocupamos mucho por la escala distribuida. CouchDB es altamente disponible y tolerante a la partición, pero también es consistente. Y nos preocupamos mucho por sus datos. CouchDB tiene un motor de almacenamiento tolerante a fallos que pone en primer lugar la seguridad de sus datos.