簡體   English   中英

如何使用Java在文件系統上使用索引管理文件

[英]how to manage files with indexes on a file system using java

我打算開發一個服務器應用程序以支持和處理高容量數據遷移。

想象一下,這是一個基於隊列的平台,客戶端程序(從內容管理系統中提取元數據的源代理)將向服務器發送數據包(大小約為1KB),服務器將這些數據包存儲在指定的文件系統中。

服務器將根據數據包中的某些標頭信息對數據包進行分類,並且在使用某些標頭信息查詢數據包時,服務器應能夠檢索並返回適當的數據包。

如果正確定義了元數據,我們可以使用標准DBMS輕松地執行此操作,但是在我的情況下,數據包頭信息將在一段時間內發生變化,因此我不想頻繁地重新設計數據庫。

我在這里看到的挑戰是將數據包文件有效地存儲在文件系統中(這樣就不會影響文件服務器的性能),並且還維護索引信息,該信息可用於在請求時查找合適的數據包。

我正在考慮使用可以滿足上述目的的任何非DBMS開源框架(基於Java-nosql ??)。 根據源存儲庫的數量,數據包的數量可以從幾千到幾百萬到幾百萬不等。

感謝您的投入。

諸如Apache Cassandra之類的面向列的數據庫可以處理這種情況-Cassandra中提供的索引是相對基本的,但是對於您的情況來說可能是可以的。 對於Cassandra而言,數百萬個1KB的值將是一個非常小的數據集,應該完全沒有問題。

可以在主數據包旁邊寫入其他元數據列; 可以根據需要即時確定列名,因此可以使標題格式得以發展。

Cassandra中的數據收集在內存表中,然后以有效的方式在不可變的“ SSTables”中寫入磁盤。 它還會立即寫入提交日志,以確保在發生崩潰等情況下的持久性。

暫無
暫無

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

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