發表日期: 2022-11-30 17:10:47 瀏覽次數:50
江山企業建站
MEMO創新了數據分層機制,僅在區塊鏈上記錄最為關鍵的信息,如角色信息、智能合約等,使用管理設備與邊緣存儲設備存儲其他信息與用戶數據,即能夠縮短數據上傳下載時間,節省了鏈上響應空間,又能提升整個存儲系統的性價比,實現ZB級的數據存儲規模。
2、驗證更快速,吞吐秒數級
MEMO設計了一種公開驗證方式,能有效降低驗證數據的通信開銷和驗證證明的計算成本,除去數據讀取時間,生成證明可以在幾秒內完成,驗證證明可以在一秒內完成,這大大降低了節點的計算負擔,使得存儲下載時間達到秒數級。
如果狀態轉移函數被聲明為“strict”,那么不能用空值輸入來 調用它。如果有這種轉移函數,聚集將按照下面的行為執行。帶有任何空值的 行會被忽略(函數不被調用并且之前的狀態值被保持)。如果初始狀態值就是 空值,那么碰到第一個沒有空值的行時,狀態值會被替換成第一個參數值,并且 對于每一個后續的沒有空值的行都會調用該轉移函數。這對實現 max
這樣的聚集很方便。注意只有當 state_data_type
和第一個 arg_data_type
相同時, 這種行為才可用。當這些類型不同時,你必須提供一個非空初始條件或者使用 一個非嚴格轉移函數。
如果狀態轉移函數不是嚴格的,那么在碰到每個輸入行時都將會調用它,并且 它必須自行處理空值輸入和空狀態值。這允許聚集的作者完全控制該聚集如何 處理空值。
如果最終函數被聲明為“strict”,那么當最終狀態值為空時將 不會調用它,而是自動地返回一個空結果(當然,這只是嚴格函數的普通行為)。 在任何情況下最終函數都可以返回一個空值。例如,avg
的最終函數會在看到零個 輸入行時返回空。
有時候把最終函數聲明成不僅采用狀態值還采用對應于聚集輸入值的額外參數 是有用的。這樣做的主要原因是,如果最終函數是多態的,那么狀態值的數據 類型將不適合于用來確定結果類型。這些額外的參數總是以 NULL 形式傳遞 (因此使用FINALFUNC_EXTRA
選項時,最終函數不能是嚴格的), 但盡管如此它們都是合法參數。例如,最終函數可以利用 get_fn_expr_argtype
來標識當前調用中的實際參數類型。
如第 37.10.1 節中所述,一個聚集可以 選擇支持移動聚集模式。這要求指定 MSFUNC
、MINVFUNC
以及 MSTYPE
參數,并且參數MSPACE
、 MFINALFUNC
、MFINALFUNC_EXTRA
和MINITCOND
是可選的。除了MINVFUNC
, 這些參數的工作都和對應的不帶M
的簡單聚集參數相似,它們 定義了定義了包括一個逆向轉移函數的聚集的一種獨立實現。
歡迎您免費咨詢,請填寫以下信息,我們收到后會盡快與您聯系
服務熱線:400-111-6878