{"id":10560,"date":"2021-02-02T05:16:15","date_gmt":"2021-02-02T13:16:15","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=10560"},"modified":"2024-09-12T02:01:51","modified_gmt":"2024-09-12T09:01:51","slug":"recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/","title":{"rendered":"Temporizadores recursivos para agregar documentos y reducir el coste total de propiedad con Couchbase Server 6.6"},"content":{"rendered":"<h2>Por d\u00f3nde empieza...<\/h2>\n<p>La IoT, los dispositivos Edge y NoSQL son tecnolog\u00edas que han ganado popularidad en los \u00faltimos a\u00f1os. Permitiendo a la gente crear c\u00f3modamente aplicaciones pesadas de interacci\u00f3n, sin la preocupaci\u00f3n de la estabilidad y la disponibilidad. Un problema con la libertad y flexibilidad de estas nuevas tecnolog\u00edas es mantener el coste. Agregar documentos y reducir la huella de datos es un caso de uso com\u00fan para aplicaciones anal\u00edticas y de escritura pesada. Couchbase 6.6 nos proporciona a\u00fan m\u00e1s herramientas para ayudarte a reducir tu TCO. Veamos d\u00f3nde empez\u00f3 el problema y c\u00f3mo podemos usar el conjunto de herramientas de Couchbase para resolverlo.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-10567 aligncenter\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/02\/CostReduction-300x175.png\" alt=\"\" width=\"300\" height=\"175\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/02\/CostReduction-300x175.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/02\/CostReduction-768x448.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/02\/CostReduction-20x12.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/02\/CostReduction.png 1000w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<h2>Aplicaciones e interacciones<\/h2>\n<p>Recuerdo la \u00e9poca en que las aplicaciones sol\u00edan ser sencillas, cuando se propon\u00edan alcanzar un objetivo simple. Por ejemplo, una aplicaci\u00f3n para el comercio minorista que permitiera digitalizar el proceso de compra, evitando que la gente tuviera que desplazarse a su tienda local para realizar la misma tarea. Pel\u00edculas y m\u00fasica disponibles con s\u00f3lo pulsar un bot\u00f3n, en lugar de tener que comprar CD o DVD en una tienda. La transformaci\u00f3n digital inicial de casi todo supuso un enorme salto en la comodidad del consumidor y devolvi\u00f3 m\u00e1s tiempo a todo el mundo, y durante un tiempo este cambio bast\u00f3 para mantenernos contentos. Cualquier problema t\u00e9cnico parec\u00eda menor porque quedaba eclipsado por la cantidad de comodidad que proporcionaba.<\/p>\n<p>Sin embargo, hoy en d\u00eda, el hecho de que un nuevo minorista \"se digitalice\" no es nada del otro mundo, ya que las expectativas ya est\u00e1n ah\u00ed, y lo que ahora preocupa a los consumidores son los peque\u00f1os detalles que antes se pasaban por alto. Esas cuestiones t\u00e9cnicas, antes menores, ser\u00e1n ahora la clave del \u00e9xito de cualquier aplicaci\u00f3n. A medida que la transformaci\u00f3n digital se integra en las actividades cotidianas de las empresas, las expectativas de estas aplicaciones y sistemas han aumentado, y seguir\u00e1n haci\u00e9ndolo.<\/p>\n<p>&nbsp;<\/p>\n<h2>Bases de datos<\/h2>\n<p>A medida que desarrollamos software para satisfacer estas altas expectativas de experiencia de usuario, proporcionamos m\u00e1s interacci\u00f3n entre el usuario final y la aplicaci\u00f3n. Las aplicaciones m\u00e1s complejas van de la mano de un mayor n\u00famero de interacciones. Este n\u00famero cada vez mayor de interacciones necesitar\u00e1 una cantidad cada vez mayor de almacenamiento para registrarlas, y aqu\u00ed es donde encajan nuestras bases de datos.<\/p>\n<p>Al igual que las propias aplicaciones, hubo un tiempo en el que las bases de datos relacionales eran perfectas para almacenar la informaci\u00f3n de casi todos los sistemas, y eso nos satisfac\u00eda. Sin embargo, al igual que las expectativas de la experiencia del usuario hab\u00edan empezado a aumentar, tambi\u00e9n lo hicieron las expectativas de la base de datos subyacente. Ahora almacenamos una cantidad exponencial de datos a medida que pasa el tiempo y empezamos a ver d\u00f3nde la base de datos relacional ten\u00eda sus defectos. M\u00e1s datos significa m\u00e1s almacenamiento y, esencialmente, \"m\u00e1s base de datos\". Los que est\u00e9n familiarizados con las bases de datos relacionales sabr\u00e1n que esto no es tan sencillo como teclear ++. Para empezar, hacer cualquier ajuste a una base de datos relacional a menudo conlleva tiempo de inactividad, el tiempo de inactividad en el mundo de hoy ya no es aceptable. No es f\u00e1cil ampliar los nodos relacionales, por lo que nos limitamos a ampliarlos. El problema es que ampliarlos resulta costoso y tiene sus propias limitaciones. Tambi\u00e9n cabr\u00eda esperar un aumento lineal del rendimiento cuanta m\u00e1s potencia de c\u00e1lculo y almacenamiento se escalara; sin embargo, no es as\u00ed. Por si fuera poco, el enfoque de esquema forzado hac\u00eda que la arquitectura general fuera r\u00edgida, lo que dificultaba cualquier cambio en el conjunto de datos subyacente. En general, el coste total de propiedad de los sistemas relacionales era imposible de mantener, y en un mundo en el que la tecnolog\u00eda cambia a un ritmo cada vez m\u00e1s r\u00e1pido, se puede entender por qu\u00e9 la base de datos relacional necesitaba su sustituci\u00f3n para estas aplicaciones altamente interactivas.<\/p>\n<p>La idea de las tecnolog\u00edas NoSQL empez\u00f3 a aparecer. NoSQL incorporaba un enfoque distribuido, escalable y sin esquemas para almacenar la informaci\u00f3n. Ofrec\u00eda la posibilidad de ampliar y reducir la base de datos sin necesidad de tiempos de inactividad. No hab\u00eda restricciones en torno al conjunto de datos, lo que permit\u00eda un desarrollo r\u00e1pido y flexible. El coste total de propiedad de estas bases de datos es mucho menor y m\u00e1s f\u00e1cil de mantener, por lo que se adaptan mejor a las aplicaciones que requieren un alto nivel de interacci\u00f3n.<\/p>\n<p>&nbsp;<\/p>\n<h2>IoT y dispositivos perif\u00e9ricos<\/h2>\n<p>Una de las principales introducciones en el mundo del software fue el repentino auge de los dispositivos IOT y Edge. Estos dispositivos suelen consistir en una combinaci\u00f3n de hardware y software de menor tama\u00f1o y pueden actuar como puntos de entrada a la pila tecnol\u00f3gica subyacente. Un ejemplo importante de estos dispositivos es el uso de sensores y la capacidad de registrar continuamente datos que pueden volver a introducirse en la base de datos. Las bases de datos NoSQL permiten que estos dispositivos se multipliquen y crezcan sin preocuparse por el escalado, la rigidez y la alta disponibilidad, que un modelo relacional tendr\u00eda dificultades para proporcionar. En muchos de estos casos, la aplicaci\u00f3n abarcar\u00eda un alto nivel de operaciones de escritura y la informaci\u00f3n se analizar\u00eda en una fase posterior.<\/p>\n<p>&nbsp;<\/p>\n<h2>Caso pr\u00e1ctico<\/h2>\n<p>Ahora bien, aunque la capacidad de escalar c\u00f3modamente es un suspiro de alivio para la mayor\u00eda de los DBA, r\u00e1pidamente nos encontramos con un problema com\u00fan que todo el mundo intenta resolver, el aumento de los costes. La flexibilidad y la libertad de almacenar tantos datos como sea posible tambi\u00e9n tiene sus inconvenientes, por lo que el tama\u00f1o de estos cl\u00fasteres puede descontrolarse r\u00e1pidamente.<\/p>\n<p>Si tomamos como ejemplo un equipo de F\u00f3rmula 1 durante una carrera, podr\u00edan tener sensores integrados en el coche registrando estad\u00edsticas al milisegundo, podr\u00edan tener cientos o incluso miles de estos sensores alrededor del coche a lo largo de cada carrera. Aunque las lecturas individuales ser\u00edan peque\u00f1as, el n\u00famero total de documentos almacenados ascender\u00eda a millones, \u00a1y estoy siendo conservador! Una vez que tienen todos estos datos, necesitan realizar an\u00e1lisis casi en tiempo real, el resultado de estos an\u00e1lisis permitir\u00e1 al equipo hacer ajustes a lo largo de la carrera y mejorar a medida que avanzan. El problema no surge en ninguno de los escenarios anteriores, pero cuando se observa el cl\u00faster que lo soporta, se puede ver c\u00f3mo la cantidad de datos y el coste total de propiedad de esta base de datos se pueden ir r\u00e1pidamente de las manos. Para este equipo de F\u00f3rmula 1, sin embargo, resulta que despu\u00e9s de 15 minutos, la granularidad de las lecturas de los sensores en milisegundos ya no es tan necesaria y en su lugar est\u00e1n contentos de almacenar los promedios por segundo, despu\u00e9s de una hora, est\u00e1n contentos de almacenar los promedios por minuto, este proceso se puede repetir tanto como sea necesario.<\/p>\n<p>Por ejemplo, si observamos un conjunto de documentos que contienen m\u00faltiples lecturas de temperatura y presi\u00f3n, podr\u00edamos obtener un conjunto de documentos con el siguiente aspecto<\/p>\n<pre class=\"lang:default decode:true\">key = \"sensor::temp-press::2020-01-02T12:34:01\"\r\n{\r\n  \"ts\": \"2020-01-02 12:34:01\",\r\n  \"sensor\": \"tps-001\",\r\n  \"temperature\": 110.8,\r\n  \"pressure\": 21.2\r\n}\r\n\r\n...\r\n\r\nkey = \"sensor::temp-press::2020-01-02T12:34:58\"\r\n{\r\n  \"ts\": \"2020-01-02 12:34:58\",\r\n  \"sensor\": \"tps-001\",\r\n  \"temperature\": 112.7,\r\n  \"pressure\": 21.6\r\n}\r\n\r\nkey = \"sensor::temp-press::2020-01-02T12:34:59\"\r\n{\r\n  \"ts\": \"2020-01-02 12:34:59\",\r\n  \"sensor\": \"tps-001\",\r\n  \"temperature\": 113.1,\r\n  \"pressure\": 22.5<\/pre>\n<p>Para reducir el conjunto de datos y comprimir la informaci\u00f3n que tenemos, podr\u00edamos agregar los resultados en matrices de documentos mucho m\u00e1s peque\u00f1os<\/p>\n<pre class=\"lang:default decode:true\">key = \"sensor::tps-001::2020-01-02T12:34\"\r\n{\r\n  \"values\":\r\n  {\r\n    \"t\": [110.8, ... 112.7, 113.1],\r\n    \"p\": [21.2, ... 21.6, 22.5]\r\n  },\r\n  \"type\": \"temp-press\"\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p>Couchbase introdujo el servicio de eventos en la versi\u00f3n 5.5 que permite a las aplicaciones actuar sobre los datos subyacentes en el sistema, con l\u00f3gica de programaci\u00f3n JavaScript. Hay una herramienta \u00fatil en eventing llamada temporizadores que pueden retrasar la ejecuci\u00f3n de la l\u00f3gica. En el caso del equipo de F\u00f3rmula 1, pod\u00edan utilizar estos temporizadores y llamar repetidamente a las funciones de eventing para agregar los documentos en un tiempo determinado, pero antes de la versi\u00f3n 6.6 esto resultaba dif\u00edcil de repetir. Muchos de mis clientes han utilizado las tareas cron de Linux para programar dichas tareas y permitir que las funciones de eventos se ejecuten a intervalos regulares activ\u00e1ndolas mediante llamadas externas a la API REST.<\/p>\n<p>La versi\u00f3n 6.6 de Couchbase introdujo el temporizador recursivo. Permitiendo a los usuarios crear temporizadores dentro de la llamada de otro temporizador. En el punto de ejecuci\u00f3n, la l\u00f3gica agregar\u00eda los documentos dentro de un marco de tiempo dado y luego antes de salir, har\u00eda girar otro temporizador para repetir el proceso despu\u00e9s de un per\u00edodo de tiempo.<\/p>\n<p>Aunque parezca trivial, simplifica enormemente el proceso de recursividad y elimina la necesidad de utilizar tecnolog\u00edas externas para conseguir algo que podr\u00eda hacerse internamente.<\/p>\n<p>Por lo tanto, puede que no sientas la necesidad de la agregaci\u00f3n de documentos cuando empieces a utilizar una base de datos NoSQL. Para casos de uso intensivo de escritura o incluso cuando el coste total de propiedad empiece a aumentar, buscar\u00e1s cualquier idea y respuesta que puedas encontrar para ayudar a reducir la cantidad de datos que est\u00e1s almacenando, esperemos que esta entrada del blog y el nuevo temporizador recursivo puedan ser parte de tu soluci\u00f3n.<\/p>","protected":false},"excerpt":{"rendered":"<p>Where does it begin&#8230; IOT, Edge devices and NoSQL are all technologies that have increased in popularity in recent years. Allowing people to comfortably create interaction heavy applications, without the worry of stability and availability. One problem with the freedom [&hellip;]<\/p>","protected":false},"author":74466,"featured_media":10566,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1816,1819,7666,2273],"tags":[],"ppma_author":[9167],"class_list":["post-10560","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-server","category-data-modeling","category-edge-computing","category-eventing"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.2 (Yoast SEO v26.2) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Recursive Timers for Document Aggregation and Lower TCO with Couchbase Server 6.6 - The Couchbase Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/es\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Recursive Timers for Document Aggregation and Lower TCO with Couchbase Server 6.6\" \/>\n<meta property=\"og:description\" content=\"Where does it begin&#8230; IOT, Edge devices and NoSQL are all technologies that have increased in popularity in recent years. Allowing people to comfortably create interaction heavy applications, without the worry of stability and availability. One problem with the freedom [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-02T13:16:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-12T09:01:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/02\/Documents-Aggregation.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Daniel Bull, Associate Solutions Engineer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Bull, Associate Solutions Engineer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/\"},\"author\":{\"name\":\"Daniel Bull, Associate Solutions Engineer\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/7f9d5e0c7963a172db12fb5e5e2583e1\"},\"headline\":\"Recursive Timers for Document Aggregation and Lower TCO with Couchbase Server 6.6\",\"datePublished\":\"2021-02-02T13:16:15+00:00\",\"dateModified\":\"2024-09-12T09:01:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/\"},\"wordCount\":1389,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/02\/Documents-Aggregation.jpg\",\"articleSection\":[\"Couchbase Server\",\"Data Modeling\",\"Edge computing\",\"Eventing\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/\",\"name\":\"Recursive Timers for Document Aggregation and Lower TCO with Couchbase Server 6.6 - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/02\/Documents-Aggregation.jpg\",\"datePublished\":\"2021-02-02T13:16:15+00:00\",\"dateModified\":\"2024-09-12T09:01:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/02\/Documents-Aggregation.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/02\/Documents-Aggregation.jpg\",\"width\":1280,\"height\":720},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Recursive Timers for Document Aggregation and Lower TCO with Couchbase Server 6.6\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/7f9d5e0c7963a172db12fb5e5e2583e1\",\"name\":\"Daniel Bull, Associate Solutions Engineer\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/1a793e281f03204d89cd07cc2163a58e\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/daniel-bull-couchbase-engineering.jpeg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/daniel-bull-couchbase-engineering.jpeg\",\"caption\":\"Daniel Bull, Associate Solutions Engineer\"},\"description\":\"Daniel Bull is an Associate Solutions Engineer at Couchbase\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/daniel-bull-00a102b5\/\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/daniel-bull\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Recursive Timers for Document Aggregation and Lower TCO with Couchbase Server 6.6 - The Couchbase Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/es\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/","og_locale":"es_MX","og_type":"article","og_title":"Recursive Timers for Document Aggregation and Lower TCO with Couchbase Server 6.6","og_description":"Where does it begin&#8230; IOT, Edge devices and NoSQL are all technologies that have increased in popularity in recent years. Allowing people to comfortably create interaction heavy applications, without the worry of stability and availability. One problem with the freedom [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/es\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/","og_site_name":"The Couchbase Blog","article_published_time":"2021-02-02T13:16:15+00:00","article_modified_time":"2024-09-12T09:01:51+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/02\/Documents-Aggregation.jpg","type":"image\/jpeg"}],"author":"Daniel Bull, Associate Solutions Engineer","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Daniel Bull, Associate Solutions Engineer","Est. reading time":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/"},"author":{"name":"Daniel Bull, Associate Solutions Engineer","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/7f9d5e0c7963a172db12fb5e5e2583e1"},"headline":"Recursive Timers for Document Aggregation and Lower TCO with Couchbase Server 6.6","datePublished":"2021-02-02T13:16:15+00:00","dateModified":"2024-09-12T09:01:51+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/"},"wordCount":1389,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/02\/Documents-Aggregation.jpg","articleSection":["Couchbase Server","Data Modeling","Edge computing","Eventing"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/","url":"https:\/\/www.couchbase.com\/blog\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/","name":"Recursive Timers for Document Aggregation and Lower TCO with Couchbase Server 6.6 - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/02\/Documents-Aggregation.jpg","datePublished":"2021-02-02T13:16:15+00:00","dateModified":"2024-09-12T09:01:51+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/02\/Documents-Aggregation.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/02\/Documents-Aggregation.jpg","width":1280,"height":720},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/recursive-timers-for-document-aggregation-and-lower-tco-with-couchbase-server-6-6\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Recursive Timers for Document Aggregation and Lower TCO with Couchbase Server 6.6"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/7f9d5e0c7963a172db12fb5e5e2583e1","name":"Daniel Bull, Ingeniero de soluciones asociado","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/1a793e281f03204d89cd07cc2163a58e","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/daniel-bull-couchbase-engineering.jpeg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/daniel-bull-couchbase-engineering.jpeg","caption":"Daniel Bull, Associate Solutions Engineer"},"description":"Daniel Bull es Ingeniero de Soluciones Asociado en Couchbase","sameAs":["https:\/\/www.linkedin.com\/in\/daniel-bull-00a102b5\/"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/daniel-bull\/"}]}},"authors":[{"term_id":9167,"user_id":74466,"is_guest":0,"slug":"daniel-bull","display_name":"Daniel Bull, Associate Solutions Engineer","avatar_url":{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/daniel-bull-couchbase-engineering.jpeg","url2x":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/07\/daniel-bull-couchbase-engineering.jpeg"},"author_category":"","last_name":"Bull","first_name":"Daniel","job_title":"","user_url":"","description":"Daniel Bull es Ingeniero de Soluciones Asociado en Couchbase"}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/10560","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/74466"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=10560"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/10560\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/10566"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=10560"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=10560"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=10560"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=10560"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}