我们需要我们的应用程序(可能部署在多个主机上)在cassandra中创建一行。唯一成功创建行的主机执行工作。下面这样写一个insert语句就足够了吗?如果两个服务器尝试插入行,只有一个成功,而另一个获得异常/不成功? INSERT INTO keyspace1.claim (claim_id, status) VALUES (1, false) IF NOT EXIST 想了解使用 IF NOT EXIST 会避开上游。 谢谢,希尔帕
对, IF NOT EXISTS 将包括一个paxos回合和读之前写,虽然要慢得多。使用检查insert的结果集 wasApplied() 来判断是否需要。 https://www.datastax.com/dev/blog/lightweight-transactions-in-cassandra-2-0
1条答案
按热度按时间1zmg4dgp1#
对,
IF NOT EXISTS
将包括一个paxos回合和读之前写,虽然要慢得多。使用检查insert的结果集wasApplied()
来判断是否需要。https://www.datastax.com/dev/blog/lightweight-transactions-in-cassandra-2-0