En la primavera de 2020, lanzamos la última renovación del SDK de Couchbase: 3.0. Lanzado junto con Couchbase Server 6.5.0 y ofreciendo soporte temprano y experimental para Scopes y Collections, también incluía una API completamente nueva y consistencia entre las diferentes plataformas. Aunque SDK 3.0 fue un hito importante en la historia de Couchbase, fue sólo otra mejora incremental para los desarrolladores que trabajan con Couchbase Server. Couchbase Server continúa evolucionando añadiendo nuevas características y es por eso que ahora estamos lanzando Couchbase SDK 3.1.0 con aún más mejoras para cosas como el soporte de FTS Geo Polygon y Bucket Durability Management entre otras.

Este post revisa cada nueva característica añadida a través de todos los SDKs de Couchbase. Los ejemplos están en C# pero se esperan implementaciones idiomáticas similares en todos los SDKs ya sea Java, Go u otro lenguaje.

Soporte FTS Geo Polygon

Para aumentar los dos tipos de consultas Geo, Punto Distancia y Rectángulo delimitadoya soportado por Couchbase, en 6.5.0 Consultas Geo Bounded Polygon . Las consultas de distancia de puntos son útiles para encontrar cosas como restaurantes cerca de usted y distancia ordenada cerca de usted. Las consultas de rectángulo delimitado ayudan a encontrar restaurantes dentro de un límite rectangular específico cerca de usted, como una manzana. Las consultas de polígono delimitado geográficamente permiten encontrar restaurantes dentro de un polígono delimitado aleatoriamente utilizando una matriz de pares de coordenadas como parámetros de entrada.

Puede obtener más información sobre las consultas de Geo Polygon en esta entrada del blog.

Gestión de la durabilidad de los cubos

Garantías de nivel de durabilidad persistencia de los documentos: si un documento se ha transferido al disco o no y en cuántas réplicas se ha escrito.

En las versiones anteriores de Couchbase Server y SDK, la configuración del nivel de durabilidad sólo podía ser proporcionada a través de K/V Operation, esto podría convertirse rápidamente en un proceso repetitivo y mundano, especialmente en el caso de que las garantías de persistencia fueran las mismas en todos los documentos dentro de un Bucket. A partir de Couchbase Server 6.6 ahora podemos añadir Durabilidad como un ajuste a nivel de Bucket. Esta característica está ahora disponible para usted a través de SDK 3.1 Couchbase Server 6.6 añade durabilidad a nivel de Bucket que permite una cierta durabilidad que se aplicará a todos los documentos dentro de un bucket. En Couchbase SDK 3.1.0 continuamos el soporte en los SDKs usando el Bucket Management API.

Los niveles de durabilidad admitidos son:

  • Mayoría - el documento debe haberse replicado en la mayoría de los nodos configurados de un clúster
  • MayoríaYPersistenciaActiva - lo mismo que Mayoría, pero el documento también debe persistir en el nodo activo para que se cumplan los requisitos de durabilidad.
  • PersistToMajority - el documento debe persistir en disco en la mayoría de los nodos configurados.

El nivel de persistencia por defecto es ninguno, pero se puede especificar el nivel de durabilidad al insertar o actualizar el documento.

Gestión efímera de cubos

Esta función permite establecer la política de desalojo de documentos para cubos efímeros en el momento de su creación mediante la API de gestión. Ahora se admiten las siguientes políticas de desalojo:

  • Desahucio NRU - Cuando se alcanza la cuota de memoria, Couchbase Server expulsa los datos que no se han utilizado recientemente.
  • No desahucio - Couchbase Server mantiene todos los datos hasta que se borran explícitamente, pero rechazará cualquier dato nuevo si se alcanza la cuota (memoria dedicada) establecida para el bucket.

He aquí un ejemplo de configuración de desalojo NRU:

Si no se especifica, el valor predeterminado es Sin desalojo.

Índice FTS Flex

Índice FTS Flex

Índice Flex ofrece al desarrollador la posibilidad de utilizar Couchbase Query Service para aprovechar las capacidades de búsqueda. Por ejemplo, N1QL utiliza índices B-Tree ya que tienen selectividad y FTS utiliza índices invertidos que proporcionan baja selectividad o "fuzziness"; Flex Index te permite combinar para consultas que son tanto exactas como difusas simplemente proporcionando una pista al servicio en cuanto a qué comportamiento deseas. Desde el SDK, esta funcionalidad se expone mediante un simple indicador en el objeto QueryOptions que indica al servicio N1QL que considere el uso de cualquier índice FTS para realizar la consulta.

Para utilizar Flex Indexes basta con establecer la propiedad o el método FlexIndex en la clase QueryOptions.

Parámetro de puntuación FTS

Como optimización, ahora se puede desactivar la puntuación al realizar consultas de búsqueda. Esto se expone como un parámetro de bloque de opción pasado:

La puntuación se desactivará si se pasa true, de lo contrario se incluirá en la respuesta.

GetResult.Expiry ha sido obsoleto

Por fin, GetResult.Expiry ha quedado obsoleto y se ha sustituido por GetResult.ExpiryTime que especifica una instancia en el tiempo en lugar de una duración.

Comentarios, por favor.

Estas son las nuevas características que se han añadido a Couchbase SDK 3.1 para Couchbase Server 6.6 y 7.0. Esperamos que las encuentres útiles y siéntete libre de proporcionar comentarios en nuestro foros o pregunte a un experto de Couchbase.

Autor

Publicado por Jeff Morris, Ingeniero Superior de Software, Couchbase

Jeff Morris es Ingeniero de Software Senior en Couchbase. Antes de unirse a Couchbase, Jeff pasó seis años en Source Interlink como Arquitecto Web Empresarial. Jeff es responsable del desarrollo de los SDK de Couchbase y de cómo integrarse con N1QL (lenguaje de consulta).

Dejar una respuesta