Articulo de referencia

Riak

{{citation |url=https://github.com/basho/riak/blob/develop/RELEASE-NOTES.md#riak-kv-320-release-notes |title=Riak 3.2.0 release notes |date=2023-01-01}} "},"latest preview versi...

Riak (pronunciado "ri-ak" [ 2 ] ) es un almacén de datos NoSQL distribuido de clave-valor que ofrece alta disponibilidad , tolerancia a fallos , simplicidad operativa y escalabilidad . [ 3 ] Riak se convirtió en un proyecto completamente de código abierto en agosto de 2017, incorporando muchas de las características de la edición Enterprise con licencia. [ 4 ] Riak implementa los principios del documento Dynamo de Amazon [ 5 ] con una fuerte influencia del teorema CAP . Escrito en Erlang , Riak cuenta con replicación de datos tolerante a fallos y distribución automática de datos en todo el clúster para un mejor rendimiento y resiliencia. [ 6 ]

Riak tiene un backend conectable para su almacenamiento principal, siendo Bitcask el backend de almacenamiento predeterminado . [ 7 ] También se admite LevelDB , con otras opciones (como Leveled, escrito completamente en Erlang ) disponibles según la versión.

Riak fue desarrollado originalmente por ingenieros empleados por Basho Technologies [ 8 ] y mantenido por ellos hasta 2017 cuando los derechos fueron vendidos a bet365 [ 9 ] [ 10 ] después de que Basho entrara en concurso de acreedores. [ 11 ]

Características principales

Disponibilidad tolerante a fallos
Riak replica almacenes de clave/valor en un clúster de nodos con un valor predeterminado de n_val de tres. En caso de que un nodo falle debido a una partición de red o a fallos de hardware, los datos aún pueden escribirse en un nodo vecino más allá de los tres iniciales y leerse de vuelta gracias a su arquitectura peer-to-peer "sin maestro".
Consultas
Riak proporciona una API RESTful a través de HTTP y Protocol Buffers para las funciones básicas PUT, GET, POST y DELETE. También permite consultas más complejas, como índices secundarios, búsqueda (mediante Apache Solr ) y MapReduce . MapReduce ofrece soporte nativo tanto para JavaScript (con el entorno de ejecución SpiderMonkey ) como para Erlang.
Latencia predecible
Riak distribuye los datos entre nodos mediante funciones hash y puede proporcionar un perfil de latencia, incluso en caso de fallos en varios nodos.
Opciones de almacenamiento
Las claves/valores se pueden almacenar en la memoria, en el disco o en ambos.
Replicación en múltiples centros de datos
La replicación multi-centro de datos (MDC) proporciona replicación unidireccional y bidireccional de datos entre clústeres Riak, ya sea localmente para resiliencia o globalmente para un acceso regional más rápido. La replicación unidireccional es útil para destinos de solo lectura, como copias de seguridad y sitios de recuperación ante desastres. La replicación bidireccional permite que varios clústeres Riak tengan datos con consistencia eventual a través de grandes distancias. Los escenarios de replicación complejos, como cadenas, redes de concentrador y redes malladas, son posibles gracias a la función Cascadas, que permite la replicación de datos entre clústeres que no están conectados directamente. Hay dos modos de operación principales: sincronización completa y tiempo real. El modo de sincronización completa garantiza que todos los datos del clúster de origen se repliquen en el clúster de destino. Solo se transfieren los metadatos y los cambios, lo que lo hace rápido y eficiente. El modo de tiempo real envía las actualizaciones realizadas en un clúster de origen al clúster de destino en tiempo real. Estos modos están diseñados para trabajar juntos para obtener el mejor rendimiento. Toda la replicación multi-centro de datos se realiza a través de múltiples conexiones TCP concurrentes para maximizar el rendimiento y la utilización de la red.
consistencia ajustable
Opción de elegir entre consistencia eventual y fuerte para cada cubo.

Productos principales

Todas las versiones de Riak son ahora completamente de código abierto y gratuitas, e incluyen las funciones adicionales por las que Basho cobraba una tarifa de licencia.

Basho operaba con un modelo freemium, en el que ofrecía versiones gratuitas de Riak (Riak Core, Riak KV, Riak CS y Riak TS), pero obtenía ingresos mediante la concesión de licencias para funciones más avanzadas y soporte basado en SLA. Las funciones adicionales de las ediciones Enterprise se han integrado posteriormente en la versión de código abierto de Riak KV, a partir de la versión 2.2.6 [ 12 ] y Riak CS 2.1.2 [ 13 ] .

Riak Core y Riak Core Lite

Riak Core

riak_core [ 14 ] es el marco de sistemas distribuidos que sustenta Riak, formando la base para todas las versiones de Riak. Se mantiene como parte de Riak.

Riak Core Lite

riak_core_lite [ 15 ] está destinado a un uso general como base para la creación de sistemas distribuidos.

Riak KV (clave-valor)

Riak KV es una base de datos NoSQL distribuida diseñada para ofrecer la máxima disponibilidad de datos mediante la distribución de datos en múltiples servidores, lo que significa que si un cliente puede acceder a un servidor, debería poder leer y escribir datos. [ 16 ] KV pasó por varios nombres a lo largo de su historia, comenzando como Riak, luego Riak DS (por Data Store) y finalmente Riak KV (por Key-Value).

Cuando Basho Technologies entró en concurso de acreedores en 2017 [ 11 ], el desarrollo de KV fue retomado por la comunidad de código abierto y continuó hasta 2021, siendo la versión 2.2.6, lanzada en 2018, la primera versión comunitaria de KV. Esta versión integró algunas características que originalmente estaban restringidas a las versiones empresariales de Riak de Basho. [ 12 ]

La versión 2.9.0 fue la primera versión importante de la comunidad de código abierto, publicada en noviembre de 2019, [ 12 ] seguida de la versión 3.0.1 el 20 de agosto de 2020. [ 12 ] El desarrollo ha continuado desde entonces, siendo la última versión la 3.0.7. [ 17 ]

Características eliminadas

La versión actual de Riak ya no es compatible con algunas funciones de la edición Enterprise de Riak, entre ellas:

  • Compatibilidad con SNMP/JMX

Funciones separadas en Riak KV 3.0+

Las siguientes características de Riak KV 2.x se han eliminado por defecto de la compilación de Riak. Existen compilaciones específicas que incluyen estas características.

  • yokozuna

Riak CS (Almacenamiento en la nube)

Originalmente conocido como Riak Moss [ 18 ] (Riak Multi-tenant Object Storage System - MOSS), pero llamado Riak CS (Cloud Storage) cuando se lanzó, Riak CS se lanzó públicamente por primera vez en enero de 2012.

Riak CS (Cloud Storage) es un software de almacenamiento de objetos construido sobre Riak KV, la base de datos distribuida de Riak. Riak CS está diseñado para proporcionar almacenamiento en la nube distribuido, sencillo y de alta disponibilidad a cualquier escala, y puede utilizarse para construir arquitecturas en la nube o como infraestructura de almacenamiento para aplicaciones y servicios de alto rendimiento. [ 19 ]

Riak CS también incluye una aplicación llamada Stanchion [ 20 ] que se utiliza para gestionar la serialización de las solicitudes. Esto permite a Riak CS gestionar entidades únicas a nivel global, como usuarios y nombres de buckets. La serialización en este contexto significa que todo el clúster concuerda en un único valor para cualquier entidad única a nivel global en un momento dado; cuando ese valor cambia, el nuevo valor debe ser reconocido en todo el clúster.

El Riak CS fue rebautizado brevemente como Riak S2 para que fuera más evidente su compatibilidad con Amazon S3, pero el nombre no tuvo éxito y volvió a llamarse Riak CS.

En 2021 se reanudó el desarrollo de Riak CS con contribuciones de TI Tokio.

Riak TS (Serie temporal)

Riak TS es una extensión de Riak KV optimizada para datos de series temporales, en el sentido de que:

  • Admite datos estructurados , y se requiere la definición de la tabla (mediante una CREATE TABLEllamada) antes de que se puedan escribir los datos;
  • Las porciones de datos de regiones contiguas en su índice primario ("cuantos") se almacenan en la misma partición;
  • Las operaciones CRUD están optimizadas para la velocidad, a expensas de la consistencia.

En Riak TS se implementó un subconjunto limitado de comandos SQL. No se ofrecen garantías de consistencia entre tablas (no hay índices externos). En SELECTlas sentencias, WHEREse admite la cláusula, pero HAVINGno. ORDER BYEstaba previsto que apareciera en una versión que nunca se publicó.

Riak TS existía como una colección de ramas (en componentes separados de Riak KV, como riak_kv, riak_pb, etc.) y no como un producto con un repositorio propio. Fue desarrollado por un equipo dedicado compuesto por Gordon Guthrie (líder), Andy Till y Andrei Zavada, con contribuciones ocasionales de otros desarrolladores.

Riak TS fue concebido, junto con el proyecto Riak Data Platform, como un intento de diversificar la línea de productos de Basho, una iniciativa que muchos expertos consideran desacertada y que, en última instancia, contribuyó a la desaparición de Basho.

Licencias y soporte

Riak se licenció originalmente con un modelo freemium : las versiones de código abierto de Riak KV, Riak CS y Riak TS estaban disponibles, pero los usuarios finales podían pagar por funciones y soporte adicionales. Sin embargo, desde que Basho entró en concurso de acreedores [ 11 ] y bet365 [ 10 ] (adquirentes de toda la propiedad intelectual) convirtió todos los productos Riak en código abierto, todas las funciones premium ahora están disponibles en las versiones de código abierto. Desde la desaparición de Basho, han surgido opciones de soporte ad hoc y de pago por parte de la comunidad [ 21 ] .

Soporte de idiomas

Riak cuenta con controladores oficiales para Ruby , Java , Erlang y Python . También existen numerosos controladores con soporte de la comunidad para otros lenguajes de programación. [ 22 ]

Desarrollo comunitario

Después de que bet365 [ 10 ] comprara la propiedad intelectual de Riak, [ 9 ] los productos de Riak se convirtieron en código abierto completo y el trabajo para integrar las funciones premium en las versiones de código abierto se completó con el lanzamiento 2.2.6.

Historia

Riak fue escrito originalmente por Andy Gross y Justin Sheehy en Basho Technologies [ 2 ] para impulsar una aplicación web de automatización de la fuerza de ventas creada por antiguos ingenieros y ejecutivos de Akamai . Hubo más interés en la tecnología de almacenamiento de datos que en las aplicaciones desarrolladas sobre ella, por lo que la empresa decidió crear un negocio en torno a Riak, logrando su adopción en las empresas Fortune 100 y convirtiéndose en la base de muchas de las aplicaciones web, móviles y de redes sociales de más rápido crecimiento en el mundo, así como de proveedores de servicios en la nube. Las versiones posteriores a la graduación incluyen:

Riak KV

Riak 1.0 fue lanzado el 10 de septiembre de 2011

Riak CS

Riak CS se convirtió en código abierto el 20 de marzo de 2013 [ 39 ].

Riak TS

Riak TS se lanzó originalmente en octubre de 2015 [ 59 ]

Usuarios

Entre los usuarios destacados se incluyen AT&T , Comcast , [ 67 ] GitHub , [ 67 ] Best Buy , [ 67 ] el Servicio Nacional de Salud del Reino Unido (NHS) , [ 68 ] The Weather Channel , [ 69 ] y Riot Games . [ 70 ]

Véase también

Referencias

  1. Notas de la versión de Riak 3.2.0 , 1 de enero de 2023
  2. 1 2 Sheehy, Justin. "Fiesta de lanzamiento de Riak 1.0" . Vimeo .
  3. Harvey, Cynthia (23 de mayo de 2014). "60 aplicaciones de código abierto que puedes usar en la nube" . Datamation . Recuperado el 5 de junio de 2014 .
  4. "Notas de la versión 2.2.6 de Riak KV" . github.com . 26 de abril de 2018. Consultado el 10 de septiembre de 2021 .
  5. DeCandia, Giuseppe; Hastorun, Deniz; Jampani, Madan; Kakulapati, Gunavardhan; Lakshman, Avinash; Pilchin, Alex; Sivasubramanian, Swaminathan; Vosshall, Peter; Vogels, Werner (14-17 de octubre de 2007). Dynamo: Almacén de clave-valor de alta disponibilidad de Amazon (PDF) . Actas del 21.º Simposio ACM SIGOPS sobre Principios de Sistemas Operativos (SOSP '07) . Stevenson, Washington, EE. UU.: ACM. págs. 205-220 . doi : 10.1145/1294261.1294281 . ISBN  978-1-59593-591-5Consultado el 5 de junio de 2014 .
  6. Morgan, Timothy Prickett (7 de mayo de 2014). "Eucalyptus amplía su clon de la nube de AWS" . Enterprise Tech . Recuperado el 5 de junio de 2014 .
  7. "Basho: Bitcask" . docs.riak.com . Consultado el 14 de septiembre de 2021 .
  8. "Basho Technologies" , Wikipedia , 19 de noviembre de 2020 , consultado el 15 de julio de 2021.
  9. 1 2 "Riak NoSQL es adquirida por Bet365" . ComputerWeekly.com . Consultado el 15 de julio de 2021 .
  10. 1 2 3 "Bet365" , Wikipedia , 14 de julio de 2021 , consultado el 30 de julio de 2021
  11. 1 2 3 Hill, Rebecca. "Fin del camino para Basho: el tribunal pone la empresa en administración judicial" . www.theregister.com . Consultado el 15 de julio de 2021 .
  12. ^ " basho / riak " .GitHub . Consultado el 15 de julio de 2021 .
  13. "basho/riak_cs" . GitHub . Consultado el 24 de julio de 2021 .
  14. "Riak Core" . GitHub .
  15. «Riak Core Lite» . GitHub .
  16. «Riak KV» . docs.Riak.com . 15 de julio de 2021.
  17. ^ " Notas de la versión de Riak KV 3.0.7" . Riak Github . 2021-07-21 . Consultado el 2 de septiembre de 2021 .
  18. «Riak Moss» . Github . 26 de enero de 2012 . Consultado el 24 de agosto de 2021 .
  19. «Almacenamiento en la nube Riak» . docs.Riak.com . 15 de julio de 2021.
  20. "Stanchion Application" . Tiot.jp. Consultado el 24 de agosto de 2021 .
  21. «Sitio de la Comunidad Riak» . Información de Riak . 2021-09-14 . Consultado el 14 de septiembre de 2021 .
  22. "Bibliotecas de clientes de Riak y código comunitario" . Consultado el 5 de junio de 2014 .
  23. "Lanzamiento de Riak 1.0" . Riak.com . 11 de septiembre de 2011. Consultado el 26 de agosto de 2021 .
  24. "Notas de la versión Riak KV 2.2.0" . Basho. 17 de noviembre de 2016. Consultado el 21 de diciembre de 2016 .
  25. "Notas de la versión 2.2.5 de Riak KV" . GitHub . Consultado el 23 de junio de 2018 .
  26. "basho/riak_kv" . GitHub . Consultado el 15 de julio de 2021 .
  27. "Notas de la versión 2.9.8 de Riak KV" . Github . 7 de diciembre de 2020. Consultado el 19 de agosto de 2021 .
  28. "Notas de la versión 2.9.9" . GitHub . 6 de agosto de 2021. Consultado el 24 de agosto de 2021 .
  29. "basho/riak_core" . GitHub . Consultado el 15 de julio de 2021 .
  30. «Notas de la versión Riak KV 3.0.8» . Riak Github . 2021-10-12 . Consultado el 12 de mayo de 2023 .
  31. «Notas de la versión Riak KV 3.0.9» . Riak Github . 2021-11-12 . Consultado el 12 de mayo de 2023 .
  32. «Notas de la versión Riak KV 3.0.10» . Riak Github . 2022-03-30 . Consultado el 12 de mayo de 2023 .
  33. «Notas de la versión Riak KV 3.0.11» . Riak Github . 2022-10-11 . Consultado el 12 de mayo de 2023 .
  34. «Notas de la versión Riak KV 3.0.12» . Riak Github . 2022-12-20 . Consultado el 12 de mayo de 2023 .
  35. «Notas de la versión Riak KV 3.2.0» . Riak Github . 2023-01-01 . Consultado el 12 de mayo de 2023 .
  36. «Notas de la versión Riak KV 3.0.13» . Riak Github . 2023-02-04 . Consultado el 12 de mayo de 2023 .
  37. «Notas de la versión Riak KV 3.0.14» . Riak Github . 2023-02-13 . Consultado el 12 de mayo de 2023 .
  38. «Notas de la versión Riak KV 3.0.15» . Riak Github . 2023-02-15 . Consultado el 12 de mayo de 2023 .
  39. "Riak CS ahora es de código abierto" . Riak.com . 2013-03-20 . Consultado el 2021-08-26 .
  40. «Riak MOSS 0.0.3» . Github . 26 de febrero de 2012 . Consultado el 2 de septiembre de 2021 .
  41. "Notas de la versión 0.1.0 de Riak CS" . Github . 25 de febrero de 2012. Consultado el 2 de septiembre de 2021 .
  42. "Notas de la versión 1.0 de Moss" . Github . 2 de abril de 2012. Consultado el 2 de septiembre de 2021 .
  43. "Notas de la versión 1.0.1 de Moss" . Github . 18 de abril de 2012. Consultado el 2 de septiembre de 2021 .
  44. «Notas de la versión de Riak CS 1.1.0» . Riak CS Github . 2012-08-20 . Consultado el 2 de septiembre de 2021 .
  45. ^ "Notas de la versión de Riak CS 1.2" . Riak CS Github . 23 de octubre de 2012 . Consultado el 2 de septiembre de 2021 .
  46. «Notas de la versión de Riak CS 1.2.1» . Riak CS Github . 23 de octubre de 2012 . Consultado el 2 de septiembre de 2021 .
  47. ^ "Notas de la versión de Riak CS" . Riak CS Github . 2012-11-08 . Consultado el 2 de septiembre de 2021 .
  48. ^ "Lanzamiento de Riak CS" . Riak CS Github . 2013-03-20 . Consultado el 2 de septiembre de 2021 .
  49. «Notas de la versión de Riak CS 1.3.1» . Riak CS Github . 2013-04-04 . Consultado el 2 de septiembre de 2021 .
  50. ^ "Lanzamiento de Riak CS 1.4.0" . Riak CS Github . 2013-08-12 . Consultado el 2 de septiembre de 2021 .
  51. ^ "Lanzamiento de Riak CS" . Riak CS Github . 2014-07-31 . Consultado el 2 de septiembre de 2021 .
  52. ^ "Lanzamiento de Riak CS" . Riak CS Github . 2014-09-10 . Consultado el 2 de septiembre de 2021 .
  53. «Lanzamientos de Riak CS» . Riak CS github . 09/10/2014 . Consultado el 2 de septiembre de 2021 .
  54. «Lanzamiento de Riak CS» . Riak CS Github . 2014-12-12 . Consultado el 2 de septiembre de 2021 .
  55. «Lanzamientos de Riak CS» . Riak CS Github . 2015-03-13 . Consultado el 2 de septiembre de 2021 .
  56. "Docs.riak.com" . Notas de la versión de Riak CS . 27 de marzo de 2015. Consultado el 2 de septiembre de 2021 .
  57. "Notas de la versión de Riak CS" . Docs.riak.com . 14 de octubre de 2015. Consultado el 2 de septiembre de 2021 .
  58. «Riak CS github» . Riak CS Github . 2019-04-09 . Consultado el 2 de septiembre de 2021 .
  59. «Basho lanza Riak TS (serie temporal)» . InfoQ . 2015-10-27 . Consultado el 19 de agosto de 2021 .
  60. "Notas de la versión de Riak TS" . docs.riak.com . 23 de febrero de 2016. Consultado el 14 de septiembre de 2021 .
  61. "Notas de la versión Riak TS 1.3.0" . docs.riak.com . 4 de mayo de 2016. Consultado el 14 de septiembre de 2021 .
  62. "Notas de la versión de Riak TS" . docs.riak.com . 5 de julio de 2016. Consultado el 14 de septiembre de 2021 .
  63. "Notas de la versión 1.4.0 de Riak TS" . docs.riak.com . 24 de agosto de 2016. Consultado el 14 de septiembre de 2021 .
  64. "Notas de la versión 1.5.0 de Riak TS" . docs.riak.com . 2016-12-20 . Consultado el 2021-09-14 .
  65. "Notas de la versión 1.5.1 de Riak TS" . docs.riak.com . 24/01/2017 . Consultado el 02/09/2021 .
  66. "Notas de la versión 1.5.2 de Riak TS" . docs.riak.com . 21 de febrero de 2017. Consultado el 14 de septiembre de 2021 .
  67. 1 2 3 "Basho Technologies apunta a más empresas con actualizaciones" . 21 de febrero de 2013. Archivado del original el 24 de febrero de 2013. Recuperado el 26 de marzo de 2015 .
  68. Clark, Jack (10 de octubre de 2013). "El NHS retira su Oracle Spine en favor del código abierto" . The Register . Consultado el 5 de junio de 2014 .
  69. Henschen, Doug (2 de junio de 2014). "Por qué las herramientas de Big Data llegaron para quedarse: video de InformationWeek" . InformationWeek . Recuperado el 5 de junio de 2014 .
  70. Ptaszek, Michal (16 de enero de 2016). "Arquitectura del servicio de chat: persistencia" . RiotGames . Consultado el 2 de febrero de 2016 .
  • Sitio web oficialEdita esto en Wikidata
Obtenido de " https://en.wikipedia.org/w/index.php?title=Riak&oldid=1333971044 "