我正在使用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来存储数据。