tablas crear comandos cassandra aggregate-functions

crear - ¿La mejor forma de verificar la existencia de filas filtradas en Cassandra? por agregado definido por el usuario?



comandos cassandra (1)

Tengo una mesa de Casandra,

CREATE TABLE read_locks ( parent_path text, filename text, instance text, PRIMARY KEY ((parent_path, filename), instance) );

Lógicamente, quiero verificar la existencia de bloqueos en un archivo con la siguiente declaración:

select count(*)>0 as result from read_locks where parent_path=''...'' and filename=''...'';

Por supuesto, tengo al menos 2 implementaciones.

select count(*) as result from read_locks where parent_path=''...'' and filename=''...'';

y luego usar otro código, es decir, C ++, para verificar el valor del resultado.

O

select * from read_locks where parent_path=''...'' and filename=''...'';

y luego usar otro código, es decir, C ++, para verificar el valor bool de la siguiente declaración:

cass_iterator_next(rows)

No estoy seguro de cuál es mejor.

Y creo que hay una función agregada definida por el usuario para hacerlo, pero no pude entenderlo.

Por favor comparta sus comentarios.

Gracias de antemano, Ying


Si solo le importa si hay bloqueos, y ahora cuántos bloqueos hay, entonces probablemente sea más eficiente agregar una cláusula límite como esta:

SELECT * FROM read_locks WHERE parent_path=''...'' and filename=''...'' LIMIT 1;

Si eso devuelve una fila, entonces sabe que hay al menos un bloqueo en el archivo, y si no devuelve nada, entonces no hay bloqueos en el archivo.