问题标签 [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.

0 投票
1 回答
240 浏览

caching - 具有持久数据的 Apache Geode 缓存溢出配置

我有一个这样配置的持久缓存:-

问题是,当我存储 8 GB 的数据时,缓存会由于内存过多而崩溃。我不希望这种情况发生。就像我需要数据在超过 100MB 时溢出到磁盘,但是如果我尝试访问它,则将其返回缓存。我也想要持久缓存。

此外,如果我写到数据库后面,我怎么能在一段时间后驱逐数据。

这是如何运作的?

0 投票
1 回答
776 浏览

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 配置,我应该从客户端使用分布式锁吗?如果没有,我应该怎么做才能让客户端在必要时相互锁定以进行同步?

0 投票
1 回答
246 浏览

gemfire - 无法在 Apache Geode 上注册新的 CQ 查询

我在尝试使用 ClientCache 注册 cq 查询时卡在了原地。仍然得到这个异常:

客户端缓存创建如下:

并且建议的解决方案无济于事。实际库版本是:

0 投票
1 回答
211 浏览

gemfire - 在 Apache Geode Pulse 中启用关键统计信息

无法在 Geode Pulse 中启用关键统计信息(内存中读/写和磁盘读/写)。我设法将数据从 csv 文件导入到服务器区域,但关键统计数据根本没有改变,如附加的图像屏幕视图所示

该区域是使用statistics-enabled属性创建的。

并启用时间统计gemfire.properties

0 投票
3 回答
916 浏览

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 - 当前文档警告不要将其用于锁定区域条目。

支持原子增量长的“映射”的细粒度锁定用例是否是受支持的用例,如果是,如何适当地配置它?

0 投票
0 回答
146 浏览

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 中:

0 投票
0 回答
303 浏览

apache - 低内存上的 Apache geode 行为

我正在为我们的产品评估 geode。我从一个简单的测试开始,以检查 geode 在低内存上的行为: - 启动一个定位器和一个具有初始堆==最大堆==4GB、关键堆百分比=90%、驱逐堆的单一服务器-percentage=80% - 我看到 gfsh 还向服务器传递了以下 jvm 参数: -Xms4000m -Xmx4000m -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=60 - 创建一个分区区域 - 运行连接到定位器的客户端并获取区域作为代理(即没有本地缓存​​) - 客户端用元素填充服务器,直到由于内存不足而获得 ServerOperationException (如预期的那样) - 现在,我从该区域中删除所有元素并尝试再次运行客户端 - 客户端失败第一次放置操作(虽然服务器是空的!)

我的问题是:为什么 GC 不收集已删除的项目(我在服务器状态上看到 currentHeapSize=3151MB,maximumHeapSize=3866)?。如果服务器为空,我希望能够将数据放入服务器......

谢谢。

0 投票
1 回答
1129 浏览

geode - 使用 ClientCache 在复制区域中序列化 Pdx

使用 SB 创建 Geode 客户端缓存时,我在远程 Geode 实例上遇到 PDX 序列化问题 ->

cache.xml 看起来像 ->

在 Gfsh 我创建了一个区域为

在方法中测试期间将 EpgProgram 列表添加到区域时

pdx 实例似乎是使用从信息跟踪中看到的反射生成的->

但就在那之后我得到了一个例外->

错过了我必须设置 Pdx persistense 的任何其他地方?

Geode 版本:1.0.0-孵化。

0 投票
1 回答
2050 浏览

redis - Apache Geode 的基准

我正在做一些研究,我需要 Apache Geode 的基准,可能与 Redis 或 Hazelcast 进行比较。如果有人能指出我这样的话,将不胜感激。

在 Pivotal 的一个演示文稿中,我看到了一些基准,但他们只是在某些未知方面表明“Geode 比 Cassandra 快”,他们承诺会发布基准,但我找不到它们。

0 投票
2 回答
278 浏览

gemfire - Gemfire WAN 网关发送方/接收方成员

在集群中,我们希望创建既不是发送者也不是接收者的成员,同时在每个集群中有 1 个发送者/接收者。我们首先在给定集群中启动了发送方/接收方,没有错误。一旦我们启动既不是发送者也不是接收者的成员,它就会引发这个错误:

java.lang.IllegalStateException:无法使用 [gateway-sender-A] 网关发件人 ID 创建区域 /data,因为另一个缓存具有使用 [] 网关发件人 ID 定义的相同区域。

一些假设: - 复制区域 - 串行网关发件人 - 手动启动对于所有网关发件人都是错误的

我的猜测是,由于该成员没有网关发件人 ID,因此它抱怨为空白,我对此感到困惑。我认为我们可以在集群中拥有既不是发送方/接收方的成员。有人可以澄清吗?

谢谢