可以减慢实时订户杀死kdb中的tickerplant

问题描述 投票:0回答:1

缓慢的消费者会杀死或减慢滴灌植物吗?

我有一个自动报价机工厂,它具有3个实时订户,其中一个订户很慢。

q).z.W
7 | `long$()
8 | 969393 198 198 197 197 198 196 199 197 196 143 198 196 196 197 197 198 19..
9 | 199 198 198 143 197 199 197 197 197 197 199 196 199 145 196 198 198 198 1..
10| 198 196 198 144 199 198 198 198 196 197 196 199 198 143 199 198 197 198 1..

q)count each .z.W
7 | 0
8 | 85547
9 | 77931
10| 0

q)count each .z.W
7 | 0
8 | 191552
9 | 0
10| 0

缓慢的消费者曾经在生产数十亿条记录的kdb +生产系统中杀死过滴答植物或放慢速度吗?

kdb
1个回答
0
投票

是的,消费缓慢的人可以杀死地上部植物。缓慢的使用者在tickerplant中创建输出队列,并且此输出队列消耗内存。最终,如果运行足够长的时间,tickerplant(或其运行的机器)可能会耗尽内存并中止。

理想情况下,生产行情自动收录器将进行某种形式的监视,该监视将定期监视输出队列-如果队列超过某个特定阈值,则应停止订阅(暂时从.uw订阅字典中删除句柄,允许该队列耗尽)并在订户追赶时恢复。或者更具攻击性,并完全关闭订户连接(hclose),这将清除输出队列。

如果您的系统遇到很多排队,那么tickerplant也可能也需要每天收集垃圾(例如,在EOD中进行垃圾收集,以确保输出队列没有导致它保留未使用的内存(或者您可能希望保留它)未使用的内存,以便下次有大队列时不必从操作系统重新请求内存)

© www.soinside.com 2019 - 2024. All rights reserved.