En este artículo, analizaremos las transacciones ligeras (LWT) en Cassandra , que también ayudan a mejorar el rendimiento.
A veces, las operaciones de inserción o actualización deben ser únicas y requieren una lectura antes de escribir. La lectura antes de la escritura tiene implicaciones en el rendimiento. ¡Úselo sabiamente! Este tipo de problema lo resolvió CQL Lightweight Transactions (LWT) mediante el uso de una cláusula IF en inserciones y actualizaciones.
Por ejemplo:
Crear un espacio de claves:
CREATE KEYSPACE IF NOT EXIST keyspace1 WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 2};
Creando una tabla:
CREATE TABLE User ( U_email text, U_password int, U_id UUID, PRIMARY KEY (email) );
Para leer utilizó la siguiente consulta CQL.
Select * from keyspace1.User where U_email = ‘ashish@gmail.com’;
Producción:
U_correo electrónico | U_contraseña | U_id |
---|---|---|
[0 filas]
Para insertar los datos en la tabla, utilizó la siguiente consulta CQL.
Insert into keyspace1.User (U_email, U_password, U_id) values (‘ashish@gmail.com’, ‘password_A’, uuid()) if not exists;
Echemos un vistazo.
Ahora, LWT creó la fila.
Select * from keyspace1.User where U_email = ‘ashish@gmail.com’;
Producción:
U_correo electrónico | U_contraseña | U_id |
---|---|---|
ashish@gmail.com | contraseña_A | 1a2b3c4d5e6789 |
[1 filas] LWT creó la fila
LWT en fila existente:
Insert into keyspace1.User (U_email, U_password, U_id) values (‘ashish@gmail.com’, ‘password_XYZ’, uuid()) if not exists;
Echemos un vistazo,
Aquí está el resultado de la consulta CQL anterior.
Select * from keyspace1.User where U_email = ‘ashish@gmail.com’;
Producción:
Transacciones ligeras (LWT) en la fila de actualización:
consulta CQL para actualizar una fila existente y ahora estamos aplicando LWT en esto. Consulta CQL para actualizar una fila existente.
UPDATE keyspace1.User SET U_password = 'password_XYZ' WHERE U_email = 'ashish@gmail.com' IF U_password = 'password_A' ;
Los operadores se pueden utilizar para el comando ACTUALIZAR:
=, <,, >=, != and IN
Echemos un vistazo,
Publicación traducida automáticamente
Artículo escrito por Ashish_rana y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA