package implementations;
/**
* Copyright 2011 Thibault Dory
* Licensed under the GPL Version 3 license
*/
import com.ericsson.otp.erlang.OtpConnection;
import core.BenchDB;
import de.zib.scalaris.ConnectionException;
import de.zib.scalaris.ConnectionFactory;
import de.zib.scalaris.Scalaris;
import de.zib.scalaris.Transaction;
import de.zib.scalaris.examples.CustomOtpFastStringObject;
/**
*
* @author Thibault Dory
* This class should not be used in it's current state as the java api of Scalaris must be extended to have decent performances
*/
public class scalarisDB extends BenchDB{
Scalaris sc;
OtpConnection conn;
@Override
public int connectNode(String nodeAddress) {
int ret;
try {
ConnectionFactory cf = new ConnectionFactory();
conn = cf.createConnection("java-client");
ret = 1;
} catch (ConnectionException e) {
e.printStackTrace();
ret = -1;
}
ConnectionFactory.getInstance().setNode(nodeAddress);
return ret;
}
@Override
public String readDB(String ID) {
String res;
try{
Transaction transaction = new Transaction(conn);
transaction.start();
res = transaction.read(ID);
// CustomOtpFastStringObject value = new CustomOtpFastStringObject();
// transaction.readCustom(ID, value);
// res = value.getValue();
transaction.commit();
//transaction.closeConnection();
}catch (Exception e) {
e.printStackTrace();
res = null;
}
System.out.println(res);
return res;
}
@Override
public int updateDB(String ID, String newValue) {
int res;
try{
Transaction transaction = new Transaction(conn);
transaction.start();
transaction.writeCustom(ID, new CustomOtpFastStringObject(newValue));
transaction.commit();
//transaction.closeConnection();
res = 1;
}catch (Exception e) {
e.printStackTrace();
res = -1;
}
return res;
}
@Override
public int writeDB(String ID, String Value) {
return updateDB(ID,Value);
}
@Override
public void searchDB(String keyword) {
}
@Override
public void close() {
conn.close();
}
}