当前位置: 首页 > 知识库问答 >
问题:

为什么Apache Ignite cache.replace-k-v-v api调用执行得很慢?

冀弘济
2023-03-14

我们正在RHEL平台上运行带有12个节点的Ignite集群,运行在OpenJDK1.8上的Ignite 2.7.0上。

使用https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/igniteCache.html#replace-k-v-v-使用大量cputime

我们目睹了一个进程的缓慢,当我们试图通过分析JVM来进一步钻探它时,主要的罪魁祸首(占总时间的78%)似乎来自Ignitecache.repalce(K,V,V)api调用。
在77.9个by replace中,39%被gridcacheadapter.equalval占用,38.5%被gridcacheadapter.put占用

缓存是分区的和原子的,readThrough、writeThrough、writeBehindEnabled设置为true。

附加一个节点的分析快照(其他节点的分析结果与此相似),请检查并建议与cache.replace(k,v,v)api相关的此Ignite版本的原因或已知性能问题是什么?

共有1个答案

祖奇
2023-03-14

我想它可能与下一期有关:

https://issues.apache.org/jira/browse/ignite-5003

与上一批更新(包含该键)之前对同一键的操作相关的问题将存储在数据库中。

public void write(Entry<? extends K, ? extends V> entry) {
    try {
        if (log.isDebugEnabled())
            log.debug(S.toString("Store put",
                "key", entry.getKey(), true,
                "val", entry.getValue(), true));

        updateCache(entry.getKey(), entry, StoreOperation.PUT);
    }
 类似资料:
  • 问题内容: 我已经对流进行了一些测试,特别是对nio- package的DirectoryStreams进行了流测试。我只是尝试获取目录中所有文件的列表,该列表按上次修改日期和大小排序。 旧File.listFiles()的JavaDoc对File中 的 方法进行了注释: 请注意,Files类定义了newDirectoryStream方法来打开目录并遍历目录中的文件名。当使用非常大的目录时,这可能

  • 问题内容: 关于的简单代码。是SessionScoped Bean,是RequestScoped Bean 内 我的问题是被叫很多。会告诉我们该方法在什么阶段被调用。首次加载页面时,请在阶段6-进行约 5次 呼叫。该页面上有一个,因此我在其中键入一些内容,然后单击(命令按钮)。然后在阶段1-> 4期间再呼叫 12次 。每个阶段调用此方法 3-4次 。然后,此属性的get 方法的setter方法(即

  • 我正在使用vue-2.6创建一个产品web应用程序。11,axios-0.21。1,vuetify-2.4。3. 我从本地数组中获取类别,然后通过使用v-for将pechUrl作为道具传递到Row组件中。然后在Row组件中,我在获得API响应后,通过使用axios获取ftchUrl,我只是简单地安装它。它工作正常,但问题是类别对象意味着行组件加载随机顺序导致行组件安装,因为它从API获得axios

  • 问题内容: 我在一个开始从事的项目中遇到了这段代码。原始开发人员不再可用,我对此一无所知: 产生值为。这是如何运作的? 什么是运算符? 什么是运算符? 什么是运算符? 什么是运算符? 问题答案: 什么是运算符? 那是两个运算符,一个是赋值运算符,一个是一元加号,它什么都不做。 您是否输入错了并表示compund赋值运算符? 什么是运算符? 还有两个运算符,一个为后递增,一个为加法(根据最大划分规则

  • 我对事务REST控制器中的一些异常处理感到困惑。 我有一个管理服务,看起来像: 我有一个REST控制器,看起来像: 它使用@Transactional(readOnly = true)注释。 如果存在此注释并且没有找到搜索的项目,则它会给出以下异常: 如果删除注释,则一切正常,响应包含搜索的项。 我假设当没有找到搜索的条目时会抛出一个异常,触发事务回滚消息。 以下是异常处理程序: 有没有办法在日志

  • 问题内容: 我最近找到了一个示例代码: 该方法将打开一个用户界面窗口。然后,我尝试将代码修剪如下: 两种版本均能正常工作。有什么区别? 问题答案: 任何一种代码都能在99%的时间内工作。 但是,Swing的设计使得对Swing组件的所有更新都应在事件分发线程(EDT)上完成。阅读有关并发的Swing教程以获取更多信息。 问题是它有1%的时间可能无法正常工作。您不想浪费时间尝试调试随机问题。