Translate

jueves, 1 de agosto de 2019

SASI : Una nueva implementación del índice secundario en Cassandra


La versión Cassandra 3.4 incluía una implementación alternativa de índices secundarios conocida como SSTable Attached Secondary Index (SASI). SASI fue desarrollado por Apple y lanzado como una implementación de código abierto de la API del índice secundario de Cassandra. Como su nombre lo indica, los índices SASI se calculan y almacenan como parte de cada archivo SSTable, a diferencia de la implementación original de Cassandra, que almacena los índices en tablas separadas, "ocultas".

La implementación SASI existe junto con los índices secundarios tradicionales, y puede crear un índice SASI con el comando CQL CREATE CUSTOM INDEX:

CREATE CUSTOM INDEX user_last_name_sasi_idx ON user (last_name)
USING 'org.apache.cassandra.index.sasi.SASIIndex';

Los índices SASI ofrecen funcionalidad más allá de la implementación de índice secundario tradicional, como la capacidad de realizar búsquedas de desigualdad (mayor o menor que) en columnas indexadas. También puede utilizar la nueva palabra clave "LIKE" para realizar búsquedas de texto en columnas indexadas. Por ejemplo, podría usar la siguiente consulta para encontrar usuarios cuyo apellido comience con "N":

SELECT * FROM user WHERE last_name LIKE 'N%';

Si bien los índices SASI se desempeñan mejor que los índices tradicionales al eliminar la necesidad de leer de tablas adicionales, aún requieren lecturas de un mayor número de nodos que un diseño desnormalizado.