【问题标题】:I am facing Performance issue with Javers while inserting data我在插入数据时遇到 Javers 的性能问题
【发布时间】:2016-06-07 04:08:25
【问题描述】:

我正在使用带有 Spring Data JPA + Hibernate 的 Javers。 当我使用 CurdRepository.save(Collection) 时,Javers API 会逐一审核集合中的每个对象,这会导致整个插入过程出现延迟。

在集成 Javers 之前,进程需要 30 秒来处理 100 行,而在集成 Javers 之后需要 80 秒。

这是预期的行为吗?

【问题讨论】:

    标签: javers


    【解决方案1】:

    Javers 将您提交的每个对象与其保存在 JaversRepository 中的最后一个快照进行比较。对于大型对象图,可能需要一段时间。

    【讨论】:

    • 我们注意到每个数据库操作的性能问题非常高,没有 Javers 需要 2 毫秒,使用 Javers 需要 10093 毫秒。有没有办法在生成差异或历史记录时跳过比较操作到单独的 api?
    • 单独的 API 是什么意思?
    • 在审计期间,我们是否可以只存储快照而不执行 DIFF,然后在当前事务之外将差异作为单独的操作执行?正如我在之前的评论中提到的那样,所花费的时间非常长,因此我们尝试了解如何减少这种情况。
    • 不,没有这样的选项,快照只有在 JaVers 检测到一些变化时才会创建和持久化。没有它,您将有许多不必要的快照(对于未更改的对象)。可能原因是你的事务的大小,你一次提交了多少个对象?
    • 我们在一个事务中有 100 个插入。由于每次插入都需要更多时间,因此会增加事务的整体持续时间。
    【解决方案2】:

    如果您的事务(没有 JaVers)需要 30 秒来插入 100 行,我猜您的基础架构可能存在一些性能问题,可能是数据库。在经过良好调整的数据库上,插入吞吐量以毫秒为单位,而不是数百毫秒。

    【讨论】:

      猜你喜欢
      • 2023-03-03
      • 1970-01-01
      • 2012-09-09
      • 2017-11-19
      • 2014-08-04
      • 1970-01-01
      • 2022-12-01
      • 1970-01-01
      • 2013-07-19
      相关资源
      最近更新 更多