问题标签 [terracotta]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 在 Terracotta 的上下文中,“it deltas memory”是什么意思?
我正在读《春天食谱》这本书。我无法理解关于兵马俑的某些说法。
以下是书中的一段话
Terracotta 与今天的大多数集群缓存不同,因为它没有可见的 API,而且它在将更改的状态传送到集群中的节点方面效率更高。大多数系统使用某种 Java 序列化或广播机制,其中每个其他节点都被赋予整个对象或对象图,这些对象或对象图已更改,无论它们是否需要了解新状态。Terracotta 的做法不同:它对对象图本身的内存进行增量,并同步集群中的其他节点,因为它们需要对象状态的一致视图。简而言之,它可以做的事情相当于只传输一个对象中的一个更新变量,而不是整个对象。
我可以理解它不使用序列化之类的东西来跨集群传输对象,但是“它增量内存”是什么意思?
ehcache - 使用 JTA 工作的分布式 Ehcache
我正在尝试使用 Terracotta Ehcache(开源)对分布式事务内存进行一些基准测试。我在理解它与 JTA 的工作时遇到了一些问题。在代码中,我发现对分布式事务感兴趣的缓存将自己作为具有 JTA 的资源登记为 JTA 稍后在其上执行两阶段提交的资源。
我的问题是,如果只有一个缓存被列为资源,JTA 将如何能够在分布式设置中自动更新所有其他缓存?我们没有将其他缓存引用传递给 JTA,因此不会对它们进行原子更新。我觉得,我在这里遗漏了一些字符串,谁能解释它是如何工作的?我也是 J2EE 的新手,我是否遗漏了一些允许将其他缓存自动引用传递给 JTA 的 J2EE 概念?
hibernate - Hibernate 悲观锁是用 EHCache/Terracotta 分发的吗?
Hibernate 是否可以在 Java 事务开始时实现悲观锁定,或者它是否依赖于在 Java 领域中的所有工作完成后应用悲观锁定,然后将更改作为数据库事务的一部分应用于数据库?
我问,因为我有一个 Java 事务,在此过程中调用了远程 Web 服务,这是非事务性的,因此无法回滚。如果 Hibernate 对正在操作的数据持有悲观锁,那么事务的处理应该被阻塞,因为 Hibernate 知道另一个线程已经在对这些数据进行操作。如果 Hibernate本身不跟踪此类锁,则 Java 事务将继续,调用 Web 服务,然后阻塞 DB 提交。
我真正想要发生的是Java事务启动,另一个线程尝试启动另一个事务,并且阻塞/失败,因为相关数据已经在进行中。
当 Hibernate 将 EHCache 作为 2LC 以分布式方式与 Terracotta 一起使用时,锁定行为会受到怎样的影响?
terracotta - 带有 Terracotta BigMemory 的 Broadleafdemo
我正在尝试弄清楚如何使用 Terracotta BigMemory 配置 Broadleaf 电子商务 java 解决方案 聆听http://www.slideshare.net/crederajfischer/bigmemory-for-bigproblems-improving-performance-of-a-real-world-ecommerce -application-based-on-hibernate-broadleaf-commerce
如何配置 Broadleafdemo 以使用 Terracotta BigMemory?是否像修改 bl-override-ehcache.xml 以具有“堆外”组件一样简单?
我想我必须获得使用 Terracotta BigMemory 的许可证?
caching - Java中的数据缓存
我正在尝试用java开发一个分布式应用程序。哪个数据缓存工具更好?
JBoss 缓存
英菲尼斯潘
缓存
兵马俑缓存??
java - Java 和不同类型/方法的聚类
我对 Java EE 比较陌生,并且已经开始听说可以集群的许多不同类型的系统:
- 虚拟机(即“该设备是一个虚拟机集群...... ”)
- 应用程序服务器,例如 Tomcat、JBoss 或 GlassFish(即“我们正在运行集群的 JBoss... ”)
- 集群 API,例如 Terracotta
- 数据库,如 Oracle(“集群数据库”)
- 云应用程序(“云基本上是一个集群...... ”)
维基百科将“聚类”定义为:
计算机集群由一组松散连接的计算机组成,它们一起工作,因此在许多方面它们可以被视为一个单一的系统。
我想知道对于这些“集群类型/方法”(如上所述)中的每一个,集群是如何工作的,以及它们如何相互关联。
例如,如果一个人可以从集群应用程序中受益,他/她可能会将它们放在集群应用程序服务器上,然后将集群管理器投入其中(再次,如 Terracotta)。
但是因为“聚类”这个短语似乎以模糊/模棱两可的方式使用,我没有看到这些中的每一个是如何与其他的联系在一起的,或者如果他们甚至这样做。在此先感谢任何勇敢的 StackOverflowers,他们可以帮助我理解这个相互交织的术语!
java - Java 中的多个线程可以在同一个监视器上持有锁吗?
目前我们正在分析一个tomcat线程转储。在 tomcat 上同时运行的所有线程的单个线程转储包含以下行:
特别是我们不明白
在我们的理解中,它表示当时三个线程正在对同一个监视器持有一个锁。根据我们的理解和JLS的说法,这是不可能的。
我们对线程转储的解释是否正确?
hibernate - terracotta-hibernate-cache 和 Ehcache Distributed with Terracotta 有什么区别?
terracotta-hibernate-cache
使用 Ehcache 作为 Hibernate 的二级缓存提供者和使用 Terracotta 分发它和使用and有区别terracotta-hibernate-agent
吗?
java - EhCache POM 行为不端
上个月我问了这个问题,因为我无法使用 M2E Eclipse 插件将 EhCache jar 拉入我的本地 Maven 缓存。
现在,我正在尝试将几个 EhCache/Terracotta POM 文件转换为 Ivy XML 文件(使用该IvyConvertPom
任务(这对于我本地存储库中的每个其他 POM 都非常有效 - 并且有数百个)并且它令人窒息,说明:
不可能将给定的 pom 文件转换为 ivy 文件:java.io.IOException: Impossible to load parent for file:/C:/Users/myUser/jars/net/sf/ehcache/ehcache-terracotta-root/2.5.0/ehcache- terracotta-root-2.5.0.pom。Parent=org.terracotta.forge#forge-parent;2.3 from=C:/Users/myUser/jars\net\sf\ehcache\ehcache-terracotta-root\2.5.0\ehcache-terracotta-root-2.5.0。 pom to=C:/Users/myUser/jars\net\sf\ehcache\ehcache-terracotta-root\2.5.0\ivy.xml
找不到 C:/Users/myUser\jars\net\sf\ehcache 的工件\ehcache-terracotta-root\2.5.0\ehcache-terracotta-root-2.5.0.pom
以下所有 EhCache/Terracotta 工件都会发生这种情况:
net\sf\ehcache\ehcache-terracotta\2.4.7\ehcache-terracotta-2.4.7.pom
net\sf\ehcache\ehcache-terracotta\2.5.0\ehcache-terracotta-2.5.0.pom
net\sf\ehcache\ehcache-terracotta-root\2.4.7\ehcache-terracotta-root-2.4.7.pom
net\sf\ehcache\ehcache-terracotta-root\2.5.0\ehcache-terracotta-root-2.5.0.pom
我不确定这个问题是否与我上个月遇到的问题有关,或者 EhCache 的开发人员是否只是有一种非标准的方式来编写他们的 POM,但这是现在 Maven(IvyConvertPom
在hood) 对用他们的罐子做某事感到窒息。
有什么事情是显而易见的吗?否则我必须调试 Ivy 代码,这听起来像是结束星期三的痛苦方式。如果必须,我会这样做,但我想我会先在这里问,以防我遗漏了一些明显的东西。
提前致谢!
java - 对于 Terracotta 中的持久数据,如何进化类?
我们正在考虑将Terracotta用于我们的下一个项目。我对它在不需要单独的 DBMS 的情况下提供数据持久性的潜力很感兴趣。(另见 关于使用 Terracotta 作为持久性解决方案)
软件演进的一大痛点是使现有的生产数据符合新的数据模型。对于 RDBMS,您可能会在部署时使用 SQL 更改脚本。对于 Terracotta 支持的数据,我并不清楚如何处理非平凡的进化。
Terracotta 文档中有几段关于 Class Evolution 的段落,但它似乎是特定于 DSO 的,而且相当肤浅。
- 有哪些可能的方法来处理存储在 Terracotta 中的持久数据的数据模型演化?我对非 DSO 场景(即通过 Terracotta Toolkit API)特别感兴趣。
- Terracotta DSO 和 Toolkit API 对进化类定义的反应是否不同?
- 要了解类进化的局限性,了解 Terracotta 如何表示/传达对象数据会有所帮助;有规范吗?
- 也许 OODBMS 世界中存在适用于 Terracotta 的模式演化技术?
作为一个简单的例子,假设我Car
存储了一堆对象,并且我已经将类的modelYear
字段Car
从 aString
更改为 an int
。根据文档,这不是开箱即用的。我可以想象一个解决方案,Car
在应用程序启动期间我的旧类加载器由单独的类加载器加载,然后转换为新的Car
. 这会是一个好方法吗?为什么(不是)?