Bitcask es una aplicación de Erlang que proporciona una API para almacenar y recuperar datos clave / valor en una tabla hash estructurada por registros . El diseño debe mucho a los principios que se encuentran en los sistemas de archivos estructurados por registros y se inspira en una serie de diseños que implican la fusión de archivos de registro.
Desarrollador (es) | Tecnologías Basho |
---|---|
Repositorio | |
Escrito en | Erlang |
Sistema operativo | Linux , BSD , Mac OS X , Solaris |
Plataforma | IA-32 , x86-64 |
Licencia | Licencia Apache 2.0 |
Sitio web | docs |
Fortalezas
Bitcask tiene una serie de ventajas debido a su formato de datos en disco de escritura única y solo anexión y al uso de una tabla hash de claves en memoria para búsquedas:
- Baja latencia para operaciones de lectura y escritura.
- Alto rendimiento, especialmente cuando se escribe un flujo entrante de elementos aleatorios: debido a que los datos que se escriben no necesitan ordenarse en el disco y debido a que el diseño estructurado por registros permite un movimiento mínimo de la cabeza del disco durante las escrituras, estas operaciones generalmente saturan la I / O y ancho de banda del disco.
- Búsqueda única para recuperar cualquier valor: la tabla hash de claves en memoria de Bitcask apunta directamente a las ubicaciones en el disco donde residen los datos. Bitcask nunca necesita más de una búsqueda de disco para leer un valor, y el almacenamiento en caché del sistema de archivos del sistema operativo puede obviar la necesidad de búsquedas de disco por completo para algunas búsquedas.
- Rendimiento predecible de búsqueda e inserción: las operaciones de lectura y escritura tienen un comportamiento fijo y predecible. Las operaciones de escritura solo requieren una búsqueda al final del archivo actual que está abierto para escritura y un anexo a ese archivo.
- Recuperación de fallos rápida y limitada: el formato de disco de Bitcask hace que la recuperación sea sencilla. Los únicos elementos que se pueden perder son los registros parcialmente escritos al final del archivo que se abrió por última vez para las escrituras. La recuperación solo necesita revisar el último registro o los dos últimos escritos y verificar sumas de control para asegurarse de que los datos sean consistentes.
- Copia de seguridad sencilla: el formato de disco de Bitcask significa que cualquier utilidad que archive o copie archivos en orden de bloque de disco hará una copia de seguridad o copiará correctamente una base de datos de Bitcask.
Debilidad
Debido a que Bitcask mantiene todas las claves en la memoria en todo momento, el sistema debe tener suficiente memoria para contener todo el espacio de claves además de otros componentes operativos y los búferes del sistema de archivos del sistema operativo .