Couchbase Móvil 1.2

En nuevo lanzamiento de Couchbase Mobile 1.2, ya disponible para descargarofrece mejoras significativas en el rendimiento del motor de almacenamiento local del lado del cliente para dispositivos móviles. Más concretamente, la última integración de ForestDB como el nuevo motor de almacenamiento diseñado para soportar varios sistemas operativos de servidores y móviles. Del lado del servidor,Servidor Couchbase 4.1 completa la historia móvil conPasarela de sincronización 1.2 entre el Couchbase Lite 1.2 cliente móvil. En este blog, voy a explorar ForestDB, examinar los beneficios, y compartir cómo los desarrolladores pueden habilitar esta característica en sus aplicaciones.

ForestDB

Qué ForestDB proporciona para Couchbase Lite es una biblioteca de almacenamiento persistente clave-valor en la que tanto la clave como la asignación de valores son blobs binarios. ForestDB es un motor de almacenamiento clave-valor de bajo nivel, y de la misma familia que BD Berkeley y LevelDB. Como desarrollador, puede obtener y establecer los valores correspondientes, así como enumerar las claves en orden lexicográfico.

Para comprender mejor y obtener más información sobre el motor de almacenamiento de nueva generación para Couchbase, ver esta presentación de Chiyoung Seo en el Couchbase Connect de 2015:

Beneficios

Estas son algunas de las mejoras de rendimiento del nuevo sistema de almacenamiento para Couchbase Lite 1.2:

  • Mayor velocidad: varía según la aplicación, pero hemos observado una mejora de entre 2 y 5 veces en tareas como la inserción de documentos y las consultas.
  • Mejor concurrencia - un hilo escritor (como el replicador) nunca bloquea lectores (como su hilo GUI.) Esto ayuda a mantener su aplicación sensible.
  • Menor huella de RAM: las cachés de datos se comparten entre los subprocesos, lo que reduce la sobrecarga de tener varios subprocesos accediendo a una base de datos, como ocurre durante la replicación.
  • Compactación automática de bases de datos: la compactación de bases de datos (que libera espacio en disco) se ejecuta en segundo plano sin bloquear otros subprocesos, y se programa automáticamente siempre que haya espacio suficiente para recuperar.

En función de la operación y del conjunto de datos de que se trate, puede haber una mejora de hasta 5X en la velocidad, así como, mejor gestión de la concurrencia, ya que el escritor nunca bloquea a los lectores. Como las cachés de datos se comparten entre los subprocesos, la huella de RAM es menor. Esto se complementa con la compactación automática de la base de datos y la presencia en segundo plano. Más información los puntos de referencia de ForestDB y los resultados de las pruebas de rendimiento visitando la página de Cihan Biyikoglu blog en el motor de almacenamiento de nueva generación para Couchbase Server y Couchbase Lite.

Comenzar

En versiones anteriores, SQLite era el motor de almacenamiento disponible para Coucbase Lite. Mientras que SQLite sigue siendo actualmente el valor predeterminado, para Couchbase Mobile 1.2 hay un paquete opcional en la biblioteca del proyecto Couchbase Lite para habilitar ForestDB. El proyecto de inicio de GrocerySync para iOS y Android con componentes de ForestDB puede descargarse de GitHub en la rama específica.

Activar ForestDB

Ahora voy a discutir cómo habilitar ForestDB dentro de nuestros proyectos de aplicaciones móviles para aprovechar las nuevas ventajas. Tenga en cuenta que si usted tiene un proyecto anterior utilizando una versión anterior de Couchbase Lite, los archivos de base de datos existentes no se convierten. Aquí es donde una base de datos respaldada por SQLite continuará utilizando SQLite por defecto porque el formato del tipo de base de datos se establece al principio de la creación del proyecto. Las bases de datos existentes se abrirán siempre con el mismo motor de almacenamiento que las creó. Esté atento a futuros blogs que tratarán sobre cómo migrar eso.

iOS:

A continuación se describe los pasos necesarios para habilitar el motor de almacenamiento ForestDB desde tu proyecto iOS. Primero mueve o copia el archivo de la librería 'CouchbaseLite.framework' que se encuentra en el archivo couchbase-lite-ios-enterprise_1.2.0-112 ZIP en la carpeta de tu proyecto de aplicación iOS o en la subcarpeta Frameworks de tu proyecto de aplicación iOS. Desde ahí, arrastra la versión 1.2 de CouchbaseLite.framework al proyecto para evitar crear una referencia en tu proyecto a otra ruta del sistema de archivos. Esto permite que el framework esté disponible en todas las máquinas.

La carpeta Frameworks debería contener ahora el archivo CouchbaseLite.framework. A continuación, arrastra el archivo libCBLForestDBStorage.a para que ambos resaltes verdes estén disponibles en tu carpeta Frameworks.

Es necesario enlazar la biblioteca del sistema libc++dylib y para ello entraremos en el editor de "Fases de construcción" del objetivo. Haga clic en el símbolo '+' en la sección "Link Binary with Libraries" y seleccione el archivo de interés de '/usr/lib/' o simplemente escriba 'c++' en el campo de filtro en el selector de biblioteca y 'libc++' aparecerá.

La ruta del archivo puede ser similar a la siguiente:

  • En Xcode, abre la pantalla Fases de compilación de tu aplicación de destino y abre la sección Vincular binario con bibliotecas.
  • Arrastre libCBLForestDBStorage.a desde la carpeta del sistema de archivos (a donde lo arrastró antes) a la lista de la sección Vincular binarios con bibliotecas.
  • Haz clic en el símbolo '+' bajo la lista de bibliotecas para abrir el selector de bibliotecas. Escribe 'c++' en el campo de filtro y aparecerá 'libc++'. Selecciónala y añádela.

  • Ahora construye tu proyecto; debería tener éxito.

ForestDB ya está disponible, pero no está establecido como tipo de almacenamiento predeterminado, por lo que las nuevas bases de datos se seguirán creando con SQLite. Para cambiar esto, establezca la propiedad storageType de la instancia de CBLManager antes de abrir cualquier base de datos. Por ejemplo, puede añadir el código que aparece en verde:

Sobre la cual la clase CBLManager puede ser referenciada para especificar que la propiedad 'storageType' sea ForestDB. Así es como habilitamos el proyecto iOS para utilizar ahora el sistema de almacenamiento ForestDB.

Para el proyecto de aplicación de ejemplo específico, vaya a su archivo 'AppDelegate.m' y en el método 'createDatabase', especifique la propiedad storageType. Pero normalmente esto depende de la estructura del código de tu aplicación y suele estar en la clase del delegado de la aplicación. Ve al lugar de tu proyecto o código donde instancias la clase CBLManager, y justo después añade una línea para establecer su propiedad storageType, así:

Ahora estamos listos para construir y ejecutar la aplicación para que nuestra aplicación móvil utilice ForestDB como motor de almacenamiento.

Android:

Estos son los pasos necesarios para habilitar el almacén ForestDB desde tu proyecto Android.

Desde dentro de tu proyecto Android, el archivo build.gradle del nivel de módulo necesitaría hacer referencia a Couchbase Lite versión 1.2 junto con traer explícitamente ForestDB como motor de almacenamiento en el nivel de dependencia. Las dependencias ahora incluirían:

Y en general el archivo build.gradle debería tener el siguiente aspecto:

Puede hacer referencia al build.gradle de GitHub. Ahora en nuestro archivo 'MainActivity.java', lo que es nuevo en Couchbase Lite 1.2 para Android es que ahora existe la clase 'DatabaseOptions' donde especificamos las propiedades como '.setStorageType'.

Para habilitar ForestDB en nuestra aplicación Android, ahora necesitamos pasar el parámetro ForestDB_Storage a la función 'setStorageType' para cambiar el tipo de almacenamiento de SQLite a ForestDB. Vea a continuación para aprender cómo se hace esto:

Abajo en la aplicación de ejemplo GrocerySync, vemos donde hacemos referencia a la propiedad 'setStorageType' desde dentro del método startCBLite():

Así que ahí lo tienes, Couchbase Mobile 1.2 viene con ForestDB como el nuevo motor de almacenamiento y hemos aprendido cómo habilitar la función de la solución SQLite por defecto. Exploraremos Couchbase Mobile 1.2 más a fondo, incluyendo temas de encriptación y rendimiento en blogs posteriores.  Asegúrese de descargar el nuevo Couchbase Móvil 1.2 y conéctate con nosotros en nuestro Foros para desarrolladores de móviles.

Autor

Publicado por William Hoang, Defensor del Desarrollador Móvil, Couchbase

William fue Developer Advocate en el equipo de Mobile Engineering/Developer Experience de Couchbase. Su amor por el café y el código le ha trascendido al mundo de los móviles, al tiempo que aprecia las experiencias presenciales fuera de línea. Anteriormente, William trabajó en el equipo de Relaciones con Desarrolladores en Twitter, BlackBerry y Microsoft, además de haber sido ingeniero de Software Embedded GPS en Research In Motion. William se licenció en Ingeniería Eléctrica de Software por la Universidad McGill.

Dejar una respuesta