【问题标题】:Ignite query result fetched from cache or disk点燃从缓存或磁盘中获取的查询结果
【发布时间】:2020-12-02 14:08:38
【问题描述】:

启用 Ignite Native Persistence 后,有没有办法知道查询结果是从缓存还是磁盘中获取?

我正在使用 Apache Ignite 2.7.5,其中 2 个节点以 PARTITIONED 模式运行,每个节点的配置如下。

            <bean class="org.apache.ignite.configuration.DataStorageConfiguration">
                <!-- Redefining the default region's settings -->
                <property name="pageSize" value="#{4 * 1024}"/>
                <!--<property name="writeThrottlingEnabled" value="true"/>-->
                <property name="defaultDataRegionConfiguration">
                    <bean class="org.apache.ignite.configuration.DataRegionConfiguration">
                        <property name="persistenceEnabled" value="true"/>
                        <property name="initialSize" value="#{105L * 1024 * 1024 * 1024}"/>
                        <property name="name" value="Default_Region"/>
                        <!--Setting the size of the default region to 4GB. -->
                        <property name="maxSize" value="#{120L * 1024 * 1024 * 1024}"/>
                        <property name="checkpointPageBufferSize"
                                  value="#{4096L * 1024 * 1024}"/>
                        <!--<property name="pageEvictionMode" value="RANDOM_2_LRU"/>-->
                    </bean>
                </property>
            </bean>

【问题讨论】:

    标签: ignite


    【解决方案1】:

    所有数据都存储在堆外内存中的所谓页面中,它可以是 RAM 或磁盘,但后者需要先将页面加载到堆外,而它不会t 直接从磁盘执行读取。数据处理需要堆上内存,例如为 SQL 查询合并数据集、处理通信请求等。

    没有可靠的方法来检测是否已将一段所需数据预加载到 RAM 中,尽管有一些指标可以帮助您了解集群的总体情况。 IE。页面驱逐发生的频率等等。

    您可能想要检查数据区域的以下指标。

    这三个给出了加载到数据区域的数据大小的估计值:

    • TotalAllocatedPages
    • PagesFillFactor
    • 空数据页

    启用持久性后,这些信息会提供有关我们使用磁盘进行读取的密集程度的信息(越小越好): ​

    • PagesReplaceRate
    • PagesRead
    • 页面已替换

    一些可能有用的实现细节: Ignite Durable Memory, Ignite Persistent Store - under the hood

    【讨论】:

    • 是否有任何命令可以在 ignite 节点上运行以查找 PagesReplaceRatePagesReadPagesReplaced
    • 您可以直接从代码中检查它,例如:ignite.dataRegionMetrics() -> mm.getPagesFillFactor() 或使用 DataRegionMetricsMXBean gridgain.com/docs/latest/administrators-guide/…。请注意,您很可能需要明确启用指标收集。
    • 嗨,Alexandr,我们没有使用 gridgain 社区版进行 ignite。我们正在使用 apache ignite 2.7.5。可以在 apache ignite 2.7.5 中使用 gridgain 页面上提到的这些监控功能吗?
    • 是的,这就是我所指的。 CE 和 Ignite 应该是可互换的,这个指标绝对应该可用于 Ignite 2.7.5,尽管您可能是对的,与指标相关的某些内容可能已在 2.9.0 中被撤销。我认为如果您找不到它们,最好创建一个单独的问题。
    猜你喜欢
    • 1970-01-01
    • 2012-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-04
    • 2018-12-27
    相关资源
    最近更新 更多