上周我从班加罗尔之行归来,那里我们举办了一次非常棒的开发者大会。
JUDCon India 2013
在这些活动中,最好的部分总是参加者:新用户和专家的良好混合,但所有人都具有非常健康的求知欲,并且一点也不受威胁,因此提出了大量的问题、讨论,以及在我漫长的回家路上有很多事情要思考。
演讲
我有幸发表了几个主题
- Hibernate Search:Hibernate 和 Infinispan 的查询
- 50 分钟内的 Infinispan
- 使用 Infinispan 的跨数据中心复制
- 数据网格的性能测量和容量规划
- 参与 JBoss 专家讨论小组
关于 Hibernate Search 的演讲是最后一刻增加的:通过调整议程,我们能够插入这个额外主题,鉴于收到了很多积极的反馈,我很高兴我们这么做了。
大规模去规范化问题
一位Hibernate Search的高级用户问我,当有一个领域模型将用户类型与地址连接起来时,当用户数量很多且城市名称发生变化时,会发生什么。他实际上知道会发生什么,但正在寻找替代方案来弥补这个问题;由于Lucene需要去规范化,Lucene索引中所有用户实例都需要更新,这将触发特定城市所有用户的重新加载。是的,这可能会成为一个问题!但这并不是模型模式中经常发生的事情,不是吗?我说在这个例子中,需要一个城市更改名称!这引起了很多人笑,因为班加罗尔刚刚将其官方名称更改为古老的传统名称班加鲁鲁。因此,由于他们使用Hibernate Search,并且当城市名称发生变化时这是一种意外的行为(城市人口超过800万),公共注册处的服务器不得不非常努力地工作!
显然,这需要特定的测试,以及我们部分更好的警告。这种问题是去规范化的一种自然结果,需要用临时解决方案来解决;在这种情况下,我建议使用一个同义词,并在配置使用的分析器的同义词支持中将两个名称注册为相同
,以便在搜索时使用:城市名称只需要在数据库中进行一次记录更改,不需要重新索引。
Hibernate OGM
虽然我是OGM团队的一员,但我没有必要谈论OGM,因为已经有其他演讲者谈到了这个话题。我非常享受聆听其他演讲者,拉玛亚·苏巴什和谢卡尔·古拉蒂:他们准备得非常充分,即使在最复杂的问题上,我也无需提供帮助。
感谢所有参加的人,特别是所有与我交谈的人,这非常有趣,我非常感谢所有的反馈。就像往常一样,请在我们的Hibernate论坛或Infinispan论坛上提出更多问题,您都可以通过发送测试或补丁来参与更多。