【问题标题】:Gemfire - How to restrict/limit OQL queries for a regionGemfire - 如何限制/限制区域的 OQL 查询
【发布时间】:2021-11-15 20:57:07
【问题描述】:

一些用户正在为在大区域中触发内存不足错误的区域执行 OQL。单独对查询进行排序会触发内存不足错误。

是否有任何配置可以限制内存占用或禁止对特定区域的查询?

【问题讨论】:

    标签: gemfile gemfire oql


    【解决方案1】:

    据我所知,没有特定的方法可以限制仅用于查询的内存消耗。

    但是,您可以使用其他选项来使集群对这些情况更具弹性(除了显而易见的选项:教育您的用户不要在大区域执行SELECT * 之类的操作):

    1. 配置Geode Resource Manager,它允许Geode 在内存高于预先配置的阈值时自动取消正在运行的查询(请参阅here)。
    2. 部署自定义SecurityManager 进行身份验证和授权,并谨慎地为您的用户分配DATA:READ:RegionName 权限。启用安全性后,尝试针对特定 RegionName 执行 OQL 查询的用户需要分配 DATA:READ:RegionName ResourcePermission,因此您可以事先决定向谁授予此权限。更多详情here

    【讨论】:

    • 谢谢胡安!你的两个选择都很棒!我正在考虑在查询时监控内存不足,但我不太确定,因为它会降低性能,因为它需要跟踪查询大小。
    • 启用ResourceManager 应该不会影响集群的性能,我已经看到它在多个生产环境中使用。附带说明一下,它不仅可以保护您的集群免受无差别查询的影响,还可以保护您的集群免受可能在高峰时段导致成员宕机的活动爆发……我强烈建议启用它!干杯。
    • 谢谢胡安!我很乐意给你更多的答案。 stackoverflow 中的最佳答案之一。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-19
    • 1970-01-01
    相关资源
    最近更新 更多