我观察到德鲁伊查询性能可以从之前的查询中受益。因此,我试图了解原因。我知道德鲁伊使用缓存(我在Broker中使用缓存),但这……
德鲁伊确实使用缓存来提高各个级别的性能。在历史记录的段级别和经纪人的德鲁伊查询级别。你给它的内存越多,它的工作速度就越快。
以下是有关缓存的文档 -
的 查询缓存 强>
Druid通过LRU缓存支持查询结果缓存。结果以每个段为基础存储,并与给定查询的参数一起存储。这允许Druid部分地基于缓存中的分段结果返回最终结果,并且部分地基于扫描历史/实时分段的分段结果。
段结果可以存储在本地堆缓存或外部分布式键/值存储中。可以在Historical和Broker级别启用段查询高速缓存(不建议在两者上启用高速缓存)。
的 查询经纪人缓存 强>
与在小型群集的历史记录上启用查询缓存相比,在代理上启用缓存可以产生更快的结果。这是较小生产群集(< 20服务器)的推荐设置。请注意,在Broker上启用缓存时,将根据每个段返回Historicals的结果,并且Historicals将无法执行任何本地结果合并。
的 查询历史记录缓存 强>
较大的生产群集应仅在历史记录上启用缓存,以避免必须使用Brokers合并所有查询结果。在历史记录而不是经纪人上启用缓存使历史记录能够进行自己的本地结果合并,并减少对经纪人的压力。
如果,德鲁伊经纪人不会直接在操作系统页面缓存中执行任何操作 os提供虚拟内存,而不是基于内存 要求分配堆。