{"id":7782,"date":"2019-10-29T07:19:51","date_gmt":"2019-10-29T14:19:51","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=7782"},"modified":"2019-10-25T14:51:30","modified_gmt":"2019-10-25T21:51:30","slug":"is-no-processing-better-than-some-processing","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/is-no-processing-better-than-some-processing\/","title":{"rendered":"\u00bfEs mejor no procesar que procesar?"},"content":{"rendered":"<p>Hagamos un peque\u00f1o experimento mental.<\/p>\n<p>S\u00ed, lo s\u00e9, pensando. \u00bfQui\u00e9n quiere hacer eso?<\/p>\n<p>\u00a1Espera!<\/p>\n<p>Antes de que me dejes de lado y pases al siguiente post sobre \u00edndices sexys...<\/p>\n<p>Al menos dame un par de minutos.<\/p>\n<p>Supongamos que tiene un sitio web.<\/p>\n<p>Bueno, no cualquier sitio web...<\/p>\n<p>Eso es demasiado gen\u00e9rico.<\/p>\n<p>Digamos que tienes un sitio web de viajes.<\/p>\n<p>Un lugar donde la gente viene a hacer reservas de avi\u00f3n.<\/p>\n<p>Creo que todos hemos usado uno de esos alguna vez.<\/p>\n<p>As\u00ed, sus usuarios llegan a su sitio y quieren ver qu\u00e9 vuelos est\u00e1n disponibles.<\/p>\n<p>\u00bfQu\u00e9 es lo primero que hacen?<\/p>\n<p>\u00bfEscriben una pregunta a mano?<\/p>\n<p>Hoy en d\u00eda, no.<\/p>\n<p>Probablemente empiecen seleccionando desde d\u00f3nde quieren salir.<\/p>\n<p>Su aeropuerto local.<\/p>\n<p>Y luego probablemente quieran seleccionar a d\u00f3nde quieren ir.<\/p>\n<p>As\u00ed que, dos opciones, ambos aeropuertos.<\/p>\n<p>Podr\u00edas hacerles adivinar qu\u00e9 aeropuertos hay cerca.<\/p>\n<p>Por lo general, introduzco la ciudad a la que tengo que ir y dejo que el sitio web averig\u00fce a qu\u00e9 aeropuerto tengo que volar.<\/p>\n<p>Pero supongamos que sus usuarios ya conocen los aeropuertos de ambos extremos de su viaje.<\/p>\n<p>Facilita nuestro peque\u00f1o experimento mental.<\/p>\n<p>Por tanto, debe presentar al usuario una lista de aeropuertos entre los que elegir.<\/p>\n<p>S\u00ed, ser\u00e1 una larga lista.<\/p>\n<p>Parece que hay muchos aeropuertos repartidos por el mundo.<\/p>\n<p>S\u00f3lo cargando nuestro cubo de muestras de viaje tenemos casi 2.000.<\/p>\n<p>T\u00edo, \u00a1son muchos aeropuertos!<\/p>\n<p>Alguien introdujo muchos datos...<\/p>\n<p>Pero lo bueno de los aeropuertos es que no cambian tan a menudo.<\/p>\n<p>Quiero decir, s\u00ed, se est\u00e1n construyendo nuevos...<\/p>\n<p>Y a los viejos dej\u00e1ndolos en la ruina...<\/p>\n<p>Pero todo eso ocurre con el tiempo.<\/p>\n<p>Por lo general, el abandono de un aeropuerto se debe a la construcci\u00f3n de otro m\u00e1s nuevo y brillante.<\/p>\n<p>Y se tarda mucho tiempo en construir un nuevo aeropuerto.<\/p>\n<p>No es que los vomiten todos los d\u00edas.<\/p>\n<p>As\u00ed que, volviendo a nuestra lista de aeropuertos...<\/p>\n<p>Larga o no, tendr\u00e1 que proporcionar alg\u00fan tipo de lista de aeropuertos para que el usuario elija.<\/p>\n<p>Y si su sitio web tiene mucho tr\u00e1fico, puede haber muchos usuarios.<\/p>\n<p>Y todos queremos que nuestros sitios web est\u00e9n ocupados.<\/p>\n<p>As\u00ed que vamos a seguir adelante y asumir que nuestro sitio web no s\u00f3lo ocupado ...<\/p>\n<p>Est\u00e1 muy ocupado.<\/p>\n<p>Millones de usuarios cada d\u00eda.<\/p>\n<p>Miles de usuarios cada minuto.<\/p>\n<p>Son muchas veces las que tienes que servir esa lista de aeropuertos.<\/p>\n<p>As\u00ed pues, vamos a empezar suponiendo que los documentos del aeropuerto de tu bucket de Couchbase est\u00e1n estructurados como los de nuestro bucket de muestra de viajes.<\/p>\n<p>Oye, viene con nuestro producto Couchbase Server, \u00a1m\u00e1s vale usarlo!<\/p>\n<p>Facilita las cosas...<\/p>\n<p>As\u00ed pues, basta con enumerar los aeropuertos mediante una simple consulta N1QL:<\/p>\n<pre class=\"\">SELECT `travel-sample`.*\r\nFROM `travel-sample`\r\nWHERE type = \"airport\"\r\n;<\/pre>\n<p>Nos da esto:<\/p>\n<pre class=\"\">[\r\n {\r\n  \"airportname\": \"Calais Dunkerque\",\r\n  \"city\": \"Calais\",\r\n  \"country\": \"France\",\r\n  \"faa\": \"CQF\",\r\n  \"geo\": {\r\n    \"alt\": 12,\r\n    \"lat\": 50.962097,\r\n    \"lon\": 1.954764\r\n  },\r\n  \"icao\": \"LFAC\",\r\n  \"id\": 1254,\r\n  \"type\": \"airport\",\r\n  \"tz\": \"Europe\/Paris\"\r\n },\r\n {\r\n  \"airportname\": \"Peronne St Quentin\",\r\n  \"city\": \"Peronne\",\r\n  \"country\": \"France\",\r\n  \"faa\": null,\r\n  \"geo\": {\r\n    \"alt\": 295,\r\n    \"lat\": 49.868547,\r\n    \"lon\": 3.029578\r\n  },\r\n  \"icao\": \"LFAG\",\r\n  \"id\": 1255,\r\n  \"type\": \"airport\",\r\n  \"tz\": \"Europe\/Paris\"\r\n },\r\n...\r\n]<\/pre>\n<p>Hmm, no va a ser f\u00e1cil encontrar lo que nuestros usuarios necesitan en esto. Tal vez si lo ordenamos por el c\u00f3digo de aeropuerto de la FAA, y luego eliminamos aquellos en los que el c\u00f3digo es nulo...<\/p>\n<pre class=\"\">[\r\n {\r\n  \"airportname\": \"Lansdowne Airport\",\r\n  \"city\": \"Youngstown\",\r\n  \"country\": \"United States\",\r\n  \"faa\": \"04G\",\r\n  \"geo\": {\r\n    \"alt\": 1044,\r\n    \"lat\": 41.1304722,\r\n    \"lon\": -80.6195833\r\n  },\r\n  \"icao\": null,\r\n  \"id\": 8534,\r\n  \"type\": \"airport\",\r\n  \"tz\": \"America\/New_York\"\r\n },\r\n {\r\n  \"airportname\": \"Moton Field Municipal Airport\",\r\n  \"city\": \"Tuskegee\",\r\n  \"country\": \"United States\",\r\n  \"faa\": \"06A\",\r\n  \"geo\": {\r\n    \"alt\": 264,\r\n    \"lat\": 32.4605722,\r\n    \"lon\": -85.6800278\r\n  },\r\n  \"icao\": null,\r\n  \"id\": 8317,\r\n  \"type\": \"airport\",\r\n  \"tz\": \"America\/Chicago\"\r\n },\r\n...\r\n]<\/pre>\n<p>Eso est\u00e1 mejor, pero son m\u00e1s datos de los que necesitamos proporcionar al sitio web.<\/p>\n<p>As\u00ed pues, reduzcamos lo que estamos devolviendo al c\u00f3digo de la FAA, el nombre del aeropuerto, la ciudad y el pa\u00eds:<\/p>\n<pre class=\"\">[\r\n {\r\n  \"airportname\": \"Lansdowne Airport\",\r\n  \"city\": \"Youngstown\",\r\n  \"country\": \"United States\",\r\n  \"faa\": \"04G\"\r\n },\r\n {\r\n  \"airportname\": \"Moton Field Municipal Airport\",\r\n  \"city\": \"Tuskegee\",\r\n  \"country\": \"United States\",\r\n  \"faa\": \"06A\"\r\n },\r\n...\r\n]<\/pre>\n<p>Bien, ahora vamos a lo que buscamos.<\/p>\n<p>Por lo tanto, si hacemos una consulta obtendremos, digamos, un tiempo de respuesta de unos 50-60 ms.<\/p>\n<p>No est\u00e1 mal.<\/p>\n<p>Pero con miles de peticiones de esta lista cada minuto...<\/p>\n<p>Hmm, tal vez podamos acelerar las cosas un poco.<\/p>\n<p>Hagamos una consulta cubierta a\u00f1adiendo nuestro propio \u00edndice que incluya todo lo que necesitamos.<\/p>\n<pre class=\"\">CREATE INDEX myFaaIndex on `travel-sample`(faa asc,airportname,city,country)\r\nWHERE type = \"airport\" AND faa IS NOT NULL;<\/pre>\n<p>Y ahora volvemos a ejecutar la consulta y obtenemos un tiempo de respuesta en torno a 17,5 ms.<\/p>\n<p>Mucho mejor.<\/p>\n<p>Pero, \u00bfes posible hacerlo a\u00fan mejor?<\/p>\n<p>Esta lista ser\u00e1 solicitada miles de veces cada minuto.<\/p>\n<p>Esos milisegundos se acumulan.<\/p>\n<p>\u00bfY si tomamos los resultados de esta consulta y los guardamos en un \u00fanico documento?<\/p>\n<p>Llam\u00e9mosla \"lista_de_aeropuertos\".<\/p>\n<p>As\u00ed que ahora, si ejecutamos una consulta seleccionando todo el documento con la cl\u00e1usula \"USE KEYS\":<\/p>\n<pre class=\"\">SELECT `travel-sample`.*\r\nFROM `travel-sample`\r\nUSE KEYS \"airport_list\";<\/pre>\n<p>Esto nos da un tiempo de respuesta de unos 14,5 ms.<\/p>\n<p>Hmm, \u00a1ahorr\u00e9 otros 3 milisegundos enteros!<\/p>\n<p>Y podr\u00edamos ahorrar otro medio milisegundo o dos si utilizamos el acceso clave-valor y obtenemos el documento por su ID directamente del servicio de datos.<\/p>\n<p>Para un documento que debe servirse miles de veces por minuto.<\/p>\n<p>Millones de veces al d\u00eda.<\/p>\n<p>Esos milisegundos se acumulan.<\/p>\n<p>S\u00ed, ya lo s\u00e9. Los aeropuertos cambian de vez en cuando.<\/p>\n<p>S\u00ed, pero no cambian muy a menudo.<\/p>\n<p>S\u00ed, este documento tendr\u00e1 que ser sustituido cada cierto tiempo.<\/p>\n<p>Pero esa es una operaci\u00f3n que no est\u00e1 sirviendo a un sitio web de alta actividad.<\/p>\n<p>As\u00ed que a qui\u00e9n le importa lo lento (comparativamente) que pueda ser el proceso.<\/p>\n<p>Adem\u00e1s, \u00a1ya no necesito mi \u00edndice de cobertura!<\/p>\n<p>Puedo ahorrar un poco de espacio en mi servidor de \u00edndices.<\/p>\n<p>\u00a1Woo-hoo! \u00a1Bonus!<\/p>\n<p>S\u00ed, lo s\u00e9. Me emociono con cosas raras...<\/p>\n<p>Bien, esto ha sido un ejercicio para reducir el tiempo de respuesta en milisegundos. \u00bfQu\u00e9 tal una consulta que tarda un poco m\u00e1s y hace m\u00e1s?<\/p>\n<p>Supongamos que dirige un centro de llamadas y es importante controlar la rapidez con la que su equipo atiende las llamadas entrantes...<\/p>\n<p>Bien, seamos un poco m\u00e1s espec\u00edficos.<\/p>\n<p>Supongamos que desea disponer de un cuadro de mandos que muestre cu\u00e1ntas llamadas se han contestado en cinco segundos, en diez segundos y el n\u00famero total de llamadas que han entrado hoy.<\/p>\n<p>Algo as\u00ed como...<\/p>\n<pre class=\"\">SELECT SUM(five) as fiveCount, SUM(ten) as tenCount, SUM(incoming) as callCount\r\nFROM\r\n (SELECT\r\n    CASE \r\n      WHEN connectTime = 0 AND (endTime - startTime) <= 5000 THEN 1 \r\n      WHEN connectTime > 0 AND (acceptTime - startTime) <= 5000 THEN 1\r\n      ELSE 0 END as five,\r\n    CASE \r\n      WHEN connectTime = 0 AND (endTime - startTime) <= 10000 THEN 1 \r\n      WHEN connectTime > 0 AND (acceptTime - startTime) <= 10000 THEN 1 \r\n      ELSE 0 END as ten, \r\n    1 as incoming \r\n  FROM sigc \r\n  WHERE type='cdr' AND startTime > $today\r\n    AND callType BETWEEN 10 AND 2000) as calls\r\n;<\/pre>\n<p>As\u00ed, se empieza con un \u00edndice sobre las propiedades startTime y callType, limit\u00e1ndolo a documentos de tipo \"cdr\", s\u00f3lo para descubrir que se tarda alrededor de un segundo en ejecutar esta consulta.<\/p>\n<p>Y \u00e9sta no es la \u00fanica consulta que querr\u00e1s utilizar para rellenar tu cuadro de mandos...<\/p>\n<p>\u00a1Uf, esto va a ser tan lento como la melaza!<\/p>\n<p>De acuerdo, vamos a crear un nuevo \u00edndice con todas las propiedades, haciendo una consulta cubierta, s\u00f3lo para descubrir que, aunque ha mejorado, sigue tardando unos 100 milisegundos.<\/p>\n<p>\u00a1Eso es una mejora de 10 veces! Es genial, \u00bfverdad?<\/p>\n<p>S\u00f3lo que tu tablero de mandos sigue actualiz\u00e1ndose como si funcionara en melaza.<\/p>\n<p>Melaza fina y acuosa, pero a\u00fan as\u00ed...<\/p>\n<p>\u00bfQu\u00e9 podemos hacer para mejorar esto?<\/p>\n<p>\u00bfY si, en lugar de utilizar esta consulta para alimentar el cuadro de mandos, tomamos el resultado y lo utilizamos para crear un nuevo documento con s\u00f3lo los resultados?<\/p>\n<p>Algo con un nombre conocido, como call_stats_...<\/p>\n<p>Y podemos ejecutar esta consulta en un temporizador, utilizando un cron job, o lanzarla utilizando el servicio Couchbase Eventing.<\/p>\n<p>S\u00f3lo si lo activamos desde el servicio Eventing, probablemente querremos ejecutarlo con una consistencia de escaneo de al menos at_plus para incluir la actualizaci\u00f3n del documento que est\u00e1 utilizando para activar la consulta.<\/p>\n<p>Pero ahora, cuando recuperamos el documento resultante, obtenemos tiempos de respuesta de un solo d\u00edgito de milisegundo, \u00a1lo que supone una mejora del rendimiento de casi 1.000 veces!<\/p>\n<p>Y ahora tenemos un salpicadero con capacidad de respuesta.<\/p>\n<p>\u00a1\u00a1\u00a1WOO-HOO!!!<\/p>\n<p>Ahora estamos hablando de velocidad turbo.<\/p>\n<p>Entonces, \u00bfcu\u00e1l es la lecci\u00f3n de estos dos escenarios?<\/p>\n<p>Pues bien, al tomar cualquier proceso que necesit\u00e1ramos realizar en los datos y convertirlo en tareas en segundo plano, de modo que nuestras solicitudes interactivas de datos no impliquen ning\u00fan proceso, hemos agilizado mucho las cosas...<\/p>\n<p>M\u00e1s r\u00e1pido que una bala.<\/p>\n<p>Disc\u00falpenos Superman, estamos pasando...<\/p>\n<p>\u00bfEra tan doloroso ese experimento mental?<\/p>\n<p>Ahora vamos con esos \u00edndices sexys...<\/p>\n<p>Couchbase, el poder de los empollones de datos de todo el mundo...<\/p>\n<p>(\u00a1Eh, Peter, creo que ya tengo nuestro nuevo eslogan!)<\/p>","protected":false},"excerpt":{"rendered":"<p>Let\u2019s do a little thought experiment. Yeah, I know, thinking. Who wants to do that? Wait! Before you tune me out and browse on to the next post on sexy indexes&#8230; At least give me a couple of minutes. Let\u2019s [&hellip;]<\/p>","protected":false},"author":41537,"featured_media":7781,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1814,1819],"tags":[],"ppma_author":[9086],"class_list":["post-7782","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-application-design","category-data-modeling"],"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>Is No Processing Better Than Some Processing? - 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\/is-no-processing-better-than-some-processing\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Is No Processing Better Than Some Processing?\" \/>\n<meta property=\"og:description\" content=\"Let\u2019s do a little thought experiment. Yeah, I know, thinking. Who wants to do that? Wait! Before you tune me out and browse on to the next post on sexy indexes&#8230; At least give me a couple of minutes. Let\u2019s [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/is-no-processing-better-than-some-processing\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-10-29T14:19:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/10\/AirplaneHeader.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2048\" \/>\n\t<meta property=\"og:image:height\" content=\"589\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Davis Chapman\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Davis Chapman\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/is-no-processing-better-than-some-processing\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/is-no-processing-better-than-some-processing\/\"},\"author\":{\"name\":\"Davis Chapman\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5dfa15a576b0656f5568265c860729e5\"},\"headline\":\"Is No Processing Better Than Some Processing?\",\"datePublished\":\"2019-10-29T14:19:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/is-no-processing-better-than-some-processing\/\"},\"wordCount\":1303,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/is-no-processing-better-than-some-processing\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/10\/AirplaneHeader.png\",\"articleSection\":[\"Application Design\",\"Data Modeling\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/is-no-processing-better-than-some-processing\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/is-no-processing-better-than-some-processing\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/is-no-processing-better-than-some-processing\/\",\"name\":\"Is No Processing Better Than Some Processing? - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/is-no-processing-better-than-some-processing\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/is-no-processing-better-than-some-processing\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/10\/AirplaneHeader.png\",\"datePublished\":\"2019-10-29T14:19:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/is-no-processing-better-than-some-processing\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/is-no-processing-better-than-some-processing\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/is-no-processing-better-than-some-processing\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/10\/AirplaneHeader.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/10\/AirplaneHeader.png\",\"width\":2048,\"height\":589},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/is-no-processing-better-than-some-processing\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Is No Processing Better Than Some Processing?\"}]},{\"@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\/5dfa15a576b0656f5568265c860729e5\",\"name\":\"Davis Chapman\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/5685854cb1346b5427fb6d5ce53daf4a\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1bcbb0d36ee45a118a98d5138f85da1dfff72f2e40c4ca2d5e279f44aa0d6fd9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1bcbb0d36ee45a118a98d5138f85da1dfff72f2e40c4ca2d5e279f44aa0d6fd9?s=96&d=mm&r=g\",\"caption\":\"Davis Chapman\"},\"description\":\"Davis Chapman calls himself a Solution Architect, claims to be employed by Couchbase, and is supposedly part of our Professional Services team. He says that he\u2019s been in the industry for decades, and has been involved in application development for most of that time. Hmm, we'll have to check on that...\",\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/davis-chapman\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Is No Processing Better Than Some Processing? - 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\/is-no-processing-better-than-some-processing\/","og_locale":"es_MX","og_type":"article","og_title":"Is No Processing Better Than Some Processing?","og_description":"Let\u2019s do a little thought experiment. Yeah, I know, thinking. Who wants to do that? Wait! Before you tune me out and browse on to the next post on sexy indexes&#8230; At least give me a couple of minutes. Let\u2019s [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/es\/is-no-processing-better-than-some-processing\/","og_site_name":"The Couchbase Blog","article_published_time":"2019-10-29T14:19:51+00:00","og_image":[{"width":2048,"height":589,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/10\/AirplaneHeader.png","type":"image\/png"}],"author":"Davis Chapman","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Davis Chapman","Est. reading time":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/is-no-processing-better-than-some-processing\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/is-no-processing-better-than-some-processing\/"},"author":{"name":"Davis Chapman","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/5dfa15a576b0656f5568265c860729e5"},"headline":"Is No Processing Better Than Some Processing?","datePublished":"2019-10-29T14:19:51+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/is-no-processing-better-than-some-processing\/"},"wordCount":1303,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/is-no-processing-better-than-some-processing\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/10\/AirplaneHeader.png","articleSection":["Application Design","Data Modeling"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/is-no-processing-better-than-some-processing\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/is-no-processing-better-than-some-processing\/","url":"https:\/\/www.couchbase.com\/blog\/is-no-processing-better-than-some-processing\/","name":"Is No Processing Better Than Some Processing? - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/is-no-processing-better-than-some-processing\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/is-no-processing-better-than-some-processing\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/10\/AirplaneHeader.png","datePublished":"2019-10-29T14:19:51+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/is-no-processing-better-than-some-processing\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/is-no-processing-better-than-some-processing\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/is-no-processing-better-than-some-processing\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/10\/AirplaneHeader.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/10\/AirplaneHeader.png","width":2048,"height":589},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/is-no-processing-better-than-some-processing\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Is No Processing Better Than Some Processing?"}]},{"@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\/5dfa15a576b0656f5568265c860729e5","name":"Davis Chapman","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/5685854cb1346b5427fb6d5ce53daf4a","url":"https:\/\/secure.gravatar.com\/avatar\/1bcbb0d36ee45a118a98d5138f85da1dfff72f2e40c4ca2d5e279f44aa0d6fd9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1bcbb0d36ee45a118a98d5138f85da1dfff72f2e40c4ca2d5e279f44aa0d6fd9?s=96&d=mm&r=g","caption":"Davis Chapman"},"description":"Davis Chapman se hace llamar Arquitecto de Soluciones, dice ser empleado de Couchbase, y supuestamente forma parte de nuestro equipo de Servicios Profesionales. Dice que lleva d\u00e9cadas en la industria, y que ha estado involucrado en el desarrollo de aplicaciones durante la mayor parte de ese tiempo. Hmm, tendremos que comprobarlo...","url":"https:\/\/www.couchbase.com\/blog\/es\/author\/davis-chapman\/"}]}},"authors":[{"term_id":9086,"user_id":41537,"is_guest":0,"slug":"davis-chapman","display_name":"Davis Chapman","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/1bcbb0d36ee45a118a98d5138f85da1dfff72f2e40c4ca2d5e279f44aa0d6fd9?s=96&d=mm&r=g","author_category":"","last_name":"Chapman","first_name":"Davis","job_title":"","user_url":"","description":"Davis Chapman se hace llamar Arquitecto de Soluciones, dice ser empleado de Couchbase, y supuestamente forma parte de nuestro equipo de Servicios Profesionales. Dice que lleva d\u00e9cadas en la industria, y que ha estado involucrado en el desarrollo de aplicaciones durante la mayor parte de ese tiempo. Hmm, tendremos que comprobarlo..."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/7782","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\/41537"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=7782"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/7782\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/7781"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=7782"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=7782"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=7782"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=7782"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}