SQLite: la babosa bananera de las bases de datos Embarqué
Corporación Actian
29 de abril de 2020

A principios de este mes, inicié una serie de blogs sobre SQLite. El primero analizaba las ventajas que ofrece SQLite frente a los archivos planos y frente a las bases de datos SQL de nivel empresarial, y lo cierto es que ofrece claras ventajas frente a ambos. Hasta cierto punto. Y ese punto fue hace cinco años.
La cuestión es la siguiente: si eres un desarrollador móvil o de IoT, o si te estás extendiendo desde la nube hasta el borde con aplicaciones y datos distribuidos, lagestion des données local Embarqué gestion des données es una capacidad crítica, y ahí es donde SQLite destacó durante años. Sin embargo, aunque lagestion des données local y Embarqué gestion des données es necesaria -de hecho, crítica- para los sistemas modernos de gestion des données en el perímetro, tal y como se implementa en SQLite, es insuficiente. Los sistemas modernos gestion des données exigen la capacidad de procesar y analizar datos localmente, compartirlos entre pares, mover datos entre puertas de enlace, otras máquinas inteligentes e incluso de vuelta a la nube, y SQLite nunca se creó para satisfacer estas demandas.
Dejando a un lado los retos que plantean los requisitos de datos compartidos y distribuidos -los abordaremos en la próxima entrega-, vamos a examinar las limitaciones de SQLite en el ámbito del procesamiento local de datos, empezando por una de las más importantes, el rendimiento.
SQLite es simplemente lento.
Hace dieciocho meses, realizamos pruebas de rendimiento de Actian Zen -nuestra base de datos Zero-DBA Embarqué Nano- frente ala última distribución de SQLite y descubrimos que Zen era dos órdenes de magnitud más rápido, dependiendo de la operación que se estuviera ejecutando. En el caso de los borrados indexados, era tres órdenes de magnitud más rápido. Hicimos una comparación de manzanas con manzanas, ejecutando ambos en un Raspberry Pi 3, un pequeño ordenador de placa única basado en ARM que se puede comprar en Amazon por menos de 50 dólares. Zen Core y SQLite son gratuitos, y puedes realizar esta prueba por ti mismo.
Vale, la lentitud de SQLite no es una novedad. Todo el mundo en la comunidad SQLite sabe que SQLite es dolorosamente lento. Entonces, ¿por qué ha seguido siendo tan popular? En la práctica, ha sido el único en la ciudad. Hay tres razones para ello. En primer lugar, es una oferta de código abierto que existe desde hace más de dos décadas, por lo que es ampliamente conocida. En segundo lugar, se incluye en muchos kits de desarrollo de código abierto, sobre todo en Android. Por último, muchos proveedores de bases de datos en un momento u otro han empaquetado y renombrado SQLite como su edición "móvil" (léase: MongoDB y Couchbase). Incluso hay algunas empresas emergentes que literalmente le ponen su etiqueta a SQLite y venden servicios en torno a él como su única oferta en el mercado.
Aquí es donde volvemos a esas limitaciones: El lento rendimiento que era suficiente hace cinco años simplemente no va a ser suficiente para los próximos cinco años (por no hablar de cualquier período después de eso). Y los problemas de rendimiento de SQLite sólo van a empeorar: las tareas de gestion des données en el Edge van a ser cada vez más difíciles con el tiempo, incluso para las aplicaciones Embarqué .
Considere la creciente necesidad de persistencia de datos locales. Ya no se trata de un simple almacenamiento en caché. Ahora, la persistencia de datos es necesaria para el procesamiento local de datos intensivo desde el punto de vista computacional y el aprendizaje automático no supervisado. En estos casos, vemos una avalancha de datos de flujo entrante que SQLite no es lo suficientemente robusta como para manejar. Además, se observa un aumento de las demandas informáticas que implican la consulta, extracción y análisis de patrones existentes en la base de datos local y/o en las de pares externos o pasarelas ascendentes.
Y no se trata sólo del volumen de datos en flujo o de la sofisticación de los análisis. También está la cuestión de que varias aplicaciones utilicen simultáneamente el mismo conjunto de datos, o incluso que un único consumidor se suscriba y copie datos de varios editores. Ambos casos requieren un nivel de simultanéité que está arquitectónicamente fuera del alcance de SQLite. En el mejor de los casos, puede decirse que SQLite intenta simular simultanéité con un bloqueo de toda la tabla de datos para todos los usuarios que no sean el que la está leyendo o escribiendo en ese momento -incluso si esa lectura o escritura implica sólo una fila- en lugar del bloqueo granular que debería proporcionar una base de datos SQL real que cumpla con ACID. El resultado final es que SQLite crea serios cuellos de botella a medida que aumentan las demandas y los volúmenes de datos en casos prácticos de uso de IoT y móviles.
Aumentar la potencia de la plataforma informática detrás de SQLite no mejorará mucho el rendimiento de este anticuado gestor de campañas. Lo que la gestion des données moderna gestion des données necesita es un guepardo, y lo que tenemos en SQLite es una babosa bananera.
Y ninguno de estos escenarios son escenas de un futuro lejano. Las empresas se enfrentan a estos retos hoy en día en situaciones que implican redes IoT con miles de sensores y puertas de enlace ascendentes. Algunos de nuestros competidores también se están enfrentando a estos retos, ya que cada vez son más los que quieren deshacerse de SQLite como motor móvil.
Si has probado SQLite con otras bases de datos o has documentado un cambio en el rendimiento de tu aplicación al pasar de usar archivos planos a SQLite, háznoslo saber. No dudes en escribirme a lewis.carr@actian.com.
Mientras tanto, lea mi próximo blog sobre lo que el uso casi omnipresente de SQLite como base de datos móvil ha supuesto para partage des données y el movimiento desde el móvil y el IoT en el borde hasta la nube y el centro de datos.
Por último, si está listo para reconsiderar SQLite, aprenda más sobre Actian Zen. También puede probarlo gratuitamente con Zen Core, que está libre de derechos de autor para el desarrollo y la distribución.
Suscríbase al blog de Actian
Suscríbase al blog de Actian para recibir información sobre datos directamente en su correo electrónico.
- Manténgase informado: reciba lo último en análisis de datos directamente en su bandeja de entrada.
- No se pierda ni una publicación: recibirá actualizaciones automáticas por correo electrónico que le avisarán cuando se publiquen nuevas publicaciones.
- Todo depende de usted: cambie sus preferencias de entrega para adaptarlas a sus necesidades.