# InfiniDB

InfiniDB es un sistema de gestión de bases de datos desarrollado por Calpont Corporation. Está orientado a columnas (multidimensional) y ha sido diseñado principalmente para estos escenarios:
* Data warehouse, data mart, business intelligence (BI) y bases de datos analíticas
* Secciones de lectura intensiva de una aplicación para efectuar las acciones de lectura/búsqueda/consulta mediante una base de datos analítica, mientras que las partes transaccionales acceden mediante una base de datos relacional.

## Características

En general, InfiniDB funciona bien en entornos con volumen de datos media-alto en los que se requiere un corto tiempo de respuesta.
Incluye las siguientes características:
* Arquitectura orientada a columnas: frente al formato habitual de filas, InfiniDB está diseñada en columnas por lo que resulta más adecuada para aplicaciones de lectura intensa.
* Diseño multi-hilo: puede así hacer uso del hardware actual que incorpora CPUs multi-core. Más CPUs y/o cores permiten a InfiniDB incrementar las prestaciones sin tener que modificar la aplicación.
* Particionado automático, tanto vertical como horizontal: además de estar orientada a columnas, InfiniDB también usa cierta forma de particionado horizontal por rango que no requiere asignación ni diseño de esquema. Usando ambos particionados, InfiniDB puede reducir la entrada y salida tanto en el sentido de filas como de columnas.
* Alta concurrencia: los límites en cuanto a concurrencia de InfiniDB solo están restringidos por la capacidad del servidor; no hay límites teóricos.
* Carga de datos de alta velocidad: con el fin de cargar datos rápidamente, una utilidad con ese fin está disponible.
* Soporte DML: adicionalmente a la carga de datos rápida, InfiniDB soporta plenamente las operaciones DML (INSERT, UPDATE, DELETE).
* Soporte transaccional: proporciona transacciones con características ACID así como detección de bloqueos (deadlocks).
* Recuperación frente a caídas: tiene capacidad de recuperación.
* diseño MVCC: soporta multiversion concurrency control o “lectura de instantáneas” por lo que las sentencias nunca bloquean una tabla.
* No se necesita indexado: al usar de forma transparente el particionado vertical y horizontal (lógico) no se necesita indexación.
* Bajo manteniemiento: además de eliminar la necesidad de indexar las tablas, InfiniDB no necesita objetos como vistas materializadas ni tablas sumario para ganar velocidad.
* Soporta ALTER TABLE (ADD, DROP).
* Portabilidad de plataforma: funciona en todas las distribuciones con más difusión de Linux y de Windows.
* Compresión de datos lógica: usa compresión de datos transparente para el almacenamiento.
* Diagnóstico de prestaciones: para ajustar las prestaciones, InfiniDB proporciona análisis SQL y herramientas para diagnosticar SQL defectuoso.
* Frontal MySQL: se puede configurar como mecanismo de almacenamiento de MySQL, y utilizar su interfaz de usuario. Esto permite a cualquiera familiar con MySQL conseguir productividad inmediata.
* Funciona sobre HW convencional: no se requieren máquinas especiales para ejecutar InfiniDB.
* Sin cargo por licencia: InfiniDB Community es grátis para todo uso.
* Compatible con herramientas BI: usa conectores MySQL estándar y soporta todas las herramientas BI compatibles con MySQL.
Calpont ofrece InfiniDB Enterprise para los que buscan más prestaciones, escalabilidad MPP y soporte formal.

## Versiones

InfiniDB se consigue en dos versiones: Community Edition y Enterprise Edition.
InfiniDB Community Edition (CE) es una versión de código abierto sin cargo. Sin embargo no soporta escalado basado en MPP y alguna otra característica está limitada.
InfiniDB Enterprise Edition (EE) es la versión comercial de InfiniDB. Puede escalar a un número arbitrario de nodos.
Ambas ediciones ofrecen conector Hadoop sin cargo, y se pueden desplegar en AWS.