{"id":114431,"date":"2024-03-19T18:25:44","date_gmt":"2024-03-19T16:25:47","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/microsoft-otkryl-kod-hranilishha-garnet-sovmestimogo-s-redis"},"modified":"2024-03-19T18:25:44","modified_gmt":"2024-03-19T16:25:47","slug":"microsoft-otkryl-kod-hranilishha-garnet-sovmestimogo-s-redis","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/news\/microsoft-otkryl-kod-hranilishha-garnet-sovmestimogo-s-redis","title":{"rendered":"Microsoft ha abierto el c\u00f3digo del almacenamiento Garnet, compatible con Redis","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Microsoft ha publicado el c\u00f3digo fuente del sistema NoSQL Garnet, dise\u00f1ado para crear almacenes de cach\u00e9 y compatible con las bibliotecas de cliente existentes para el almacenamiento Redis. Garnet admite la creaci\u00f3n de cl\u00fasteres escalables para la cach\u00e9 de datos, los cuales pueden utilizar replicaci\u00f3n, migraci\u00f3n de claves y segmentaci\u00f3n de datos entre los nodos del cl\u00faster. El proyecto est\u00e1 escrito en C# con un n\u00facleo de almacenamiento en C++, es de c\u00f3digo abierto bajo la licencia MIT y puede funcionar en todas las plataformas compatibles con .NET (las plataformas primarias anunciadas son Linux y Windows).    <\/p>\n<p>Para el almacenamiento de datos se utiliza el motor Tsavorite (un fork del almac\u00e9n Microsoft FASTER), que admite procesamiento de solicitudes multihilo, transacciones, grabaci\u00f3n de cambios en modo no bloqueante (checkpointing), recuperaci\u00f3n ante fallos, almacenamiento de copias redundantes y registro de operaciones. El manejador de red en Garnet est\u00e1 construido utilizando la arquitectura de memoria compartida, propuesta por el proyecto de investigaci\u00f3n ShadowFax. El procesamiento de TLS y la interacci\u00f3n con el almac\u00e9n se llevan a cabo en un solo hilo, lo que permite evitar gastos generales en el cambio de hilos y utilizar de manera m\u00e1s eficiente el cach\u00e9 de CPU durante la transferencia de datos a trav\u00e9s de la red.      <\/p>\n<p>La arquitectura Garnet separa la l\u00f3gica de an\u00e1lisis y procesamiento de solicitudes de las operaciones con el almacenamiento. Los datos se almacenan utilizando dos almacenes en formato clave-valor, implementados sobre la biblioteca Tsavorite. El primer almac\u00e9n, llamado \"principal\", est\u00e1 optimizado para la ejecuci\u00f3n r\u00e1pida de operaciones con cadenas, mientras que el segundo, llamado \"objetos\", est\u00e1 optimizado para almacenar objetos complejos y tipos de datos avanzados, como hash y listas. Los tipos de datos en el segundo almac\u00e9n se implementan utilizando bibliotecas .NET. Los datos se almacenan en la memoria (C# heap), lo que permite actualizarlos de manera eficiente, y en forma serializada en el disco.      <center><img decoding=\"async\" alt=\"Microsoft ha abierto el c\u00f3digo del almacenamiento Garnet, compatible con Redis \" src=\"\/wp-content\/uploads\/2024\/03\/0dfc0274c7f0f9a0bc6d38779e70a13b.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>              <\/p>\n<p>Caracter\u00edsticas de Garnet:  <\/p>\n<ul>\n<li class=\"l\"> Es posible desplegar almacenes multinivel que abarcan memoria RAM, unidades SSD y almacenamiento en la nube, donde los datos menos demandados se desplazan a almacenes m\u00e1s lentos para crear cach\u00e9s que son m\u00e1s grandes que la memoria RAM.\n<li class=\"l\"> Soporte ampliado para dispositivos, permitiendo la creaci\u00f3n de capas optimizadas para trabajar con diferentes dispositivos, como capas para SSD, discos duros y almacenamiento en la nube de Azure.\n<li class=\"l\"> Un mecanismo eficiente de reutilizaci\u00f3n de espacio liberado en la memoria, previniendo la fragmentaci\u00f3n.\n<li class=\"l\"> L\u00edmites configurables sobre la cantidad de memoria utilizada para \u00edndices, registros y almacenamiento de objetos.\n<li class=\"l\"> Para acceder al almacenamiento se utiliza el protocolo RESP, lo que permite usar Garnet con clientes Redis sin modificaciones.\n<li class=\"l\"> Soporte para almacenar tanto valores de cadena como estructuras de datos complejas, como listas, hashes, conjuntos, listas ordenadas y datos de geolocalizaci\u00f3n. Posibilidad de definir el tiempo de vida de una clave.\n<li class=\"l\"> Existencia de una API para realizar consultas anal\u00edticas (HLL\/Hyperloglog, Bitmap), transacciones (MULTI\/EXEC) y el uso de la paradigm\u00e1tica de publicaci\u00f3n\/suscripci\u00f3n.\n<li class=\"l\"> Disponibilidad de herramientas para una gesti\u00f3n flexible del acceso a trav\u00e9s de ACL.\n<li class=\"l\"> Posibilidad de definir la configuraci\u00f3n en formato JSON o redis.conf.\n<li class=\"l\"> Soporte para la conexi\u00f3n de manejadores de red adicionales. Posibilidad de cifrar el tr\u00e1fico utilizando TLS (basado en SslStream).\n<li class=\"l\"> Posibilidad de crear extensiones en el lenguaje C#, que implementen operaciones adicionales sobre cadenas y objetos.\n<li class=\"l\"> Soporte para procedimientos almacenados transaccionales que abarcan m\u00faltiples claves.\n<li class=\"l\"> Posibilidad de restaurar el estado desde una posici\u00f3n guardada previamente (checkpoint-recovery). Existencia de un modo de solo agregar (AOF, archivo de solo append), donde todos los datos antiguos permanecen disponibles y no son reemplazados.\n<li class=\"l\"> Soporte para la creaci\u00f3n de cl\u00fasteres de almacenamiento con replicaci\u00f3n, segmentaci\u00f3n (Sharding), migraci\u00f3n din\u00e1mica de claves entre nodos y recuperaci\u00f3n de nodos fallidos.\n<li class=\"l\"> Alta rendimiento y baja latencia al procesar consultas. Procesamiento eficiente de solicitudes en lotes peque\u00f1os con un gran n\u00famero de sesiones de clientes, permitiendo lograr una capacidad de procesamiento (n\u00famero de solicitudes procesadas por segundo) significativamente superior a la de soluciones competitivas. Al ejecutarse en <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/es\/vps\/abuzoustojchivye-vps\/\"   title=\"m\u00e1quinas virtuales\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4244\">m\u00e1quinas virtuales<\/a> En la nube de Azure, en la mayor\u00eda de los casos, la latencia de las solicitudes de los clientes no supera los 300 microsegundos. En las pruebas realizadas, Garnet supera significativamente a Redis, Dragonfly y KeyDB en rendimiento y capacidad de respuesta. En algunas pruebas, Garnet supera a los sistemas competidores por diez veces.      <center><img decoding=\"async\" alt=\"Microsoft ha abierto el c\u00f3digo del almacenamiento Garnet, compatible con Redis \" src=\"\/wp-content\/uploads\/2024\/03\/eac4512021ec4d8d2841708e66c56801.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>  <center><img decoding=\"async\" alt=\"Microsoft ha abierto el c\u00f3digo del almacenamiento Garnet, compatible con Redis \" src=\"\/wp-content\/uploads\/2024\/03\/c50a64571f4aa25aee8ab621b94cc023.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>        <center><img decoding=\"async\" alt=\"Microsoft ha abierto el c\u00f3digo del almacenamiento Garnet, compatible con Redis \" src=\"\/wp-content\/uploads\/2024\/03\/1c1e18d9c5286d5d1d523accd933f6cf.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>    <center><img decoding=\"async\" alt=\"Microsoft ha abierto el c\u00f3digo del almacenamiento Garnet, compatible con Redis \" src=\"\/wp-content\/uploads\/2024\/03\/16cc172596f09b1fc4c69ca3e5b14aa1.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>            <\/ul>\n<p>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=60808\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Microsoft \u043e\u0442\u043a\u0440\u044b\u043b\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u044b NoSQL-\u0441\u0438\u0441\u0442\u0435\u043c\u044b Garnet, \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u044d\u0448\u0438\u0440\u0443\u044e\u0449\u0438\u0445 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449 \u0438 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0439 \u0441 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u043c\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 Redis. Garnet \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 \u0434\u043b\u044f \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044f, \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0439 \u0438 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u0436\u0434\u0443 \u0443\u0437\u043b\u0430\u043c\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430. \u041f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 C# \u0441 \u044f\u0434\u0440\u043e\u043c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043d\u0430 C++, \u043e\u0442\u043a\u0440\u044b\u0442 \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":114432,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-114431","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Microsoft \u043e\u0442\u043a\u0440\u044b\u043b\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u044b NoSQL-\u0441\u0438\u0441\u0442\u0435\u043c\u044b Garnet, \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u044d\u0448\u0438\u0440\u0443\u044e\u0449\u0438\u0445 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449 \u0438 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0439 \u0441 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u043c\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 Redis.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/es\/blog\/news\/microsoft-otkryl-kod-hranilishha-garnet-sovmestimogo-s-redis\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Microsoft \u043e\u0442\u043a\u0440\u044b\u043b \u043a\u043e\u0434 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 Garnet, \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0433\u043e \u0441 Redis | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Microsoft \u043e\u0442\u043a\u0440\u044b\u043b\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u044b NoSQL-\u0441\u0438\u0441\u0442\u0435\u043c\u044b Garnet, \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u044d\u0448\u0438\u0440\u0443\u044e\u0449\u0438\u0445 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449 \u0438 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0439 \u0441 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u043c\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 Redis.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/news\/microsoft-otkryl-kod-hranilishha-garnet-sovmestimogo-s-redis\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2024-03-19T16:25:47+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-03-19T16:25:47+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Microsoft ha abierto el c\u00f3digo del almacenamiento Garnet, compatible con Redis | ProHoster","description":"La empresa Microsoft ha abierto el c\u00f3digo fuente del sistema NoSQL Garnet, dise\u00f1ado para crear almacenes en cach\u00e9 y compatible con las bibliotecas de clientes existentes para el almacenamiento Redis.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/news\/microsoft-otkryl-kod-hranilishha-garnet-sovmestimogo-s-redis","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Microsoft \u043e\u0442\u043a\u0440\u044b\u043b \u043a\u043e\u0434 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 Garnet, \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0433\u043e \u0441 Redis | ProHoster","og:description":"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Microsoft \u043e\u0442\u043a\u0440\u044b\u043b\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u044b NoSQL-\u0441\u0438\u0441\u0442\u0435\u043c\u044b Garnet, \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u044d\u0448\u0438\u0440\u0443\u044e\u0449\u0438\u0445 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449 \u0438 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0439 \u0441 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u043c\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 Redis.","og:url":"https:\/\/prohoster.info\/es\/blog\/news\/microsoft-otkryl-kod-hranilishha-garnet-sovmestimogo-s-redis","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2024-03-19T16:25:47+00:00","article:modified_time":"2024-03-19T16:25:47+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/114431","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=114431"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/114431\/revisions"}],"predecessor-version":[{"id":164119,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/114431\/revisions\/164119"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/114432"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=114431"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=114431"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=114431"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}