gpt4 book ai didi

hibernate - 使用 JPA 进行哈希分区/分片的库

转载 作者:行者123 更新时间:2023-12-02 09:13:20 25 4
gpt4 key购买 nike

我的部门已决定对我们的一些大型 Oracle 数据库进行哈希分区/分片。我们将把我们的实体分割到不同的模式中。我的任务是进行一次峰值评估不同 JPA 实现对此的适用性。

我告诉要重点关注的两个是 EclipseLink和 Apache OpenJPA/Slice 。过去我们只使用Hibernate,但是Hibernate Shards处于测试阶段,并且似乎不再积极开发(最后一次发布是在 2007 年),因此我们不考虑它。

我将进行自己的评估和试用实现,但我不相信在给我的时间内我会对这些实现的整体质量有良好的感觉。如果您在生产环境中使用 OpenJPA 和/或 EclipseLink,特别是如果您的数据库是共享的,我想听听您的经验(正面和负面)、您对它们整体质量的看法,以及您是否也会这样做如果有机会再次选择。

最佳答案

OpenJPA Slice 可能是分片数据库环境中 JPA 应用程序的一种选择。

OpenJPA Slice 从 1.2 版本开始可用,并且还随 Websphere 7.0 及更高版本一起提供。 Slice 的基本使用契约是保留完全相同的基于 JPA 的应用程序代码,以便与水平分区的数据库分片一起使用,而不以任何方式影响数据库架构。数据库分片可能来自不同的供应商。

Slice 遵循基于策略的设计,允许用户应用程序控制哪个分片/切片将保留新实例、如何针对切片子集进行查询等。

基本限制(这在任何分片环境中都是典型的)是持久域模型应该遵守树约束模式。本质上,给定一个存储在分片 A 中的实例 x,x 的持久闭包(即可从 x 直接或间接访问的实例集)也必须存储在同一个分片 A 中。当您持久化 x 时,Slice 会自动计算闭包。

如果应用程序可以承受这样的限制,Slice 可能是一个不错的选择。

有时,某些实例可能会在闭包之间共享,例如国家代码或货币代码。 Slice 确实提供了跨多个分片复制此类“主数据”实例的功能。

支持分片的阿贝尔/交换的聚合运算(MAX、MIN、SUM)。不支持非阿贝尔聚合,例如 AVG。还支持排序或 Top-N 查询。

有关 Slice 的更多信息可以在以下引用文献中找到

[1] OpenJPA 用户手册:http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_guide_slice

[2] IBM Developerworks 文章:http://www.ibm.com/developerworks/java/library/os-openjpa/?ca=drs-

关于hibernate - 使用 JPA 进行哈希分区/分片的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6284775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com