Improve presentation of job on the web (servlet ServletSequenceProtein)
[proteocache.git] / datadb / compbio / cassandra / CassandraNativeConnector.java
index acb50de..4b40518 100644 (file)
@@ -5,12 +5,20 @@ import java.util.Calendar;
 import org.apache.log4j.Logger;
 
 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.policies.Policies;
+
 import compbio.engine.ProteoCachePropertyHelperManager;
 import compbio.util.PropertyHelper;
 
@@ -36,7 +44,10 @@ public class CassandraNativeConnector {
                        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());
@@ -63,18 +74,22 @@ public class CassandraNativeConnector {
                                + "ExecutionStatus ascii, Protein 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>, archive blob, 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, PRIMARY KEY(JobID));");
                
                session.execute("CREATE TABLE IF NOT EXISTS JobDateInfo "
-                               + "(jobday bigint, Total bigint, PRIMARY KEY(jobday));");
+                               + "(jobday bigint, Total bigint,  TotalOK bigint, TotalStopped bigint, TotalError bigint, TotalTimeOut bigint, Program varchar, Version varchar, PRIMARY KEY(jobday));");
 
                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 JobDateStamp ON ProteinData (jobtime);");
+       } 
 
        public void Closing() {
                session.shutdown();
@@ -98,4 +113,20 @@ public class CassandraNativeConnector {
                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());
+       }
+       
 }