import java.util.Calendar;
import org.apache.log4j.Logger;
+import org.springframework.dao.DataIntegrityViolationException;
import com.datastax.driver.core.Cluster;
+import com.datastax.driver.core.Configuration;
import com.datastax.driver.core.Host;
import com.datastax.driver.core.Metadata;
+import com.datastax.driver.core.MetricsOptions;
+import com.datastax.driver.core.PoolingOptions;
+import com.datastax.driver.core.ProtocolOptions;
+import com.datastax.driver.core.QueryOptions;
import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Row;
+import com.datastax.driver.core.SocketOptions;
import com.datastax.driver.core.Session;
+import com.datastax.driver.core.exceptions.QueryExecutionException;
+import com.datastax.driver.core.exceptions.QueryValidationException;
+import com.datastax.driver.core.policies.Policies;
+
import compbio.engine.ProteoCachePropertyHelperManager;
import compbio.util.PropertyHelper;
public static String CASSANDRA_HOSTNAME = "localhost";
- public static Session getSession () {
+ public static Session getSession() {
return session;
}
CASSANDRA_HOSTNAME = cassandrahostname;
}
- cluster = Cluster.builder().addContactPoint(CASSANDRA_HOSTNAME).build();
+ Cluster.Builder builder = Cluster.builder();
+ builder.addContactPoint(CASSANDRA_HOSTNAME);
+ // PrintClusterConfiguration( builder.getConfiguration());
+ cluster = builder.build();
Metadata metadata = cluster.getMetadata();
System.out.printf("Connected to cluster: %s\n", metadata.getClusterName());
session.execute("CREATE KEYSPACE IF NOT EXISTS ProteinKeyspace WITH replication = {'class':'SimpleStrategy', 'replication_factor':3};");
session.execute("USE ProteinKeyspace");
- session.execute("CREATE TABLE IF NOT EXISTS MainParameters "
- + "(Name ascii, Value ascii, PRIMARY KEY(Name));");
-
+ session.execute("CREATE TABLE IF NOT EXISTS MainParameters " + "(Name ascii, Value ascii, PRIMARY KEY(Name));");
+
session.execute("CREATE TABLE IF NOT EXISTS ProteinRow "
+ "(Protein ascii, JobID ascii, Predictions map<ascii,ascii>, PRIMARY KEY(JobID));");
session.execute("CREATE TABLE IF NOT EXISTS ProteinLog "
+ "(JobID ascii, DataBegin ascii, DataEnd ascii, ip ascii, FinalStatus ascii, "
- + "ExecutionStatus ascii, Protein ascii, PRIMARY KEY(JobID));");
+ + "ExecutionStatus ascii, Protein ascii, ProgrammeName ascii, Version ascii, PRIMARY KEY(JobID));");
session.execute("CREATE TABLE IF NOT EXISTS ProteinData "
- + "(jobtime bigint, JobID ascii, Protein ascii, PRIMARY KEY(JobID));");
+ + "(jobtime bigint, JobID ascii, ExecTime int, Protein ascii, PRIMARY KEY(jobtime, JobID));");
+
+ session.execute("CREATE TABLE IF NOT EXISTS FailLog "
+ + "(jobtime bigint, JobID ascii, ExecTime int, ip ascii, FinalStatus ascii, PRIMARY KEY(jobtime, JobID));");
session.execute("CREATE TABLE IF NOT EXISTS JpredArchive "
- + "(JobID ascii, Protein varchar, IP ascii, StartTime bigint, ExecTime int, alignment map<ascii,ascii>, "
- + "predictions map<ascii,ascii>, ArchiveLink varchar, LOG varchar, PRIMARY KEY(JobID));");
-
+ + "(JobID ascii, Protein varchar, IP ascii, StartTime bigint, ExecTime int, FinalStatus ascii, ExecutionStatus ascii, alignment map<ascii,ascii>, "
+ + "predictions map<ascii,ascii>, ArchiveLink varchar, LOG varchar, ProgrammeName ascii, Version ascii, PRIMARY KEY(JobID));");
+
session.execute("CREATE TABLE IF NOT EXISTS JobDateInfo "
- + "(jobday bigint, Total bigint, Program varchar, Version varchar, PRIMARY KEY(jobday));");
+ + "(jobday bigint, Total bigint, TotalOK bigint, TotalStopped bigint, TotalError bigint, TotalTimeOut bigint, Program varchar, Version varchar, PRIMARY KEY(jobday));");
+
+ String com = "CREATE TABLE IF NOT EXISTS Users "
+ + "(name varchar, id bigint, email varchar, password varchar, organisation varchar, position varchar, signedtolist boolean, registrationdate bigint, PRIMARY KEY(id));";
+
+
+ // session.execute("ALTER TABLE ProteinLog ADD ProgrammeName ascii;");
+ // session.execute("ALTER TABLE ProteinLog ADD Version ascii;");
+ // session.execute("ALTER TABLE JpredArchive ADD ProgrammeName ascii;");
+ // session.execute("ALTER TABLE JpredArchive ADD Version ascii;");
+
session.execute("CREATE INDEX IF NOT EXISTS ProteinSeq ON ProteinRow (protein);");
- session.execute("CREATE INDEX IF NOT EXISTS JobDateStamp ON ProteinData (jobtime);");
+ session.execute("CREATE INDEX IF NOT EXISTS ProteinIp ON ProteinLog (ip);");
+ session.execute("CREATE INDEX IF NOT EXISTS ON ProteinLog (ExecutionStatus);");
+ session.execute("CREATE INDEX IF NOT EXISTS ON FailLog (FinalStatus);");
+ session.execute("CREATE INDEX IF NOT EXISTS ON Users (email);");
+ // session.execute("CREATE INDEX IF NOT EXISTS JobDateStamp ON ProteinData (jobtime);");
}
public void Closing() {
Calendar cal = Calendar.getInstance();
return cal.getTimeInMillis();
}
-
+
+ private void PrintClusterConfiguration(Configuration cc) {
+ Policies policies = cc.getPolicies();
+ SocketOptions sopt = cc.getSocketOptions();
+ ProtocolOptions propt = cc.getProtocolOptions();
+ PoolingOptions plopt = cc.getPoolingOptions();
+ MetricsOptions mopt = cc.getMetricsOptions();
+ QueryOptions qopt = cc.getQueryOptions();
+ System.out.println("Cluster configuration:");
+ System.out.println(" Policies = " + policies.toString());
+ System.out.println(" Socket Options = " + sopt.toString());
+ System.out.println(" Protocol Options: compression = " + propt.getCompression());
+ System.out.println(" Pooling Options = " + plopt.toString());
+ System.out.println(" Metrics Options = " + mopt.toString());
+ System.out.println(" Query Options = " + qopt.toString());
+ }
+
}