Niveles de consistencia de lectura y escritura compatibles con Apache Cassandra y costos asociados - Amazon Keyspaces (para Apache Cassandra)

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Niveles de consistencia de lectura y escritura compatibles con Apache Cassandra y costos asociados

En los temas de esta sección se describen los niveles de coherencia de Apache Cassandra admitidos para las operaciones de lectura y escritura en Amazon Keyspaces (para Apache Cassandra).

Niveles de coherencia de escritura

Amazon Keyspaces replica todas las operaciones de escritura tres veces en múltiples zonas de disponibilidad para garantizar durabilidad y alta disponibilidad. Las escrituras se almacenan de forma duradera antes de que se reconozcan utilizando el nivel de coherencia LOCAL_QUORUM. Por cada escritura de 1 KB, se le factura 1 unidad de capacidad de escritura (WCU) para las tablas que utilicen el modo de capacidad aprovisionada o 1 unidad de solicitud de escritura (WRU) para las tablas que utilicen el modo bajo demanda.

Puede utilizar cqlsh para establecer la coherencia de todas las consultas de la sesión actual a LOCAL_QUORUM mediante el siguiente código.

CONSISTENCY LOCAL_QUORUM;

Para configurar el nivel de coherencia mediante programación, puede establecer la coherencia con los controladores de cliente de Cassandra apropiados. Por ejemplo, los controladores Java versión 4.x le permiten establecer el nivel de coherencia en el archivo app config como se muestra a continuación.

basic.request.consistency = LOCAL_QUORUM

Si utiliza un controlador Java versión 3.x para Cassandra, puede especificar el nivel de coherencia para la sesión añadiendo .withQueryOptions(new QueryOptions().setConsistencyLevel(ConsistencyLevel.LOCAL_QUORUM), como se muestra en el siguiente ejemplo de código.

Session session = Cluster.builder() .addContactPoint(endPoint) .withPort(portNumber) .withAuthProvider(new SigV4AuthProvider("us-east-2")) .withSSL() .withQueryOptions(new QueryOptions().setConsistencyLevel(ConsistencyLevel.LOCAL_QUORUM) .build() .connect();

Para configurar el nivel de coherencia para operaciones de escritura específicas, puede definir la coherencia al llamar QueryBuilder.insertInto con un argumento setConsistencyLevel al utilizar el controlador Java.

Niveles de coherencia de lectura

Amazon Keyspaces admite tres niveles de coherencia de lectura: ONE, LOCAL_ONE y. LOCAL_QUORUM. Durante una lectura LOCAL_QUORUM, Amazon Keyspaces devuelve una respuesta que refleja las actualizaciones más recientes de todas las operaciones de escritura anteriores realizadas correctamente. El uso del nivel de coherencia ONE o LOCAL_ONE puede mejorar el rendimiento y la disponibilidad de sus solicitudes de lectura, pero es posible que la respuesta no refleje los resultados de una escritura realizada recientemente.

Por cada 4 KB de lectura utilizando la coherencia ONE o LOCAL_ONE, se le facturan 0,5 unidades de capacidad de lectura (RCU) para las tablas que utilicen el modo de capacidad aprovisionada o 0,5 unidades de solicitud de lectura (RRU) para las tablas que utilicen el modo bajo demanda. Por cada 4 KB de lectura utilizando la coherencia LOCAL_QUORUM, se le factura 1 unidad de capacidad de lectura (RCU) para las tablas que utilicen el modo de capacidad aprovisionada o 1 unidad de solicitud de lectura (RRU) para las tablas que utilicen el modo bajo demanda.

Facturación basada en la coherencia de lectura y en el modo de capacidad de rendimiento de lectura por tabla por cada 4 KB de lectura
Nivel de coherencia Aprovisionado Bajo demanda
ONE 0,5 CRU 0,5 RRU
LOCAL_ONE 0,5 CRU 0,5 RRU
LOCAL_QUORUM 1 RCU 1 RRU

Para especificar una coherencia diferente para las operaciones de lectura, llame QueryBuilder.select con un argumento setConsistencyLevel al utilizar el controlador Java.

Niveles de coherencia no admitidos

Los siguientes niveles de coherencia no son admitidos por Amazon Keyspaces y darán lugar a excepciones.

Niveles de coherencia no admitidos
Apache Cassandra Amazon Keyspaces
EACH_QUORUM No admitido
QUORUM No admitido
ALL No admitido
TWO No admitido
THREE No admitido
ANY No admitido
SERIAL No admitido
LOCAL_SERIAL No admitido