Riak - Riak

Riak
Logotipo de Riak
Desarrollador (es) Tecnologías Basho
Versión inicial 17 de agosto de 2009 ; Hace 12 años ( 17 de agosto de 2009 )
Lanzamiento estable
3.0.7 / 16 de julio de 2021 ; Hace 55 dias ( 07/16/2021 )
Repositorio
Escrito en Erlang
Sistema operativo Linux , BSD , macOS , Solaris
Plataforma IA-32 , x86-64
Escribe Base de datos NoSQL, almacenamiento en la nube
Licencia Licencia Apache 2.0
Sitio web riak .com

Riak (pronunciado "ree-ack") es un almacén de datos distribuidos de valor clave NoSQL que ofrece alta disponibilidad, tolerancia a fallas, simplicidad operativa y escalabilidad. 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 . Riak implementa los principios del artículo Dynamo de Amazon 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.

La licencia de Riak se obtuvo originalmente mediante un modelo freemium : hay disponibles versiones de código abierto de Riak y Riak CS, pero los usuarios finales pueden pagar por funciones y soporte adicionales. Ahora es completamente de código abierto, incluidas todas las funciones empresariales.

Riak tiene un backend conectable para su almacenamiento central, siendo Bitcask el backend de almacenamiento predeterminado . 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 anuales y de referencia 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.

Historia

Riak fue escrito originalmente por Andy Gross y otros en Basho Technologies 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, publicada el 10 de julio de 2013, se agregaron contadores, 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 .
  • Riak ya no puede ser mantenido por Basho
  • En este punto, la empresa matriz Basho Technologies quedó en quiebra. Los activos fueron comprados por bet365, que abrió todo el código, incluidas las partes de código previamente cerradas, lo que permitió la publicación de:
  • 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.
  • NHS Digital y bet365 han continuado financiando el trabajo para desarrollar esta versión comunitaria, haciendo cambios significativos, incluida la actualización de la versión 3.0 con versiones más modernas de Erlang ETP.
  • El desarrollo de la comunidad va más allá de la versión 3.0.

Usuarios

Los usuarios notables incluyen AT&T , Comcast , GitHub , Best Buy , UK National Health Services (NHS) , The Weather Channel y Riot Games .

Ver también

Referencias

enlaces externos