何时使用Apache Derby与外部数据库

帕特里克·罗素
2021-04-26 20:52

为了便于设置,Artifactory附带了一个开箱即用的内部数据库。

当有少于50万件文物,这个捆绑的Derby数据库将提供出色的性能。当Artifactory的规模如此之小时,它的Derby DB的性能甚至会比外部数据库(如MySQL)更好。这是因为Derby DB运行在与Artifactory相同的Java虚拟机(JVM)上,因此网络延迟为零。

然而,超过500,000个工件阈值,性能将开始下降。在负荷非常大的情况下尤其如此。造成这种退化的原因与前面提到的高性能的原因相同。的共享JVM资源2022世界杯阿根廷预选赛赛程,主要是内存CPU线程,在这两个独立的进程之间共享。

在高流量期间,Artifactory将开始使用更多的RAM。然而,与此同时,Derby数据库还必须使用更多的RAM来处理Artifactory产生的大量SQL查询。这极大地增加了服务器上的负载,并且可能达到Artifactory JVM超过其内存限制并崩溃的程度。

除了性能之外,在选择外部和进程外数据库时还需要考虑其他因素。如果你的组织有自己的数据库管理员,他们可以并且应该为您管理Artifactory数据库。使用外部数据库的另一个原因是备份更简单的是,您可以找到有关备份最佳实践的详细信息在这里。文档中建议抓取a数据库快照,这在Derby数据库上是不可能的。

最后,迁移到外部数据库的最大非性能原因是,在500,000个工件之后,迁移到另一个数据库将变得越来越困难。根据JFrog Wiki上的建议在这里,更改数据库的唯一方法是执行系统出口。此系统导出将接收超过500,000个工件要跑一个多小时,这通常是不可接受的停机时间。

在几乎所有的大规模环境中,从Derby数据库迁移是JFrog的第一个建议。