生成式AI领域的最新成果都在这里!抢 QCon 展区门票 了解详情
写点什么

Terracotta 近况:转向开源,接受度,Hibernate 支持

  • 2007-10-26
  • 本文字数:2263 字

    阅读完需:约 7 分钟

Terracotta 提供一种 JVM 集群方案,可让单节点、多线程的应用变成分布式、多节点的应用,而无需修改一行代码。InfoQ 之前报道过,得到 VC 支持的 Terracotta 在 2006 年底转向开源,从那以来已经有了很大的进展。最近的新进展包括 2.4 版支持 Websphere 和 Hibernate,以及 Terracotta 获得了大量用户的接受,如 PartyGaming(PartyPoker.com 的制造者)。InfoQ 就开源转变以及 Hibernate/Websphere 支持访问了 Ari Zilka。

据 Ari 说,这一年中成长速度大大加快,夏天的时候论坛贴子数量翻了一番,网站每周的访问量达到几千,超过 100 个客户部署了他们的产品。“与开源产品和框架如 Jetty、Geronimo、Spring 和 Tomcat 集成用的 Terracotta 集成模块起到了加速的作用”。至于转向开源对公司的成长有何影响: > 我们相信开源是重要的催化剂,有两个原因。首先,它降低了用户接受的成本,也降低了我们公司的销售成本。顾客现在自己完成整个概念验证过程,看过 Terracotta 在他们的应用中的使用效果,然后找我们谈企业购买的事情。这非常有助于我们保持较低的开销。这对顾客也很好,因为他们只需要投入一点时间就可以得出价值命题的结论。第二,开源是一个强烈的信号——开放源码是表明自身可靠程度的强列信号,表明你知道自己的产品是优秀的,并且可以经受住详尽的技术检查。我们相信在引入像 Terracotta 这样一种全新概念的时候,开源的影响会特别有价值。

从由 VC 支持的商业收入模型转向开源模型:

我们和顾客双方的交易成本都降低很多,这也加速了顾客的接受过程,对我们和用户社区都是巨大的利益。不过实际上转变过程并没有人们想象的那么戏剧性。公司的核心工作是制造出能增值的产品,然后想法把产品换成金钱。赚钱这个基本任务并没有改变,更不会消失。开源有利于产生好的产品,但决不是不花钱的。最大的变化是你的首要对手变成了自己,你必须找到方法去支持你的社区同时又赚到钱。我们同样认为这对顾客是很好的事情,因为 Terracotta 不能只提供支持,还被驱使着去发现更多创造性的价值增长点。在未来的几个月中,社区就会明白我们的意思。

Terracotta 最近公布了一些值得注意的新客户,包括在线赌博公司 PartyGaming、实时 RIA 框架 Kaazing,以及开源 CMS 开发商 Liferay。PartyGaming 经营 PartyPoker.com、PartyCasino.com、PartyBets.com 和 PartyBingo.com。他们的 Terracotta 部署包括几百台游戏服务器组成的集群。PartyGaming 的 CEO 说,“Terracotta 有能力组建数百台服务器的集群,同时网络使用率比其他方式低很多,由此带来的高性能是 PartyGaming 最主要的考虑。”

在今年夏天,Terracotta 2.4 加入了对 WebSphere 和 Hibernate 的支持。Ari 介绍说,Hibernate 支持包括了两种方式:

  • 用集群化的 EHCache 在 Hibernate 底下完成二级缓存的工作。如果现有的应用只打算用集群化数据库缓存的方式降低数据库负载,就采用这种方案。
  • 在集群和 Hibernate Session 之间无缝地断开连接以及重新连接 POJO,以此来实现 Hibernate 的 POJO 缓存。我们的 POJO 集群化成了 Hibernate 的代理……这很适合新的应用(或者改造现有应用),因为 POJO 集群化通过细致的字段级更新,能达到更高的性能。

Terracotta 的字段级更新检测 / 缓存,比 Hibernate 的机制有何优点:

在 POJO 集群化的方式中,发送的数据比较少,调用 Hibernate 和数据库的频率也比较低,因此伸缩性好一点。它也好过散落在代码中的 Hibernate 的 load() 和 store() 调用……对于二级缓存,如果你在程序的其他部分为 Session 和 POJO 使用了 Terracotta,使用 Terracotta + EHCache 的主要好处是获得单一的集群化提供者。否则 Hibernate 二级缓存基本上是对数据库行的定制序列化,一个字段对应到缓存里就成了一整行——所有缓存提供者都是这样的(顺便一提,这个例子说明了在缺少 DSO 的情况下,人们——在这里是 Gavin King——被迫做什么样的变通)。

Terracotta 2.4 还支持 java.util.concurrent 中的再入(re-entrant)读写锁:

在 2.4 之前,Terracotta 在集群中的锁机制,比线程在单个 JVM 中所能支持的锁机制更加智能。由于 JVM 的锁语义是悲观和排他的,因此当把协调关系放到 Terracotta 中实现,我们就能够在集群中提供更多的支持。如果开发者想让线程池的范围从单机扩展到集群,抑或只想实现有些线程读有些线程读写的业务逻辑,再入(re-entrant)读写锁将会以纯粹 POJO 的风格,提升集群中每个 JVM 的速度。concurrentHashMap 与 hashmap 的对比就是一个例子。java.util.concurrent 中的集合的并发性是通过再入读写锁实现的,现在已经得到 Terracotta 2.4 的原生支持。性能又提高了!

Ari 仿照 Network Attached Storage 的说法(或 Azul 所说的 Network Attached Processing),把 Terracotta 定位成“Network Attached Memory”。Ari 说:

这是有意的。NAS 的意图是简化文件 I/O 的编程,以及支持透明地注入高可用性(HA),还有运行时可伸缩的存储能力。Terracotta 设计时就考虑了全面的 HA(n+m 冗余度——你可以有任意多的备份,不停机的持续升级,等等)。其重要性在于,虽然应用各有不同,HA 和伸缩性必须以一致的方式来达成,这样 IT 部门才能为业务部门提供低成本的稳固的应用。换言之,HA/ 伸缩性是一种全局的需要,而 Terracotta 就正好是设计来为 Hotspot 和 IBM JRE 提供这样的能力。

Terracotta 的更多信息可以查阅 InfoQ 以往的新闻报道和技术文章: http://infoq.com/terracotta

查看英文原文: Catching up with Terracotta: Transition to Open Source, Adoption, Hibernate Support

2007-10-26 11:134252
用户头像

发布了 225 篇内容, 共 60.7 次阅读, 收获喜欢 50 次。

关注

评论

发布
暂无评论
发现更多内容

XPET宠物游戏系统开发技术

薇電13242772558

gamefi

常用的企业加速公司内部大文件传输速度方法

镭速

大文件传输 传输大文件 内部大文件传输

MySQL安全最佳实践指南(2024版)

这我可不懂

MySQL 数据库

【写作训练营打卡|02】

终身学习 #学习

直播预告丨电商内容营销的AIGC式进化

京东科技开发者

电商 大模型 AIGC

图控软件大盘点 国内外顶级SCADA软件整理

2D3D前端可视化开发

组态软件 工业自动化 SCADA HMI 图控软件

可视化软件开发工具——JNPF

互联网工科生

低代码开发 可视化开发 JNPF

公有云频繁宕机,从上云到下云备份如何实现?

财见

云图说 | 图解制品仓库服务CodeArts Artifact

华为云开发者联盟

华为云 华为云开发者联盟 华为云CodeArts 华为云云图说

Vue 应用程序性能优化:代码压缩、加密和混淆配置详解

离散元分析有什么用?仿真软件介绍

智造软件

CAE CAE软件 离散元

社交泛娱乐出海,市场 & 赛道、投放 & 变现的最新干货分享

融云 RongCloud

社交 泛娱乐 市场 变现 梳理

行外人提问:CST软件仿真能够解决哪些问题?

思茂信息

cst cst电磁仿真 cst仿真软件

云服务器的安全防护:技术与策略全面解析

一只扑棱蛾子

云服务器

用 2 种方法取消 Axios 请求,掌控请求的主动权

Liam

JavaScript 程序员 前端 axios 网络请求

细说SQL与ETL之间的小秘密

华为云开发者联盟

数据库 后端 华为云 华为云GaussDB 华为云开发者联盟

亚马逊云科技推出五项Amazon SageMaker新功能

财见

掌握Prompt工程,开启AI大模型新时代

百度开发者中心

大模型 #人工智能

7 种查询策略教你用好 Graph RAG 探索知识图谱

NebulaGraph

知识图谱 LLM rag

DAPP算力挖矿系统开发丨合约技术开发

l8l259l3365

过去 100 天,发生了啥?丨 RTE 开发者日报 Vol.100

声网

FPS和SFTP的速度哪个更快?区别在哪里?

镭速

ftp sftp 传输大文件

Prompt创新引领对话系统未来

百度开发者中心

大模型 Prompt

什么是微信小程序WXSS ?

Geek_2305a8

小程序中添加用户隐私保护的操作方法

Geek_2305a8

大模型数据集:构建、挑战与未来趋势

来自四九城儿

大模型数据集:突破边界,探索未来

来自四九城儿

亚马逊云科技携手埃森哲助力默沙东利用云技术缩短药物发现时间

财见

B 站基于 StarRocks 构建大数据元仓

StarRocks

数据库 StarRocks 数据分析、

身为 Go 程序员,我为啥更喜欢用 Zig?

树上有只程序猿

Go 编译器 Zig语言

免费SSL,阿里云免费SSL证书申请及如何宝塔更换SSL证书

JaneYork

阿里云 ssl 宝塔面板 免费SSL证书 宝塔

Terracotta近况:转向开源,接受度,Hibernate支持_Java_Floyd Marinescu_InfoQ精选文章