Riak (pronunciado "ree-ack" [2] ) es un almacén de datos de valor clave NoSQL distribuido que ofrece alta disponibilidad, tolerancia a fallas, simplicidad operativa y escalabilidad. [3] Además de la versión de código abierto , viene en una versión empresarial compatible y una versión de almacenamiento en la nube . [3] Riak implementa los principios del artículo Dynamo de Amazon [4] con gran influencia del teorema CAP . Escrito en Erlang , Riak tiene replicación de datos tolerante a fallas y distribución automática de datos en todo el clúster para mejorar el rendimiento y la resistencia. [5]
Desarrollador (es) | Tecnologías Basho |
---|---|
Versión inicial | 17 de agosto de 2009 |
Lanzamiento estable | 3.0 / 19 de agosto de 2020 [1] |
Repositorio | |
Escrito en | Erlang |
Sistema operativo | Linux , BSD , macOS , Solaris |
Plataforma | IA-32 , x86-64 |
Tipo | Base de datos NoSQL, almacenamiento en la nube |
Licencia | Licencia Apache 2.0 |
Sitio web | riak |
Riak tiene licencia mediante un modelo freemium : las versiones de código abierto de Riak y Riak CS están disponibles, pero los usuarios finales pueden pagar por funciones y soporte adicionales. [5]
Riak tiene un backend conectable para su almacenamiento central, y el backend de almacenamiento predeterminado es Bitcask . [6] LevelDB también es compatible.
Principales características
- Disponibilidad tolerante a fallas
- Riak replica los almacenes de claves / valores en un clúster de nodos con un n_val predeterminado de tres. En el caso de interrupciones del nodo debido a la partición de la red o fallas de hardware, los datos aún se pueden escribir en un nodo vecino más allá de los tres iniciales y volver a leer debido a su arquitectura peer-to-peer "sin maestro".
- Consultas
- Riak proporciona una API REST a través de HTTP y búferes de protocolo para funciones básicas PUT, GET, POST y DELETE. También son posibles consultas más complejas, incluidos índices secundarios, búsqueda (a través de Apache Solr ) y MapReduce . MapReduce tiene soporte nativo tanto para JavaScript (usando el tiempo de ejecución de SpiderMonkey ) como para Erlang.
- Latencia predecible
- Riak distribuye datos entre nodos con hash y puede proporcionar un perfil de latencia, incluso en el caso de múltiples fallas de nodos.
- Opciones de almacenamiento
- Las claves / valores se pueden almacenar en la memoria, en el disco o en ambos.
- Replicación de varios centros de datos
- En la replicación de múltiples centros de datos, un clúster actúa como un "clúster principal". El clúster principal maneja las solicitudes de replicación de uno o más "clústeres secundarios" (generalmente ubicados en otras regiones o países). Si el centro de datos con el clúster principal deja de funcionar, un segundo clúster puede asumir el control como el clúster principal.
- Hay dos modos principales de funcionamiento: sincronización completa y tiempo real. En el modo de sincronización completa, se produce una sincronización completa entre los clústeres primarios y secundarios, de forma predeterminada cada seis horas. En el modo de tiempo real, la replicación en los centros de datos secundarios se activa mediante actualizaciones en el centro de datos principal. Toda la replicación de múltiples centros de datos se produce a través de múltiples conexiones TCP simultáneas para maximizar el rendimiento y la utilización de la red.
- Consistencia sintonizable
- Opción de elegir entre consistencia eventual y fuerte para cada cubo.
Licencias y soporte
Riak está disponible de forma gratuita bajo la licencia Apache 2 . Además, Basho Technologies ofreció dos opciones para su software comercial, Riak Enterprise y Riak Enterprise Plus. Riak Enterprise Plus agrega controles de estado del sistema de línea base y anuales para garantizar la estabilidad y el rendimiento de la plataforma a largo plazo.
Ayuda de idioma
Riak tiene controladores oficiales para Ruby , Java , Erlang y Python . También hay numerosos controladores compatibles con la comunidad para otros lenguajes de programación. [7]
Historia
Riak fue escrito originalmente por Andy Gross y otros en Basho Technologies [2] para impulsar una aplicación web Sales Force Automation por parte de antiguos ingenieros y ejecutivos de Akamai . Había más interés en la tecnología del almacén de datos que en las aplicaciones creadas en ella, por lo que la compañía decidió construir un negocio alrededor de Riak, ganando adopción en Fortune 100 y convirtiéndose en la base de muchos de los dispositivos móviles basados en la Web de más rápido crecimiento en el mundo. y aplicaciones de redes sociales, así como proveedores de servicios en la nube. Los lanzamientos después de la graduación incluyen
- 1.1, lanzada el 21 de febrero de 2012, agregó Riaknostic, registro e informes de errores mejorados, resistencia mejorada para clústeres grandes y una nueva interfaz gráfica de operaciones y monitoreo llamada Riak Control.
- 1.4, lanzado el 10 de julio de 2013, contadores agregados, mejoras de indexación secundaria, reducción de la sobrecarga de almacenamiento de objetos, informes de progreso de transferencia y mejoras en la replicación de MDC.
- 2.0, lanzado el 2 de septiembre de 2014, agregó nuevos tipos de datos, incluidos conjuntos, mapas, registros y banderas, lo que simplifica el desarrollo de aplicaciones. Consistencia sólida por depósito, integración de texto completo con Apache Solr, seguridad y réplicas reducidas para sitios secundarios.
- 2.1, lanzada el 16 de abril de 2015, agregó una optimización para muchas cargas de trabajo de escritura pesada (depósitos de "escritura única") cuyas entradas deben escribirse exactamente una vez y nunca actualizarse ni sobrescribirse.
- 2.2, lanzado el 17 de noviembre de 2016, se agregó soporte para Debian 8 y Ubuntu 16.04, mejoras de integración de Solr . [8]
- Riak ya no puede ser mantenido por Basho [9]
- 2.2.5, lanzado el 26 de abril de 2018, es el primer lanzamiento de la comunidad. Se agregó soporte para la replicación de múltiples centros de datos que antes no formaba parte de Riak de código abierto, se agregó un tipo de datos de conjunto de solo crecimiento, se mejoró la distribución de datos en los nodos y se limpiaron los problemas de prueba de producción. [10]
- ...
- El desarrollo de la comunidad va más allá de la versión 3.0. [11]
Usuarios
Los usuarios notables incluyen AT&T , Comcast , [12] GitHub , [12] Best Buy , [12] Servicios de Salud Nacional del Reino Unido (NHS) , [13] The Weather Channel , [14] y Riot Games . [15]
Ver también
- Tecnologías Basho
- Apache Accumulo
- Base de datos Oracle NoSQL
- NoSQL
- Almacenamiento estructurado
- Memcached
- Redis
Referencias
- ^ Notas de la versión de Riak 3.0 , 19 de agosto de 2020
- ^ a b Sheehy, Justin. "Fiesta de lanzamiento de Riak 1.0" . Vimeo .
- ^ a b Harvey, Cynthia (23 de mayo de 2014). "60 aplicaciones de código abierto que puede utilizar en la nube" . Datamación . Consultado el 5 de junio de 2014 .
- ^ DeCandia, Giuseppe; Hastorun, Deniz; Jampani, Madan; Kakulapati, Gunavardhan; Lakshman, Avinash; Pilchin, Alex; Sivasubramanian, Swaminathan; Vosshall, Peter; Vogels, Werner (14 al 17 de octubre de 2007). Dynamo: Tienda de valor clave de alta disponibilidad de Amazon (PDF) . Actas del 21º Simposio de ACM SIGOPS sobre principios de sistemas operativos (SOSP '07) . Stevenson, Washington, Estados Unidos: ACM. págs. 205–220. doi : 10.1145 / 1294261.1294281 . ISBN 978-1-59593-591-5. Consultado el 5 de junio de 2014 .
- ^ a b Morgan, Timothy Prickett (7 de mayo de 2014). "Eucalyptus Scales Out AWS Cloud Clone" . Tecnología empresarial . Consultado el 5 de junio de 2014 .
- ^ "Basho: Bitcask" . Consultado el 5 de junio de 2014 .
- ^ "Código de comunidad y bibliotecas cliente de Riak" . Consultado el 5 de junio de 2014 .
- ^ "Notas de la versión de Riak KV 2.2.0" . Basho. 2016-11-17 . Consultado el 21 de diciembre de 2016 .
- ^ "Investigación de TheRegister" . TheRegister .
- ^ "Notas de la versión de Riak KV 2.2.5" . Consultado el 23 de junio de 2018 .
- ^ "Notas de la versión Riak KV 3.0" . Consultado el 8 de mayo de 2021 .
- ^ a b c "Basho Technologies apunta a más empresas con actualizaciones" . 21 de febrero de 2013 . Consultado el 26 de marzo de 2015 .
- ^ Clark, Jack (10 de octubre de 2013). "NHS rompe su Oracle Spine a favor del código abierto" . El registro . Consultado el 5 de junio de 2014 .
- ^ Henschen, Doug (2 de junio de 2014). "Por qué las herramientas de Big Data están aquí para quedarse: InformationWeek Video" . InformationWeek . Consultado el 5 de junio de 2014 .
- ^ Ptaszek, Michal (16 de enero de 2016). "Arquitectura del Servicio de Chat: Persistencia" . RiotGames . Consultado el 2 de febrero de 2016 .
enlaces externos
- Página web oficial
- Una comparación independiente del proveedor de bases de datos NoSQL: Cassandra, HBase, MongoDB, Riak (NetworkWorld)
- Joyent - Riak SmartMachine Benchmark: los detalles técnicos