Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 由于Cassandra没有事务,并且所有语句都是原子的,如果需要,如何模拟回滚?_Java_Cassandra - Fatal编程技术网

Java 由于Cassandra没有事务,并且所有语句都是原子的,如果需要,如何模拟回滚?

Java 由于Cassandra没有事务,并且所有语句都是原子的,如果需要,如何模拟回滚?,java,cassandra,Java,Cassandra,如果我有两个不同的表(可能代表两个不同的查询),并且我需要保持它们的同步,如果我更新第一个表中的值,然后在更新第二个表时发生错误,我将如何回滚第一个表的更新 例如: CREATE TABLE IF NOT EXISTS sample.hotels ( id UUID, name varchar, address varchar, state varchar, zip varchar, primary key((id), name) ); CREATE TABLE

如果我有两个不同的表(可能代表两个不同的查询),并且我需要保持它们的同步,如果我更新第一个表中的值,然后在更新第二个表时发生错误,我将如何回滚第一个表的更新

例如:

 CREATE TABLE IF NOT EXISTS sample.hotels (
  id UUID,
  name varchar,
  address varchar,
  state varchar,
  zip varchar,
  primary key((id), name)
 );

 CREATE TABLE IF NOT EXISTS sample.hotels_by_letter (
  first_letter varchar,
  hotel_name varchar,
  hotel_id UUID,
  address varchar,
  state varchar,
  zip varchar,
  primary key((first_letter), hotel_name, hotel_id)
 );

Cassandra确实支持这种用途的批处理语句:


这将保证批处理中的所有语句要么全部成功,要么全部失败。除此之外,无法回滚事务

Cassandra确实支持这种使用的批处理语句:


这将保证批处理中的所有语句要么全部成功,要么全部失败。除此之外,无法回滚事务

你可能是对的,但措辞没有提到导致其他陈述失败的部分失败,只有成功。奇怪的措辞是:
批处理在默认情况下是原子的。在Cassandra批处理操作的上下文中,原子意味着如果任何批处理成功,则所有批处理都将成功。
如果任何批处理成功,则所有批处理都将成功。所以,如果其中一个没有成功(失败),那就意味着没有一个成功(失败)。“同意”的措辞可以更明确。你可能是对的,但措辞没有提到某个部分的失败导致其他陈述的失败,只有成功。奇怪的措辞是:
批处理在默认情况下是原子的。在Cassandra批处理操作的上下文中,原子意味着如果任何批处理成功,则所有批处理都将成功。
如果任何批处理成功,则所有批处理都将成功。所以,如果其中一个没有成功(失败),那就意味着没有一个成功(失败)。“同意”的措辞可以更加明确。