{"id":8882,"date":"2020-07-20T00:44:00","date_gmt":"2020-07-20T07:44:00","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=8882"},"modified":"2023-09-22T09:32:00","modified_gmt":"2023-09-22T16:32:00","slug":"a-tale-of-two-ejection-methods-value-only-vs-full","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/a-tale-of-two-ejection-methods-value-only-vs-full\/","title":{"rendered":"Historia de dos m\u00e9todos de eyecci\u00f3n: S\u00f3lo valor frente a completo"},"content":{"rendered":"<h2>Introducci\u00f3n<\/h2>\n<p><em>Me gustar\u00eda agradecer a nuestro equipo de ingenieros de Couchbase Server - especialmente, Dave Rigby y Jim Walker - por su tremenda ayuda con este art\u00edculo y su infinita paciencia con todas mis preguntas.  Muchas gracias chicos, \u00a1realmente aprecio vuestro vasto conocimiento y vuestra disposici\u00f3n a compartirlo!<\/em><\/p>\n<p>En Couchbase Server, los datos se almacenan en buckets.  Por defecto <a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/buckets-memory-and-storage\/buckets.html\" target=\"_blank\" rel=\"noopener noreferrer\">tipo de cubo<\/a> - llamado de forma poco creativa <strong>Couchbase<\/strong> tipo - asegura la persistencia as\u00edncrona de los datos en disco.  El servidor intentar\u00e1 tener todos sus datos, el conjunto activo y el conjunto o conjuntos de r\u00e9plica, en memoria.  Sin embargo, si los datos en memoria alcanzan 85% de la cuota de memoria del bucket (este nivel se denomina <strong>marca de pleamar<\/strong>), el servidor empezar\u00e1 a expulsar (desalojar) de la memoria algunos de los documentos no utilizados recientemente.  Los documentos activos tienen 40% posibilidades de ser desalojados, y los documentos r\u00e9plica tienen 60% posibilidades de ser desalojados.  La raz\u00f3n es la siguiente: es m\u00e1s importante que los documentos activos residan en memoria; sin embargo, tambi\u00e9n queremos algunas r\u00e9plicas de documentos en memoria, en caso de que un nodo falle y las r\u00e9plicas necesiten activarse.  El proceso de desalojo contin\u00faa hasta que los datos en memoria se sit\u00faan por debajo de 75% de la cuota de memoria del bucket (este nivel se denomina <strong>marca de bajamar<\/strong>).<\/p>\n<p>S\u00f3lo un breve recordatorio sobre la estructura de los documentos almacenados en Couchbase:<\/p>\n<ul>\n<li>Documento <strong>clave<\/strong> o <strong>ID<\/strong>longitud variable - hasta 250 bytes, debe ser \u00fanica para los documentos almacenados en el mismo bucket<\/li>\n<li>Documento <strong>metadatos<\/strong>longitud fija - 56 bytes para documentos almacenados en el tipo de bucket Couchbase, 72 bytes para documentos almacenados en el tipo de bucket Ef\u00edmero (este tipo de bucket queda fuera del \u00e1mbito de este art\u00edculo)<\/li>\n<li>Documento <strong>valor<\/strong>Longitud variable: hasta 20 MB, normalmente JSON, aunque tambi\u00e9n pueden utilizarse otros formatos.<\/li>\n<\/ul>\n<h2>Dos m\u00e9todos de expulsi\u00f3n<\/h2>\n<p>Por defecto, un bucket Couchbase utiliza <strong>S\u00f3lo valores<\/strong> m\u00e9todo de expulsi\u00f3n (o desalojo).  Hace muchas versiones, \u00e9sta era la \u00fanica opci\u00f3n disponible.  Como su nombre indica, el proceso de expulsi\u00f3n <strong>eliminar\u00e1 s\u00f3lo el valor<\/strong> de los documentos y <strong>mantendr\u00e1 las claves y metadatos del documento en memoria en todo momento<\/strong>.<\/p>\n<p>A partir de la versi\u00f3n 3.0 (<a href=\"https:\/\/www.couchbase.com\/blog\/es\/downloads\/\" target=\"_blank\" rel=\"noopener noreferrer\">Servidor Couchbase<\/a> se encuentra en la versi\u00f3n 6.5.1 en el momento de redactar este documento), hemos a\u00f1adido la funci\u00f3n <strong>Completo<\/strong> m\u00e9todo de expulsi\u00f3n.  Es f\u00e1cil adivinar que un cubo configurado para la expulsi\u00f3n total <strong>eliminar\u00e1 las claves, metadatos y valores de los documentos<\/strong> como parte del proceso de expulsi\u00f3n.<\/p>\n<h2>Compromiso: rendimiento frente a tama\u00f1o de memoria<\/h2>\n<p>Entonces, \u00bfqu\u00e9 opci\u00f3n deber\u00edas elegir para tus buckets?  Esto es lo que explica el tooltip en la GUI de nuestra \u00faltima versi\u00f3n de Couchbase Server:<\/p>\n<ul>\n<li><em><strong>Expulsi\u00f3n de valor:<\/strong> Durante la expulsi\u00f3n, s\u00f3lo se expulsar\u00e1 el valor (la clave y los metadatos permanecer\u00e1n en memoria).<\/em><\/li>\n<li><em><strong>Expulsi\u00f3n total:<\/strong>\u00a0Durante la expulsi\u00f3n, se expulsar\u00e1 todo (incluida la clave, los metadatos y el valor).<\/em><br \/>\n<em>Value Ejection necesita m\u00e1s memoria del sistema, pero proporciona el mejor rendimiento. La expulsi\u00f3n completa reduce la sobrecarga de memoria necesaria.<\/em><\/li>\n<\/ul>\n<p>Para ser m\u00e1s precisos, <strong>ni<\/strong> m\u00e9todo \"<em>necesita m\u00e1s memoria del sistema<\/em>\u201c: <strong>Completo<\/strong> expulsi\u00f3n permite que el conjunto de datos supere la memoria de forma significativa, mientras que <strong>Valor<\/strong> La eyecci\u00f3n permite que el conjunto de datos sea mayor que la memoria hasta cierto punto, ya que debe mantener las claves y los metadatos en memoria.<\/p>\n<p>Si <strong>latencia de lectura constante<\/strong> de las aplicaciones que trabajan con los datos en Couchbase Server es (muy) importante, deber\u00edas ce\u00f1irte a la expulsi\u00f3n de valores.  Esto tambi\u00e9n requiere que <strong>dimensione su cluster<\/strong> correctamente, asigne <strong>cuotas de memoria suficientes<\/strong> a sus cubos, aplique <strong>conservaci\u00f3n de documentos<\/strong> pol\u00edticas (archivar o eliminar peri\u00f3dicamente los documentos antiguos), y <strong>supervisar el uso de la memoria<\/strong>.<\/p>\n<p>Si se queda en <strong>presupuesto o l\u00edmites de la tecnolog\u00eda existente<\/strong> es (muy) importante, entonces deber\u00edas considerar el desalojo completo para tus buckets grandes.  Este puede ser el caso cuando est\u00e1s al m\u00e1ximo de tus recursos de hardware locales, y no hay manera de exprimir m\u00e1s RAM en tus nodos Couchbase.  Cuando el dinero es escaso para el gasto en tecnolog\u00eda local o en la nube, el rendimiento puede salvar el d\u00eda.<\/p>\n<p>Otra raz\u00f3n para considerar la eyecci\u00f3n completa es cuando espera que su conjunto de datos sea <strong>grande<\/strong>para que <strong>superar<\/strong> configuraciones de memoria razonables.  \u00bfQu\u00e9 tama\u00f1o tiene <strong>grande<\/strong>?  Digamos miles de millones (\u00a1s\u00ed, en plural!) de documentos, decenas (\u00a1tambi\u00e9n en plural!) de terabytes de datos.  Nuestros ingenieros y arquitectos de soluciones est\u00e1n siempre a su disposici\u00f3n para ayudarle. <a href=\"https:\/\/docs.couchbase.com\/server\/current\/install\/sizing-general.html\" target=\"_blank\" rel=\"noopener noreferrer\">dimensionar su cluster Couchbase<\/a> correctamente - por favor, hable con nosotros.<\/p>\n<p>Aunque es posible cambiar de un m\u00e9todo de expulsi\u00f3n a otro, es una de las pocas operaciones que requieren reiniciar el cubo y, por tanto, cierto tiempo de inactividad.  Mostramos la siguiente advertencia en letra roja en la interfaz de usuario cuando se intenta cambiar el m\u00e9todo de expulsi\u00f3n: <span style=\"color: #ff0000\">Cambiar la pol\u00edtica de desalojo reiniciar\u00e1 el cubo. Esto provocar\u00e1 el cierre de todas las conexiones abiertas y un cierto tiempo de inactividad<span style=\"color: #000000\">.  Por lo tanto, es aconsejable decidir el m\u00e9todo de expulsi\u00f3n de sus cubos antes de ponerlos en producci\u00f3n.<\/span><\/span><\/p>\n<h2>\u00bfA qu\u00e9 se debe la diferencia de rendimiento?<\/h2>\n<p>Veamos los diferentes escenarios para los m\u00e9todos de expulsi\u00f3n de cubos y la residencia de datos.  Esto nos ayudar\u00e1 a entender c\u00f3mo se ve afectado el rendimiento.<\/p>\n<h3>1. Residencia de datos completa<\/h3>\n<p>Cuando los datos son totalmente residentes (es decir, caben en ~85% de la cuota de memoria del bucket), el rendimiento de los buckets de s\u00f3lo valor y de eyecci\u00f3n completa deber\u00eda ser similar.  Las operaciones con documentos funcionan como se muestra a continuaci\u00f3n:<\/p>\n<ul>\n<li>Obtener (leer) un documento con clave = perfil::john-doe::123\n<ul>\n<li><span style=\"color: #008000\">R\u00c1PIDO<\/span>: comprueba en memoria si esta clave existe.\n<ul>\n<li><span style=\"color: #008000\">R\u00c1PIDO<\/span>: En caso afirmativo, devuelva el documento de memoria.<\/li>\n<li><span style=\"color: #008000\">R\u00c1PIDO<\/span>: Si no, devuelve el error \"el documento no existe\".<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>Insertar un documento con clave = perfil::john-doe::123\n<ul>\n<li><span style=\"color: #008000\">R\u00c1PIDO<\/span>: comprueba en memoria si esta clave existe.\n<ul>\n<li><span style=\"color: #008000\">R\u00c1PIDO<\/span>: En caso afirmativo, devuelve el error \"el documento ya existe\".<\/li>\n<li><span style=\"color: #008000\">R\u00c1PIDO<\/span>: Si no, escribe el documento en memoria.  A continuaci\u00f3n, persistirlo y replicarlo de forma as\u00edncrona.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>Sustituir un documento con clave = = perfil::john-doe::123\n<ul>\n<li><span style=\"color: #008000\">R\u00c1PIDO<\/span>: comprueba en memoria si esta clave existe.\n<ul>\n<li><span style=\"color: #008000\">R\u00c1PIDO<\/span>: En caso afirmativo, guarda los cambios en memoria.  A continuaci\u00f3n, pers\u00edstelos y repl\u00edcalos de forma as\u00edncrona.<\/li>\n<li><span style=\"color: #008000\">R\u00c1PIDO<\/span>: Si no, devuelve el error \"el documento no existe\".<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>2. Residencia parcial de datos, expulsi\u00f3n s\u00f3lo de valores<\/h3>\n<p>Cuando la residencia de datos es inferior a 100% para un cubo con <strong>s\u00f3lo valores<\/strong> eyecci\u00f3n, Couchbase Server sabe que <strong>las claves del documento y los metadatos siguen en memoria<\/strong>.  Por lo tanto, las operaciones documentales tendr\u00e1n el siguiente aspecto:<\/p>\n<ul>\n<li>Obtener (leer) un documento con clave = perfil::john-doe::123\n<ul>\n<li><span style=\"color: #008000\">R\u00c1PIDO<\/span>: comprueba en memoria si esta clave existe.\n<ul>\n<li><span style=\"color: #008000\">R\u00c1PIDO<\/span>: En caso afirmativo, compruebe si el valor del documento est\u00e1 en memoria\n<ul>\n<li><span style=\"color: #008000\">R\u00c1PIDO<\/span>: En caso afirmativo, devuelva el documento de memoria.<\/li>\n<li><span style=\"color: #ff6600\">LENTO<\/span>: Si no, lee el documento del disco a la memoria y lo devuelve.<\/li>\n<\/ul>\n<\/li>\n<li><span style=\"color: #008000\">R\u00c1PIDO<\/span>: Si no, devuelve el error \"el documento no existe\".<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>Insertar un documento con clave = perfil::john-doe::123\n<ul>\n<li><span style=\"color: #008000\">R\u00c1PIDO<\/span>: comprueba en memoria si esta clave existe.\n<ul>\n<li><span style=\"color: #008000\">R\u00c1PIDO<\/span>: En caso afirmativo, devuelve el error \"el documento ya existe\".<\/li>\n<li><span style=\"color: #008000\">R\u00c1PIDO<\/span>: Si no, escribe el documento en memoria.  A continuaci\u00f3n, persistirlo y replicarlo de forma as\u00edncrona.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>Sustituir un documento con clave = = perfil::john-doe::123\n<ul>\n<li><span style=\"color: #008000\">R\u00c1PIDO<\/span>: comprueba en memoria si esta clave existe.\n<ul>\n<li><span style=\"color: #008000\">R\u00c1PIDO<\/span>: En caso afirmativo, guarda los cambios en memoria.  A continuaci\u00f3n, pers\u00edstelos y repl\u00edcalos de forma as\u00edncrona.<\/li>\n<li><span style=\"color: #008000\">R\u00c1PIDO<\/span>: Si no, devuelve el error \"el documento no existe\".<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>3. Residencia parcial de datos, expulsi\u00f3n completa<\/h3>\n<p>Cuando la residencia de datos es inferior a 100% para un cubo con <strong>completo<\/strong> expulsi\u00f3n, Couchbase Server <strong>no puede confiar<\/strong> en la presencia de claves de documento y metadatos en memoria, porque podr\u00edan haber sido desalojados.  Por lo tanto, las operaciones con documentos tendr\u00e1n el siguiente aspecto:<\/p>\n<ul>\n<li>Obtener (leer) un documento con clave = perfil::john-doe::123\n<ul>\n<li><span style=\"color: #008000\">R\u00c1PIDO<\/span>: comprueba en memoria si esta clave existe.\n<ul>\n<li><span style=\"color: #008000\">R\u00c1PIDO<\/span>: En caso afirmativo, compruebe si el valor del documento est\u00e1 en memoria\n<ul>\n<li><span style=\"color: #008000\">R\u00c1PIDO<\/span>: En caso afirmativo, devuelva el documento de memoria.<\/li>\n<li><span style=\"color: #ff6600\">LENTO<\/span>: Si no es as\u00ed, compruebe el disco\n<ul>\n<li><span style=\"color: #ff6600\">LENTO<\/span>: Si el documento se encuentra en el disco, lee el documento del disco a la memoria y lo devuelve.<\/li>\n<li><span style=\"color: #ff6600\">LENTO<\/span>: Si no, devuelve el error \"el documento no existe\".<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>Insertar un documento con clave = perfil::john-doe::123\n<ul>\n<li><span style=\"color: #008000\">R\u00c1PIDO<\/span>: comprueba en memoria si esta clave existe.\n<ul>\n<li><span style=\"color: #008000\">R\u00c1PIDO<\/span>: En caso afirmativo, devuelve el error \"el documento ya existe\".<\/li>\n<li><span style=\"color: #ff6600\">LENTO<\/span>: Si no es as\u00ed, compruebe el disco\n<ul>\n<li><span style=\"color: #ff6600\">LENTO<\/span>: Si no, escribe el documento en memoria.  A continuaci\u00f3n, persistirlo y replicarlo de forma as\u00edncrona.<\/li>\n<li><span style=\"color: #ff6600\">LENTO<\/span>: En caso afirmativo, devuelve el error \"el documento ya existe\".<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>Sustituir un documento con clave = = perfil::john-doe::123\n<ul>\n<li><span style=\"color: #008000\">R\u00c1PIDO<\/span>: comprueba en memoria si esta clave existe.\n<ul>\n<li><span style=\"color: #008000\">R\u00c1PIDO<\/span>: En caso afirmativo, guarda los cambios en memoria.  A continuaci\u00f3n, pers\u00edstelos y repl\u00edcalos de forma as\u00edncrona.<\/li>\n<li><span style=\"color: #ff6600\">LENTO<\/span>: Si no es as\u00ed, compruebe el disco\n<ul>\n<li><span style=\"color: #ff6600\">LENTO<\/span>: Si no, devuelve el error \"el documento no existe\".<\/li>\n<li><span style=\"color: #ff6600\">LENTO<\/span>: En caso afirmativo, escribe el documento en memoria.  A continuaci\u00f3n, persistirlo y replicarlo de forma as\u00edncrona.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Con cubos de desalojo completo que no son 100% residentes en memoria, <strong>muchos <span style=\"color: #ff0000\"><em>Existe<\/em><\/span> operaciones tienen que ir al disco<\/strong>.  Tambi\u00e9n es probable que el n\u00famero de \"background fetches\" (lectura de documentos del disco a la memoria, tambi\u00e9n conocidos como \"cach\u00e9 misses\") sea mayor para los cubos de expulsi\u00f3n completa.<\/p>\n<h2>\u00bfHay formas de mejorar el rendimiento?<\/h2>\n<p>Adem\u00e1s de <em>Inserte<\/em> y <em>Sustituir<\/em> los SDK de Couchbase admiten <strong><em>Upserts<\/em><\/strong>.  En\u00a0<em>upsert<\/em> insertar\u00e1 un documento si no existe o reemplazar\u00e1 el documento existente.  Debido a la naturaleza append-only del manejo de mutaciones de datos en Couchbase Server, <strong>el\u00a0<em>upsert<\/em><\/strong><strong> operaciones <span style=\"color: #ff0000\">no requieren<\/span> correspondiente\u00a0<em>existe<\/em><\/strong><strong> operaci\u00f3n.<\/strong>\u00a0 Por lo tanto, el uso de <em>upserts<\/em> en lugar de\u00a0<em>inserciones<\/em> y\u00a0<em>sustituye a<\/em> mejorar\u00e1 el rendimiento de su aplicaci\u00f3n, siempre que su caso de uso lo permita.<\/p>\n<p>Los discos r\u00e1pidos dedicados tambi\u00e9n mejorar\u00e1n el rendimiento de los buckets de expulsi\u00f3n completa.  Es una de las configuraciones recomendadas para nodos Couchbase: discos dedicados por nodo sobre almacenamiento virtualizado.<\/p>\n<h2>Cu\u00e1ndo pasar de la expulsi\u00f3n por valor a la expulsi\u00f3n total<\/h2>\n<p>Consideremos la siguiente situaci\u00f3n:<\/p>\n<ul>\n<li>Tiene un cubo configurado con expulsi\u00f3n s\u00f3lo por valor<\/li>\n<li>El cubo ha crecido hasta el punto de que menos de 15-20% de los datos residen en memoria, que es nuestro ratio m\u00ednimo de residencia recomendado.<\/li>\n<li>Anticipa la llegada de m\u00e1s datos, ya archiva\/elimina los documentos de acuerdo con los requisitos del caso de uso y no hay forma de proporcionar m\u00e1s RAM al bucket.<\/li>\n<\/ul>\n<p><strong>\u00bfDeber\u00eda cambiar al m\u00e9todo de eyecci\u00f3n total?<\/strong><\/p>\n<p>Existe una buena m\u00e9trica que puede ayudarle a responder a esta pregunta: la cantidad de metadatos en RAM, comparada con los datos de usuario en RAM para el mismo bucket.  Por \"metadatos\", entendemos documento <strong>claves + metadatos<\/strong>en este caso concreto.  \"Datos del usuario\" en este caso significa documento <strong>valor<\/strong>.<\/p>\n<p>Puede encontrar estas m\u00e9tricas en <strong>Recursos de vBucket<\/strong> en la interfaz de usuario.  En la siguiente captura de pantalla, vemos que los metadatos ocupan aproximadamente 42% de los datos del bucket en memoria:<\/p>\n<div id=\"attachment_8888\" style=\"width: 910px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8888\" class=\"size-large wp-image-8888\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/07\/cb-vbucket-metadata-949x1024.jpg\" alt=\"Metadata overhead\" width=\"900\" height=\"971\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/cb-vbucket-metadata-949x1024.jpg 949w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/cb-vbucket-metadata-278x300.jpg 278w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/cb-vbucket-metadata-768x829.jpg 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/cb-vbucket-metadata-300x324.jpg 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/cb-vbucket-metadata-1320x1424.jpg 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/cb-vbucket-metadata.jpg 1394w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><p id=\"caption-attachment-8888\" class=\"wp-caption-text\">Estad\u00edsticas de sobrecarga de metadatos<\/p><\/div>\n<p>En cierto punto, puede que empieces a ver mensajes como los siguientes en la interfaz de usuario y en tus registros de Couchbase:<\/p>\n<div id=\"attachment_8889\" style=\"width: 910px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8889\" class=\"size-large wp-image-8889\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/07\/cb-metadata-overhead-1024x258.jpg\" alt=\"Metadata overhead warning\" width=\"900\" height=\"227\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/cb-metadata-overhead-1024x258.jpg 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/cb-metadata-overhead-300x76.jpg 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/cb-metadata-overhead-768x194.jpg 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/cb-metadata-overhead-20x5.jpg 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/07\/cb-metadata-overhead.jpg 1058w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><p id=\"caption-attachment-8889\" class=\"wp-caption-text\">Aviso de sobrecarga de metadatos<\/p><\/div>\n<p>Con gran parte de la cuota de memoria ocupada por claves de documento y metadatos, hay poco o ning\u00fan espacio para mantener los valores del documento.  En este caso, ver\u00e1s que el servidor hace muchas b\u00fasquedas en segundo plano para cargar datos del disco a la memoria, s\u00f3lo para ser expulsado en un futuro pr\u00f3ximo, ya que la memoria disponible es demasiado peque\u00f1a.<\/p>\n<p>Si no puede a\u00f1adir m\u00e1s nodos al cl\u00faster y\/o reasignar memoria de otros cubos, entonces es aconsejable cambiar al m\u00e9todo de expulsi\u00f3n completa para el cubo en cuesti\u00f3n.  Ten en cuenta que habr\u00e1 un tiempo de inactividad mientras tu cubo se reinicia y se somete al proceso de calentamiento.<\/p>\n<h2>Resumen<\/h2>\n<ul>\n<li><strong>S\u00f3lo valores<\/strong> ejection\/eviction elimina de la memoria s\u00f3lo los valores de los documentos, mientras que <strong>completo<\/strong> El desalojo tambi\u00e9n elimina las claves de los documentos y los metadatos.<\/li>\n<li>Deber\u00edas hacer un <strong>elecci\u00f3n informada<\/strong> del m\u00e9todo de expulsi\u00f3n antes de poner un cubo en producci\u00f3n.  Los casos de uso de escritura intensiva con muchos millones de documentos son buenos candidatos para la expulsi\u00f3n total.  Cambiar el m\u00e9todo de expulsi\u00f3n m\u00e1s adelante en la producci\u00f3n puede resultar costoso debido a cierto tiempo de inactividad.<\/li>\n<li><strong>Upsert<\/strong> y los discos r\u00e1pidos dedicados siempre mejoran el rendimiento de la aplicaci\u00f3n, y m\u00e1s a\u00fan en el caso de los cubos de expulsi\u00f3n completa.<\/li>\n<li>Controlar el cubo <strong>sobrecarga de metadatos<\/strong>.  Es un buen indicador de que tu cluster puede necesitar m\u00e1s RAM.  Si no puedes conseguir m\u00e1s memoria para tu cluster Couchbase, y tu <strong>la sobrecarga de metadatos es igual o superior a 40%<\/strong>puede considerar cambiar sus grandes cubos de escritura pesada a expulsi\u00f3n total.<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Introduction I would like to thank our Couchbase Server engineering team &#8211; especially, Dave Rigby and Jim Walker &#8211; for their tremendous help with this article and endless patience with all my questions.\u00a0 Thanks a lot guys, I really appreciate [&hellip;]<\/p>\n","protected":false},"author":1414,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1815,1821,1816],"tags":[],"ppma_author":[9081],"class_list":["post-8882","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices-and-tutorials","category-couchbase-architecture","category-couchbase-server"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Value-Only Ejection vs. Full Ejection | Two Ejection Methods<\/title>\n<meta name=\"description\" content=\"Value-only ejection vs. full ejection - which is best for your buckets? Learn what the tooltip explains in the GUI of our latest Couchbase Server version.\" \/>\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\/a-tale-of-two-ejection-methods-value-only-vs-full\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A Tale of Two Ejection Methods: Value-only vs. Full\" \/>\n<meta property=\"og:description\" content=\"Value-only ejection vs. full ejection - which is best for your buckets? Learn what the tooltip explains in the GUI of our latest Couchbase Server version.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/a-tale-of-two-ejection-methods-value-only-vs-full\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-20T07:44:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-22T16:32:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/07\/cb-vbucket-metadata-949x1024.jpg\" \/>\n<meta name=\"author\" content=\"Oleg Kuzmin, Sr. Solutions Engineer, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oleg Kuzmin, Sr. Solutions Engineer, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/a-tale-of-two-ejection-methods-value-only-vs-full\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/a-tale-of-two-ejection-methods-value-only-vs-full\\\/\"},\"author\":{\"name\":\"Oleg Kuzmin, Solutions Architect, Databricks\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/person\\\/567ed489e7c498f0b9ff0014374c2bcd\"},\"headline\":\"A Tale of Two Ejection Methods: Value-only vs. Full\",\"datePublished\":\"2020-07-20T07:44:00+00:00\",\"dateModified\":\"2023-09-22T16:32:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/a-tale-of-two-ejection-methods-value-only-vs-full\\\/\"},\"wordCount\":1936,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/a-tale-of-two-ejection-methods-value-only-vs-full\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2022\\\/11\\\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Best Practices and Tutorials\",\"Couchbase Architecture\",\"Couchbase Server\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/a-tale-of-two-ejection-methods-value-only-vs-full\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/a-tale-of-two-ejection-methods-value-only-vs-full\\\/\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/a-tale-of-two-ejection-methods-value-only-vs-full\\\/\",\"name\":\"Value-Only Ejection vs. Full Ejection | Two Ejection Methods\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/a-tale-of-two-ejection-methods-value-only-vs-full\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/a-tale-of-two-ejection-methods-value-only-vs-full\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2022\\\/11\\\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2020-07-20T07:44:00+00:00\",\"dateModified\":\"2023-09-22T16:32:00+00:00\",\"description\":\"Value-only ejection vs. full ejection - which is best for your buckets? Learn what the tooltip explains in the GUI of our latest Couchbase Server version.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/a-tale-of-two-ejection-methods-value-only-vs-full\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/a-tale-of-two-ejection-methods-value-only-vs-full\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/a-tale-of-two-ejection-methods-value-only-vs-full\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2022\\\/11\\\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2022\\\/11\\\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/a-tale-of-two-ejection-methods-value-only-vs-full\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A Tale of Two Ejection Methods: Value-only vs. Full\"}]},{\"@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\\\/567ed489e7c498f0b9ff0014374c2bcd\",\"name\":\"Oleg Kuzmin, Solutions Architect, Databricks\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1bbfe682ab4a0341e520c779f47ba96d7930bb09c6e881f66c953e13579ff10f?s=96&d=mm&r=g3c430b3fd08e47e71c288418a9321d65\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1bbfe682ab4a0341e520c779f47ba96d7930bb09c6e881f66c953e13579ff10f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1bbfe682ab4a0341e520c779f47ba96d7930bb09c6e881f66c953e13579ff10f?s=96&d=mm&r=g\",\"caption\":\"Oleg Kuzmin, Solutions Architect, Databricks\"},\"sameAs\":[\"https:\\\/\\\/databricks.com\"],\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/author\\\/oleg-kuzmincouchbase-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Value-Only Ejection vs. Full Ejection | Two Ejection Methods","description":"Expulsi\u00f3n s\u00f3lo valor vs. expulsi\u00f3n completa - \u00bfqu\u00e9 es mejor para tus buckets? Aprende lo que explica el tooltip en la GUI de nuestra \u00faltima versi\u00f3n de Couchbase Server.","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\/a-tale-of-two-ejection-methods-value-only-vs-full\/","og_locale":"es_MX","og_type":"article","og_title":"A Tale of Two Ejection Methods: Value-only vs. Full","og_description":"Value-only ejection vs. full ejection - which is best for your buckets? Learn what the tooltip explains in the GUI of our latest Couchbase Server version.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/a-tale-of-two-ejection-methods-value-only-vs-full\/","og_site_name":"The Couchbase Blog","article_published_time":"2020-07-20T07:44:00+00:00","article_modified_time":"2023-09-22T16:32:00+00:00","og_image":[{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2020\/07\/cb-vbucket-metadata-949x1024.jpg","type":"","width":"","height":""}],"author":"Oleg Kuzmin, Sr. Solutions Engineer, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oleg Kuzmin, Sr. Solutions Engineer, Couchbase","Est. reading time":"9 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/a-tale-of-two-ejection-methods-value-only-vs-full\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/a-tale-of-two-ejection-methods-value-only-vs-full\/"},"author":{"name":"Oleg Kuzmin, Solutions Architect, Databricks","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/567ed489e7c498f0b9ff0014374c2bcd"},"headline":"A Tale of Two Ejection Methods: Value-only vs. Full","datePublished":"2020-07-20T07:44:00+00:00","dateModified":"2023-09-22T16:32:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/a-tale-of-two-ejection-methods-value-only-vs-full\/"},"wordCount":1936,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/a-tale-of-two-ejection-methods-value-only-vs-full\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Best Practices and Tutorials","Couchbase Architecture","Couchbase Server"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/a-tale-of-two-ejection-methods-value-only-vs-full\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/a-tale-of-two-ejection-methods-value-only-vs-full\/","url":"https:\/\/www.couchbase.com\/blog\/a-tale-of-two-ejection-methods-value-only-vs-full\/","name":"Value-Only Ejection vs. Full Ejection | Two Ejection Methods","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/a-tale-of-two-ejection-methods-value-only-vs-full\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/a-tale-of-two-ejection-methods-value-only-vs-full\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2020-07-20T07:44:00+00:00","dateModified":"2023-09-22T16:32:00+00:00","description":"Expulsi\u00f3n s\u00f3lo valor vs. expulsi\u00f3n completa - \u00bfqu\u00e9 es mejor para tus buckets? Aprende lo que explica el tooltip en la GUI de nuestra \u00faltima versi\u00f3n de Couchbase Server.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/a-tale-of-two-ejection-methods-value-only-vs-full\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/a-tale-of-two-ejection-methods-value-only-vs-full\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/a-tale-of-two-ejection-methods-value-only-vs-full\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/a-tale-of-two-ejection-methods-value-only-vs-full\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"A Tale of Two Ejection Methods: Value-only vs. Full"}]},{"@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\/567ed489e7c498f0b9ff0014374c2bcd","name":"Oleg Kuzmin, Arquitecto de soluciones, Databricks","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/1bbfe682ab4a0341e520c779f47ba96d7930bb09c6e881f66c953e13579ff10f?s=96&d=mm&r=g3c430b3fd08e47e71c288418a9321d65","url":"https:\/\/secure.gravatar.com\/avatar\/1bbfe682ab4a0341e520c779f47ba96d7930bb09c6e881f66c953e13579ff10f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1bbfe682ab4a0341e520c779f47ba96d7930bb09c6e881f66c953e13579ff10f?s=96&d=mm&r=g","caption":"Oleg Kuzmin, Solutions Architect, Databricks"},"sameAs":["https:\/\/databricks.com"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/oleg-kuzmincouchbase-com\/"}]}},"acf":[],"authors":[{"term_id":9081,"user_id":1414,"is_guest":0,"slug":"oleg-kuzmincouchbase-com","display_name":"Oleg Kuzmin, Sr. Solutions Engineer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/0f297a537c749f924978fb4b8fd8d25dd01526af81550a9df5403c58cb300f06?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/8882","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\/1414"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=8882"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/8882\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=8882"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=8882"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=8882"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=8882"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}