【技術實現步驟摘要】
本專利技術屬于數據庫,尤其是涉及一種ipfs的鍵值對存儲擴展系統和方法。
技術介紹
1、星際文件系統ipfs是一個去中心化的、內容尋址的、多版本的點對點文件系統,采用了默克爾有向無環圖結構和分布式哈希表技術,實現了全球范圍內的文件存儲和共享。由于其存儲空間大、多版本、不存儲重復數據等優勢,ipfs在互聯網等各個領域都具有極高的應用價值。
2、作為一個存儲系統,ipfs的i/o性能至關重要。然而,ipfs的i/o性能并不夠優秀,其底層的存儲機制和路由機制使得i/o操作的響應時間較高。另外,ipfs只提供了文件讀寫接口,無法被上層應用直接調用,這阻礙了其應用生態圈的進一步擴大。所以,i/o性能不高和接口類型單一是ipfs亟待優化的兩點不足。
技術實現思路
1、針對現有技術中存在的問題,本專利技術提供了一種ipfs的鍵值對存儲擴展系統和方法,至少部分的解決現有技術中存在的i/o性能不高和接口類型單一的問題。
2、第一方面,本公開實施例提供了一種ipfs的鍵值對存儲擴展系統,包括內存數據庫模塊、ssdag讀寫模塊、ssdag合并模塊、版本管理模塊和緩存系統模塊;
3、所述內存數據庫模塊包括凍結跳表,所述內存數據庫模塊,用于調用ssdag讀寫模塊將凍結跳表中的數據進行刷盤,刷盤后凍結跳表被釋放;
4、所述ssdag讀寫模塊,用于提供讀和寫兩個操作結構,當內存數據達到設定閾值時,寫操作結構將內存數據排序并迭代,從而生成數據塊,最后形成ssdag存
5、所述ssdag合并模塊,用于將硬盤上的ssdag進行合并,將讀操作的執行控制在常數時間;
6、所述版本管理模塊,用于自定義的版本控制模型;
7、所述緩存系統模塊,用于將訪問次數超過設定訪問閾值的塊緩存在內存中,以此來加速讀操作。
8、可選的,所述內存數據庫模塊還包括活躍跳表。
9、可選的,所述述內存數據庫模塊發生寫請求時,內存數據庫先將鍵值對數據駐留在活躍跳表中,等到活躍跳表的數據達到設定躍跳閾值后,活躍跳表的數據被轉換成只讀的凍結跳表,并新建立空活躍跳表處理寫操作。
10、可選的,讀操作是寫操作的逆操作,當需要讀取ssdag時,讀操作結構將讀取索引塊,根據索引塊的索引信息確定要讀取的數據塊,ssdag一次讀取1到2個數據塊。
11、可選的,所述ssdag合并模塊定期檢測硬盤的ssdag的狀態,當某一層ssdag過多時,選定符合要求的ssdag進行多路歸并排序操作,并將新生成的ssdag寫入硬盤,最后將合并的版本增量寫入版本管理模塊的元數據表。
12、可選的,所述版本管理模塊將各個節點最新生成的版本塊發送到網絡中,網絡的節點收到版本塊后依據設定的策略將該版本塊的內容合并到節點的元數據表中。
13、可選的,所述緩存系統模塊為基于lru算法的緩存模塊,所述緩存系統模塊將被訪問次數達到設定數值的數據塊以哈希表的形式緩存在內存中,并采用lru算法管理數據塊的更新。
14、第二方面,本公開實施例還提供了一種ipfs的鍵值對存儲擴展方法,應用于第一方面任一所述的系統,包括:
15、輸入數據以跳表的形式存儲到內存數據庫模塊中;
16、內存中的數據達到閾值時,以ssdag的形式序列化到ipfs底層存儲中;
17、將ssdag的元數據添加到內存中的元數據表;
18、每次元數據表的更新生成一個對應的版本塊,多個版本塊之間形成鏈式結構。
19、可選的,內存中的數據達到閾值時,以ssdag的形式序列化到ipfs底層存儲中,包括:每個ssdag包含了多個數據塊和一個索引數據塊;
20、數據塊存儲鍵值對數據,索引數據塊存儲各個數據塊的索引信息;
21、讀取ssdag時,獲取索引塊的內容地址并根據內容地址獲取索引塊,索引塊包含了所有數據塊的索引信息,基于索引信息判斷該ssdag中是否包含要尋找的鍵;
22、數據塊中的數據按從小到大排列,再根據索引信息查找數據塊。
23、可選的,所述索引信息,包括內容地址、最大鍵和最小鍵。
24、本專利技術提供的ipfs的鍵值對存儲擴展系統和方法。其中該ipfs的鍵值對存儲擴展系統,通過設置內存數據庫模塊、ssdag讀寫模塊、ssdag合并模塊、版本管理模塊和緩存系統模塊,擴展了簡單易用的接口,從而達到提高i/o性能和豐富接口類型的目的。
本文檔來自技高網...【技術保護點】
1.一種IPFS的鍵值對存儲擴展系統,其特征在于,包括內存數據庫模塊、SSDAG讀寫模塊、SSDAG合并模塊、版本管理模塊和緩存系統模塊;
2.根據權利要求1所述的IPFS的鍵值對存儲擴展系統,其特征在于,所述內存數據庫模塊還包括活躍跳表。
3.根據權利要求2所述的IPFS的鍵值對存儲擴展系統,其特征在于,所述述內存數據庫模塊發生寫請求時,內存數據庫先將鍵值對數據駐留在活躍跳表中,等到活躍跳表的數據達到設定躍跳閾值后,活躍跳表的數據被轉換成只讀的凍結跳表,并新建立空活躍跳表處理寫操作。
4.根據權利要求2所述的IPFS的鍵值對存儲擴展系統,其特征在于,讀操作是寫操作的逆操作,當需要讀取SSDAG時,讀操作結構將讀取索引塊,根據索引塊的索引信息確定要讀取的數據塊,SSDAG一次讀取1到2個數據塊。
5.根據權利要求2所述的IPFS的鍵值對存儲擴展系統,其特征在于,
6.根據權利要求2所述的IPFS的鍵值對存儲擴展系統,其特征在于,
7.根據權利要求2所述的IPFS的鍵值對存儲擴展系統,其特征在于,
9.根據權利要求8所述的IPFS的鍵值對存儲擴展方法,其特征在于,內存中的數據達到閾值時,以SSDAG的形式序列化到IPFS底層存儲中,包括:每個SSDAG包含了多個數據塊和一個索引數據塊;
10.根據權利要求9所述的IPFS的鍵值對存儲擴展方法,其特征在于,所述索引信息,包括內容地址、最大鍵和最小鍵。
...【技術特征摘要】
1.一種ipfs的鍵值對存儲擴展系統,其特征在于,包括內存數據庫模塊、ssdag讀寫模塊、ssdag合并模塊、版本管理模塊和緩存系統模塊;
2.根據權利要求1所述的ipfs的鍵值對存儲擴展系統,其特征在于,所述內存數據庫模塊還包括活躍跳表。
3.根據權利要求2所述的ipfs的鍵值對存儲擴展系統,其特征在于,所述述內存數據庫模塊發生寫請求時,內存數據庫先將鍵值對數據駐留在活躍跳表中,等到活躍跳表的數據達到設定躍跳閾值后,活躍跳表的數據被轉換成只讀的凍結跳表,并新建立空活躍跳表處理寫操作。
4.根據權利要求2所述的ipfs的鍵值對存儲擴展系統,其特征在于,讀操作是寫操作的逆操作,當需要讀取ssdag時,讀操作結構將讀取索引塊,根據索引塊的索引信息確定要讀取的數據塊,s...
【專利技術屬性】
技術研發人員:江晶,
申請(專利權)人:上海叢云信息科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。