PikiwiDB emerge como una solución innovadora para el almacenamiento de datos elástico y persistente, ofreciendo compatibilidad total con Redis y un rendimiento superior gracias a su arquitectura basada en RocksDB y el protocolo Raft.
La OpenAtom Foundation ha lanzado PikiwiDB, un sistema de almacenamiento clave-valor (KV) diseñado para entornos de alta capacidad y multiusuario. Desarrollado en C++20, este sistema promete un rendimiento hasta un 25 % más rápido que Redis en ciertas operaciones y amplía las capacidades tradicionales de los servidores Redis al incorporar persistencia de datos mediante RocksDB.
Principales Características de PikiwiDB
- Compatibilidad Completa con Redis
PikiwiDB soporta todas las estructuras de datos y comandos estándar de Redis, lo que facilita su integración en sistemas existentes. Puede utilizarse como esclavo de Redis o configurarse al revés, incluso en entornos con Redis Sentinel. - Persistencia de Datos
Gracias a RocksDB, PikiwiDB no está limitado por la memoria. Los datos se almacenan de manera persistente, lo que lo hace ideal para manejar grandes volúmenes de información. - Rendimiento Superior
En pruebas de benchmarking con comandos en pipeline (set -P=50), PikiwiDB logra hasta 90.000 solicitudes de lectura por segundo y 80.000 solicitudes de escritura por segundo, superando a Redis en cargas de trabajo intensivas. - Extensibilidad con Módulos
Los desarrolladores pueden escribir extensiones personalizadas para PikiwiDB. Actualmente, se han añadido tres comandos de demostración (ldel
,skeys
yhgets
), y se espera un mayor soporte en futuras versiones. - Compatibilidad Multi-Plataforma
Funciona en sistemas operativos Linux, macOS y FreeBSD, recomendándose el uso de Ubuntu o Debian para obtener un rendimiento óptimo.
Proceso de Instalación y Uso
Requisitos
- Un entorno basado en Linux, macOS o FreeBSD.
- Herramientas de desarrollo como gcc, g++, cmake y autoconf.
Compilación
Se puede compilar PikiwiDB en modo de producción o depuración. Para sistemas basados en Rocky Linux, los comandos de instalación incluyen:
sudo dnf groupinstall -y 'Development Tools'
sudo dnf install cmake g++ autoconf perl -y
git config --global http.version HTTP/1.1
Para compilar:
./etc/script/build.sh --clear
./etc/script/build.sh --debug
Ejecución
Una vez compilado, el servidor se inicia con el siguiente comando:
./bin/pikiwidb ./etc/conf/pikiwidb.conf
Comparativa de Rendimiento con Redis
PikiwiDB ha demostrado ser más eficiente que Redis en entornos de alto rendimiento, particularmente al manejar comandos en pipeline. Usando redis-benchmark
, PikiwiDB supera consistentemente las velocidades de Redis en pruebas con 1.000.000 de solicitudes y 50 conexiones simultáneas.
Ejemplo de benchmark:
./redis-benchmark -q -n 1000000 -P 50 -c 50
Lista de Comandos Soportados
PikiwiDB soporta una amplia gama de comandos organizados por categorías:
- Claves:
type
,exists
,del
,expire
,scan
, etc. - Cadenas:
set
,get
,incr
,strlen
, entre otros. - Listas:
lpush
,rpop
,lrange
. - Conjuntos:
sadd
,srem
,smembers
. - Conjuntos Ordenados:
zadd
,zrange
,zunionstore
. - Publicación/Suscripción:
subscribe
,publish
. - Replicación:
sync
,slaveof
.
Usos y Perspectivas Futuras
Con un enfoque en la persistencia de datos y el rendimiento optimizado, PikiwiDB es ideal para aplicaciones empresariales que manejan grandes volúmenes de datos y requieren un tiempo de respuesta mínimo. Aunque aún no incluye soporte para clústeres, su compatibilidad con RocksDB y Redis lo posiciona como una solución confiable y versátil.
PikiwiDB no solo complementa las funcionalidades de Redis, sino que también aborda sus limitaciones en cuanto a memoria y persistencia. Este sistema promete convertirse en una herramienta esencial para desarrolladores que buscan eficiencia y escalabilidad en sus entornos de almacenamiento de datos.
Más información PikiwiDB.