在CachéObjectScript(Intersystems的MUMPS方言)中,是否有一種方法可以有效地跳至全局下標範圍內的近似中點或關鍵點的線性點?相等,根據記錄的數量。查找全球下標中點
我想將下標鍵範圍分成大致相等的塊,然後並行處理每個塊。
知道全局中的鍵被安排在某種二叉樹中,這應該是底層數據存儲引擎的一個簡單操作,但我不確定是否有接口來做到這一點。
我可以通過掃描全局的整個鍵空間來做到這一點,但是這會失去嘗試並行運行操作的目的。順序掃描需要數小時才能完成。在開始掃描之前,我需要分開的密鑰空間。
我希望每個線程將到一個大小相等的連續的密鑰空間塊來單獨掃描;問題在於計算每個線程的關鍵範圍。
你有沒有試過,而不是N個線程獲得R記錄每個,一個線程獲得N * R記錄每個(如果有幫助,可能線程)?你不是I/O綁定的,顯然,但我的猜測是你是網絡延遲綁定或某些在客戶端綁定。 16個記錄是一個非常小的塊。 – psr 2012-07-26 21:23:23
我一次做了16條記錄,所以我可以在IN子句中使用帶有參數佔位符(?s)的單個準備語句。 16似乎足以彌補往返的開銷,而不會讓程序感到痛苦。一次執行N的問題是我要麼必須構建動態語句,要麼找到另一種上傳我想要的密鑰的方法。 – 2012-07-27 13:27:53