【发布时间】:2021-10-17 13:54:23
【问题描述】:
根据 cassandra 文档,LWT 性能很差。在以下场景中;
场景一;
- 从 cassandra 读取(线程 1)
- 如果上述步骤未返回任何数据,则写入 cassandra(线程 2)
在这种情况下,上述步骤由不同的线程处理。 Thread1 从 cassandra 读取数据,然后将其传递给 thread2。然后thread1会尽快查询新数据。这将提高性能。但是 cassandra 上会有 2 个连接。
场景2;
- 使用 LWT 写入 cassandra。
在这种情况下,只有一个线程会向 cassandra 发送查询。如果 LWT 性能真的很差,这会降低整体性能。
我不确定哪个更好。 LWT 性能真的很差吗?
【问题讨论】:
-
两者不一样,在那种情况下 1 将遭受竞争条件,除非您使用其他机制来确保线程不会处理相同的数据,例如演员模型。
-
你是对的。但我保证只有一个线程会同时处理 cassandra 中的相同密钥。我只是试着想象一下 lwt 的确切性能是什么