问题标签 [geode]
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.
caching - 具有持久数据的 Apache Geode 缓存溢出配置
我有一个这样配置的持久缓存:-
问题是,当我存储 8 GB 的数据时,缓存会由于内存过多而崩溃。我不希望这种情况发生。就像我需要数据在超过 100MB 时溢出到磁盘,但是如果我尝试访问它,则将其返回缓存。我也想要持久缓存。
此外,如果我写到数据库后面,我怎么能在一段时间后驱逐数据。
这是如何运作的?
gemfire - 服务器-客户端配置中的 Geode/Gemfire 分布式锁定
我正在关注此文档: http: //gemfire.docs.pivotal.io/docs-gemfire/latest/developing/distributed_regions/locking_in_global_regions.html 创建一个具有全局范围的区域以使用分布式锁定。
缓存.xml:
从 gemfire.properties 和 cache.xml 创建的 GemFireCache 之后的代码:
我想这会给我一个带有 的区域Scope.Global
,以便我可以调用 region.getDistributedLock(“entrykey”); 然后有锁在实例之间进行协调。
但是,当我打电话时getDistributedLock
,我得到了一个IllegalStateException: only supported for GLOBAL scope, not LOCAL
而且我发现无论区域属性中配置了什么,ClientRegionFactoryImpl 的构造函数都会强制范围为 Local,而且我没有 API 来覆盖它。这一行:https ://github.com/apache/incubator-geode/blob/develop/geode-core/src/main/java/org/apache/geode/cache/client/internal/ClientRegionFactoryImpl.java#L85
所以问题是,如果我使用客户端-服务器 DS 配置,我应该从客户端使用分布式锁吗?如果没有,我应该怎么做才能让客户端在必要时相互锁定以进行同步?
gemfire - 在 Apache Geode Pulse 中启用关键统计信息
无法在 Geode Pulse 中启用关键统计信息(内存中读/写和磁盘读/写)。我设法将数据从 csv 文件导入到服务器区域,但关键统计数据根本没有改变,如附加的图像屏幕视图所示
该区域是使用statistics-enabled
属性创建的。
并启用时间统计gemfire.properties
apache - 为原子数据结构配置和使用 Geode 区域和锁
我目前正在通过 Maven 使用 Spring Boot Starter 1.4.2.RELEASE 和 Geode Core 1.0.0-incubating,针对由 Geode Locator 和 2 个缓存节点组成的本地 Docker 配置。
我在这里查阅了文档:
http://geode.apache.org/docs/guide/developing/distributed_regions/locking_in_global_regions.html
我已经配置了一个 cache.xml 文件以与我的应用程序一起使用,如下所示:
在我的 Application.java 中,我通过以下方式将该区域公开为 bean:
在我的“服务”DistributedCounter.java 中:
我已经使用 gfsh 配置了一个名为 /testRegion 的区域 - 但是没有选项表明它的类型应该是“GLOBAL”,只有各种其他选项可用 - 理想情况下,这应该是一个持久的和复制的缓存,尽管如此以下命令:
使用方法:http: //geode.apache.org/docs/guide/getting_started/15_minute_quickstart_gfsh.html很容易在我的两个节点配置上看到持久性和复制的功能。
但是,上面的 DistributedCounter 中的锁定不会导致任何错误 - 但当两个进程尝试获取同一个“键”上的锁时它只是不起作用 - 第二个进程不会被阻止获取锁。Gemfire 论坛有一个较早的代码示例,它使用 DistributedLockService - 当前文档警告不要将其用于锁定区域条目。
支持原子增量长的“映射”的细粒度锁定用例是否是受支持的用例,如果是,如何适当地配置它?
java - Apache Geode 服务器未使用 xml SAXParseException 重新启动
在对区域中的数据进行直接更改的过程中(清除区域并重新加载新数据集)。该区域中的数据具有更新的类结构,因此我更新了域类/serializedID 并重新打包了我添加到服务器类路径的 jar,以帮助处理脉冲查询。
我有一个简单的设置,1 个定位器 2 个服务器/成员
使用复制的持久区域:
当我尝试重新启动时,我关闭了 sever2,我收到了这个错误:
这是在 RHEL6 Java 1.8.0_101 上运行的 Apache Geode 1.0.0-incubating。自错误开始以来,这些变量都没有变化。
甚至不确定从哪里开始寻找,因为部署之间的变化很小。
即使 gemfire 和 geode 都安装在同一台机器上,我确信我在正确的 gfsh 中:
apache - 低内存上的 Apache geode 行为
我正在为我们的产品评估 geode。我从一个简单的测试开始,以检查 geode 在低内存上的行为: - 启动一个定位器和一个具有初始堆==最大堆==4GB、关键堆百分比=90%、驱逐堆的单一服务器-percentage=80% - 我看到 gfsh 还向服务器传递了以下 jvm 参数: -Xms4000m -Xmx4000m -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=60 - 创建一个分区区域 - 运行连接到定位器的客户端并获取区域作为代理(即没有本地缓存) - 客户端用元素填充服务器,直到由于内存不足而获得 ServerOperationException (如预期的那样) - 现在,我从该区域中删除所有元素并尝试再次运行客户端 - 客户端失败第一次放置操作(虽然服务器是空的!)
我的问题是:为什么 GC 不收集已删除的项目(我在服务器状态上看到 currentHeapSize=3151MB,maximumHeapSize=3866)?。如果服务器为空,我希望能够将数据放入服务器......
谢谢。
geode - 使用 ClientCache 在复制区域中序列化 Pdx
使用 SB 创建 Geode 客户端缓存时,我在远程 Geode 实例上遇到 PDX 序列化问题 ->
cache.xml 看起来像 ->
在 Gfsh 我创建了一个区域为
在方法中测试期间将 EpgProgram 列表添加到区域时
pdx 实例似乎是使用从信息跟踪中看到的反射生成的->
但就在那之后我得到了一个例外->
错过了我必须设置 Pdx persistense 的任何其他地方?
Geode 版本:1.0.0-孵化。
redis - Apache Geode 的基准
我正在做一些研究,我需要 Apache Geode 的基准,可能与 Redis 或 Hazelcast 进行比较。如果有人能指出我这样的话,将不胜感激。
在 Pivotal 的一个演示文稿中,我看到了一些基准,但他们只是在某些未知方面表明“Geode 比 Cassandra 快”,他们承诺会发布基准,但我找不到它们。
gemfire - Gemfire WAN 网关发送方/接收方成员
在集群中,我们希望创建既不是发送者也不是接收者的成员,同时在每个集群中有 1 个发送者/接收者。我们首先在给定集群中启动了发送方/接收方,没有错误。一旦我们启动既不是发送者也不是接收者的成员,它就会引发这个错误:
java.lang.IllegalStateException:无法使用 [gateway-sender-A] 网关发件人 ID 创建区域 /data,因为另一个缓存具有使用 [] 网关发件人 ID 定义的相同区域。
一些假设: - 复制区域 - 串行网关发件人 - 手动启动对于所有网关发件人都是错误的
我的猜测是,由于该成员没有网关发件人 ID,因此它抱怨为空白,我对此感到困惑。我认为我们可以在集群中拥有既不是发送方/接收方的成员。有人可以澄清吗?
谢谢