簡體   English   中英

Esper Window中如何限制memory消費

[英]How to limit memory consumption in Esper Window

我的應用程序中有以下查詢 window。 我想知道 Employee 事件何時第一次出現(新 Employee )或者現有 Employee 是否有任何更新。 我的應用程序正在獲得大量更新,我懷疑下面的 Window 不只保留 memory 中的最后兩條記錄,並且由於 memory 的使用隨着時間的推移而增加。 有什么辦法可以確保 Window 中只有最后兩條記錄可用?

@name('stmtUpdateEmployee') select * from Employee#groupwin(empId)#length(2)
    where
    prev(1, age) <> age OR
    prev(1, dept) <> dept OR
    prev(1, address) <> address OR
    prev(1, empId) is null;

我懷疑下面的 Window 不只保留 memory 中的最后兩條記錄,並且由於 memory 的使用隨着時間的推移而增加

你的懷疑是正確的。 memory..中會多出最后兩條記錄,具體取決於數據。 多很多。

Esper Reference 5.6.8部分所述,select 子句中的groupwin(empId)行......

select * from Employee#groupwin(empId)#length(2)

為每個鍵值創建一個單獨的數據 window,查詢規划器在Employee上創建一個 hash 索引,基本上導致保留所有具有唯一empId的員工事件。

所以這將隨着唯一員工數量的增加而增長......至少會有 2 * 唯一員工事件的數量(因為這是 2 的長度,最新的員工事件和之前的員工事件在 memory 中。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM