cassandra - 使用 "with"时间戳通过 Ignite 写入 Cassandra,以消除对 Cassandra 的陈旧写入

标签 cassandra ignite timestamp-with-timezone lru write-through

我正在寻找此功能,以便能够通过顶部的 Ignite 层写入 Cassandra,类似于 Cassandra 支持“带有”时间戳功能的方式,以便可以消除过时的更新。 我们希望通过 Ignite 进行写入的原因是,我们可能会在写入后立即收到读取调用,并且 API 需要提供最新的服务,而不是等待 Ignite Cache 上的 TTL 或 LRU。 另一方面,我们可以直接写入 Cassandra,然后使该条目无效/删除以确保提供最新数据。但还有更好的方法吗?

最佳答案

看来您需要的是一个启用了读通和写通的缓存。创建一个具有类似于以下配置的缓存:

<bean class="org.apache.ignite.configuration.CacheConfiguration">
    <property name="name" value="cache1"/>
    <property name="readThrough" value="true"/>
    <property name="writeThrough" value="true"/>
    <property name="cacheStoreFactory">
        <bean class="org.apache.ignite.cache.store.cassandra.CassandraCacheStoreFactory">
            <!-- ... -->
        </bean>
    </property>
</bean>

当您写入此缓存时,写入内容将同步传播到 Cassandra,当您读取它时,Ignite 将从 Cassandra 中获取该值(如果还没有)。

注意:如果您直接写信给 Cassandra,Ignite 将不会知道这一点,并将继续提供过时的值。使用直读和直写时,最好通过 Ignite 路由所有写入。

关于cassandra - 使用 "with"时间戳通过 Ignite 写入 Cassandra,以消除对 Cassandra 的陈旧写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60962037/

相关文章:

cassandra - cassandra 节点上的数据大小不均匀

java - 点燃堆内存使用

Oracle如何将任何时区的时间戳转换为数据库服务器时区的日期

python - OrientDB:服务器和数据库之间时区不同的 python 中 SELECT 的日期时间转换问题

java - Datastax java 驱动程序的自动故障转移不适用于 OutOfMemoryError 节点故障

Cassandra CQL - 具有多个聚类列的聚类顺序

Cassandra CQL 选择查询不返回以时间戳作为 clusterkey 的记录

java - 如何在 Apache Ignite 中获取已逐出的项目

java - 获取 IgniteCheckedException : Default Ignite instance has already been started exception when enabling Persistence on single Node

java - 如何使用来自 postgres 的带时区的 unix 时间戳格式化 D3 轴