我正在使用Google Guava表來處理JAVA應用程序中的表結構化數據。我的數據對象由Table和Map組成,它存儲每列的數據類型(int,string,decimal ...)。緩存表 - Google Guava表
public class DataTable {
private Table<Integer, String, Object> data;
private Map<String, Integer> types;
private static int maxObjectSize;
private static int rowSize;
private DiskCache dc;
public DataTable(){
//Getter and Setter
該對象可能會變得非常大並且佔用內存(高達10,000,000行和16 GB內存)。所以我的想法是每50,000行左右換一個臨時文件夾,並在需要時讀取數據。
public void putRow(int row, String column, Object value){
data.put(row, column, value);
rowSize = data.rowKeySet().size();
if(rowSize == maxObjectSize){
writeCache();
}
}
我一直在討論數據的大問題。一方面,緩存非常耗時,另一方面很難確保沒有數據丟失,並且我還沒有找到一個好的第三方API來存儲數據。