package core; /** * Copyright 2011 Thibault Dory * Licensed under the GPL Version 3 license */ import implementations.cassandraDB; import implementations.hbaseDB; import implementations.mongoDB; import implementations.riakDB; import implementations.scalarisDB; import implementations.terrastoreDB; import implementations.voldermortDB; import java.io.IOException; import utils.Files; /** * Class used to fill in the different databases with the wikipedia data * @author Thibault Dory * @version 0.1 */ public class fillDB { public static void main(String[] args) { String dbType = args[0]; int dbTypeI; if(dbType.equals("cassandra")) dbTypeI = 0; else if(dbType.equals("scalaris")) dbTypeI = 1; else if(dbType.equals("voldemort")) dbTypeI = 2; else if(dbType.equals("terrastore")) dbTypeI = 3; else if(dbType.equals("riak")) dbTypeI = 4; else if(dbType.equals("mongodb")) dbTypeI = 5; else if(dbType.equals("hbase")) dbTypeI = 6; else dbTypeI = -1; String basePath = args[1]; int numberOfInserts = Integer.decode(args[2]); String nodeAdress = args[3]; int firstIDInDB = Integer.valueOf(args[4]); int numberOfInsertRun = Integer.valueOf(args[5]); int firstIDOnDisk; try{ firstIDOnDisk = Integer.valueOf(args[6]); }catch(Exception e){ firstIDOnDisk = 0; } BenchDB db; switch(dbTypeI){ case 0: db = new cassandraDB(); break; case 1: db = new scalarisDB(); break; case 2: db = new voldermortDB(); break; case 3: db = new terrastoreDB(); break; case 4: db = new riakDB(); break; case 5: db = new mongoDB(); break; case 6: db = new hbaseDB(); break; default: db = new cassandraDB(); break; } int retCon = db.connectNode(nodeAdress); System.out.println("connection returned value : "+retCon); if(retCon > 0){ for(int j=0;j<numberOfInsertRun;j++){ for(int i=1;i<=numberOfInserts;i++){ String xml; int ret; try { xml = Files.readFileAsString(basePath+String.valueOf(i+firstIDOnDisk)); ret = db.writeDB(String.valueOf(firstIDInDB + i), xml); } catch (IOException e) { e.printStackTrace(); System.out.println("Cannot read file "+i); ret = -1; } if(ret==-1){ System.out.println("Insert for file "+firstIDInDB+i+" failed"); } if(i%200 == 0){ System.out.println(firstIDInDB+i+" inserts done"); } } firstIDInDB += numberOfInserts; } } } }