Cassandra的mv还没有制作好:
Cassandra物化视图影响
限制:https://docs.datastax.com/en/cql-oss/3.3/cql/cql_using/knownlimitationsmv.html
https://techblog.fexcofts.com/2018/05/08/cassandra-materialized-views-ready-for-production/:
原来mvs有问题。最大的问题是mv与基表不同步。当使用不是基表键的键创建mv时,似乎会发生这种情况。cassandra没有提供任何机制来检查基表和任何mv之间的完整性。因此,除非您手动执行此操作,否则您将忽略任何差异。如果你发现任何不一致的地方,唯一的解决办法就是删除并重新创建mv。
Cassandra自2015年起拥有mv,已经5.5年了:https://www.datastax.com/blog/new-cassandra-30-materialized-views.
转到锡拉数据库,2016年发布了第一个版本:https://www.scylladb.com/2016/03/31/release-1-0/. scylladb将mvs推广为生产就绪。
为什么cassandra不能像scylladb那样创建生产就绪的mvs?在他们的网站上,我看不到任何限制。mvs非常有用,我不明白cassandra从来没有成功生产就绪的mvs,这个问题已经开放了5年多:https://issues.apache.org/jira/browse/cassandra-10346.
锡拉如何解决不一致的mv问题?为什么Cassandra不能/没有解决mv问题?
2条答案
按热度按时间ecfdbz9o1#
mv的scylla实现类似于cassandra,但并不完全相同。今天,即使使用“锡拉”,如果视图和基础不同步,除了完整的视图重建之外,没有100%安全的方法来修复它。但是,我们修复并改进了很多mv实现,减少了发生这种情况的机会。下面是水流的截图closed:open bugs 带mv:https://github.com/scylladb/scylla/issues?q=is%3aissue+is%3aopen+materialize+view+
“锡拉”的发展速度更快,活跃提交者的数量也更高(尽管令人惊讶)。现在我们在筏上工作是为了使常规操作保持一致,从而使视图和基座完全同步。
lnvxswe22#
完全公开-我在锡拉项目工作。
我不知道谁能确切地回答“为什么Cassandra没有做x”。这是一个开源软件,所以我认为最好的答案是社区中没有人关心它。如果你足够关心,欢迎你来解决它。也许有更好的答案,但这就是我给你的。
至于“锡拉是怎么做到的”,有一个关于索引和物化视图的实现的详细技术讨论https://www.youtube.com/watch?v=dywzrjtpi2s. 这个主题有点老掉牙了——功能和性能都有了最新的更新——但是底层的基础设施就在那里。
我可以肯定,锡拉的2i和mv在生产中得到了非常广泛的应用。