use of org.voltdb.ServerThread in project voltdb by VoltDB.
the class TestBlobType method testTPCCCustomerLookup.
public void testTPCCCustomerLookup() throws Exception {
// constants used int the benchmark
final short W_ID = 3;
final byte D_ID = 7;
final int C_ID = 42;
VoltProjectBuilder builder = new VoltProjectBuilder();
builder.addSchema(TPCCProjectBuilder.ddlURL);
for (String[] pair : TPCCProjectBuilder.partitioning) {
builder.addPartitionInfo(pair[0], pair[1]);
}
builder.addStmtProcedure("InsertCustomer", "INSERT INTO CUSTOMER VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);", "CUSTOMER.C_W_ID: 2");
builder.addStmtProcedure("Fake1", "SELECT C_ID, C_FIRST, C_MIDDLE, C_LAST, C_STREET_1, C_STREET_2, C_CITY, C_STATE, C_ZIP, C_PHONE, C_SINCE, C_CREDIT, C_CREDIT_LIM, C_DISCOUNT, C_BALANCE, C_YTD_PAYMENT, C_PAYMENT_CNT, C_DATA FROM CUSTOMER WHERE C_LAST = ? AND C_D_ID = ? AND C_W_ID = ? ORDER BY C_FIRST;");
builder.addProcedures(FakeCustomerLookup.class);
boolean success = builder.compile(Configuration.getPathToCatalogForTest("binarytest2.jar"), 1, 1, 0);
assert (success);
MiscUtils.copyFile(builder.getPathToDeployment(), Configuration.getPathToCatalogForTest("binarytest2.xml"));
ServerThread localServer = null;
Client client = null;
try {
VoltDB.Configuration config = new VoltDB.Configuration();
config.m_pathToCatalog = Configuration.getPathToCatalogForTest("binarytest2.jar");
config.m_pathToDeployment = Configuration.getPathToCatalogForTest("binarytest2.xml");
config.m_backend = BackendTarget.NATIVE_EE_JNI;
localServer = new ServerThread(config);
localServer.start();
localServer.waitForInitialization();
client = ClientFactory.createClient();
client.createConnection("localhost");
// insert data
// long c_id, long c_d_id, long c_w_id, String c_first, String c_middle,
// String c_last, String c_street_1, String c_street_2, String d_city,
// String d_state, String d_zip, String c_phone, Date c_since, String
// c_credit, double c_credit_lim, double c_discount, double c_balance,
// double c_ytd_payment, double c_payment_cnt, double c_delivery_cnt,
// String c_data
final double initialBalance = 15.75;
final double initialYTD = 15241.45;
VoltTable customer1 = client.callProcedure("InsertCustomer", C_ID, D_ID, W_ID, "I", "Be", "lastname", "Place", "Place2", "BiggerPlace", "AL", "91083", "(193) 099 - 9082", new TimestampType(), "BC", 19298943.12, .13, initialBalance, initialYTD, 0L, 15L, "Some History").getResults()[0];
// check for successful insertion.
assertEquals(1L, customer1.asScalarLong());
VoltTable customer2 = client.callProcedure("InsertCustomer", C_ID + 1, D_ID, W_ID, "We", "R", "Customer", "Random Department", "Place2", "BiggerPlace", "AL", "13908", "(913) 909 - 0928", new TimestampType(), "GC", 19298943.12, .13, initialBalance, initialYTD, 1L, 15L, "Some History").getResults()[0];
// check for successful insertion.
assertEquals(1L, customer2.asScalarLong());
VoltTable customer3 = client.callProcedure("InsertCustomer", C_ID + 2, D_ID, W_ID, "Who", "Is", "Customer", "Receiving", "450 Mass F.X.", "BiggerPlace", "CI", "91083", "(541) 931 - 0928", new TimestampType(), "GC", 19899324.21, .13, initialBalance, initialYTD, 2L, 15L, "Some History").getResults()[0];
// check for successful insertion.
assertEquals(1L, customer3.asScalarLong());
VoltTable customer4 = client.callProcedure("InsertCustomer", C_ID + 3, D_ID, W_ID, "ICanBe", "", "Customer", "street", "place", "BiggerPlace", "MA", "91083", "(913) 909 - 0928", new TimestampType(), "GC", 19298943.12, .13, initialBalance, initialYTD, 3L, 15L, "Some History").getResults()[0];
// check for successful insertion.
assertEquals(1L, customer4.asScalarLong());
// make sure strings as bytes works
ClientResponse cr = client.callProcedure("Fake1", "Customer".getBytes("UTF-8"), D_ID, W_ID);
assertTrue(cr.getStatus() == ClientResponse.SUCCESS);
assertEquals(3, cr.getResults()[0].getRowCount());
cr = client.callProcedure("Fake1", "Customer", D_ID, W_ID);
assertTrue(cr.getStatus() == ClientResponse.SUCCESS);
assertEquals(3, cr.getResults()[0].getRowCount());
cr = client.callProcedure("FakeCustomerLookup", W_ID, W_ID, D_ID, "Customer".getBytes("UTF-8"));
assertTrue(cr.getStatus() == ClientResponse.SUCCESS);
} finally {
// stop execution
if (client != null) {
client.close();
}
if (localServer != null) {
localServer.shutdown();
localServer.join();
}
}
}
use of org.voltdb.ServerThread in project voltdb by VoltDB.
the class TestBlobType method testBigFatBlobs.
public void testBigFatBlobs() throws Exception {
String simpleSchema = "create table blah (" + "ival bigint default 0 not null, " + "b varbinary(256) default null, " + "s varchar(256) default null, " + "PRIMARY KEY(ival));";
VoltProjectBuilder builder = new VoltProjectBuilder();
builder.addLiteralSchema(simpleSchema);
builder.addProcedures(BigFatBlobAndStringMD5.class);
boolean success = builder.compile(Configuration.getPathToCatalogForTest("bigfatblobs.jar"), 1, 1, 0);
assertTrue("Failed to compile catalog", success);
MiscUtils.copyFile(builder.getPathToDeployment(), Configuration.getPathToCatalogForTest("bigfatblobs.xml"));
VoltDB.Configuration config = new VoltDB.Configuration();
config.m_pathToCatalog = Configuration.getPathToCatalogForTest("bigfatblobs.jar");
config.m_pathToDeployment = Configuration.getPathToCatalogForTest("bigfatblobs.xml");
config.m_backend = BackendTarget.NATIVE_EE_JNI;
ServerThread localServer = null;
Client client = null;
try {
localServer = new ServerThread(config);
localServer.start();
localServer.waitForInitialization();
client = ClientFactory.createClient();
client.createConnection("localhost");
byte[] b = new byte[5000000];
char[] c = new char[5000000];
for (int i = 0; i < b.length; i++) {
b[i] = (byte) (i % 256);
c[i] = (char) (i % 128);
}
String s = new String(c);
ClientResponse cr = client.callProcedure("BigFatBlobAndStringMD5", b, s);
assertEquals(ClientResponse.SUCCESS, cr.getStatus());
VoltTable t = cr.getResults()[0];
assertEquals(1, t.getRowCount());
assertTrue(t.advanceRow());
// Validate MD5 sums instead of the actual data. The returned VoltTable
// can't hold it anyway due to a 1 MB limit.
MessageDigest md5 = MessageDigest.getInstance("MD5");
assertTrue(Arrays.equals(md5.digest(b), t.getVarbinary("b_md5")));
assertTrue(Arrays.equals(md5.digest(s.getBytes()), t.getVarbinary("s_md5")));
} finally {
// stop execution
if (client != null) {
client.close();
}
if (localServer != null) {
localServer.shutdown();
localServer.join();
}
}
}
use of org.voltdb.ServerThread in project voltdb by VoltDB.
the class TestMockUpdateApplicationCatalog method setUp.
@Override
public void setUp() throws Exception {
TPCCProjectBuilder builder = new TPCCProjectBuilder();
builder.addDefaultSchema();
builder.addDefaultPartitioning();
boolean success = builder.compile(Configuration.getPathToCatalogForTest("catalogupdate-cluster-base.jar"), 1, 1, 0);
assert (success);
MiscUtils.copyFile(builder.getPathToDeployment(), Configuration.getPathToCatalogForTest("catalogupdate-cluster-base.xml"));
m_config = new VoltDB.Configuration();
m_config.m_pathToCatalog = Configuration.getPathToCatalogForTest("catalogupdate-cluster-base.jar");
m_config.m_pathToDeployment = Configuration.getPathToCatalogForTest("catalogupdate-cluster-base.xml");
m_localServer = new ServerThread(m_config);
m_localServer.start();
m_localServer.waitForInitialization();
builder = new TPCCProjectBuilder();
builder.addDefaultSchema();
builder.addDefaultPartitioning();
builder.addProcedures(BASEPROCS);
success = builder.compile(Configuration.getPathToCatalogForTest("catalogupdate-cluster-expanded.jar"), 1, 1, 0);
assert (success);
JavaClassForTest testClass = Mockito.mock(JavaClassForTest.class);
Mockito.when(testClass.forName(Matchers.anyString(), Matchers.anyBoolean(), Mockito.any(ClassLoader.class))).thenThrow(new UnsupportedClassVersionError("Unsupported major.minor version 52.0"));
UpdateCore.setJavaClassForTest(testClass);
assertEquals(OperationMode.RUNNING, VoltDB.instance().getMode());
m_client = ClientFactory.createClient();
m_client.createConnection("localhost:" + m_config.m_adminPort);
}
use of org.voltdb.ServerThread in project voltdb by VoltDB.
the class HTTPAdminListenerStarter method main.
/**
* Added a main here for manual test purposes. It just starts up
* a brain-dead VoltDB server so you can look at the admin page.
*/
public static void main(String[] args) throws Exception {
String simpleSchema = "create table blah (" + "ival bigint default 0 not null, " + "PRIMARY KEY(ival));";
VoltProjectBuilder builder = new VoltProjectBuilder();
builder.addLiteralSchema(simpleSchema);
builder.addPartitionInfo("blah", "ival");
builder.addStmtProcedure("Insert", "insert into blah values (?);", null);
builder.setHTTPDPort(8080);
builder.setJSONAPIEnabled(true);
boolean success = builder.compile(Configuration.getPathToCatalogForTest("rejoin.jar"), 1, 1, 0);
assert (success);
MiscUtils.copyFile(builder.getPathToDeployment(), Configuration.getPathToCatalogForTest("rejoin.xml"));
VoltDB.Configuration config = new VoltDB.Configuration();
config.m_pathToCatalog = Configuration.getPathToCatalogForTest("rejoin.jar");
config.m_pathToDeployment = Configuration.getPathToCatalogForTest("rejoin.xml");
ServerThread localServer = new ServerThread(config);
localServer.start();
localServer.waitForInitialization();
Thread.sleep(240000);
}
use of org.voltdb.ServerThread in project voltdb by VoltDB.
the class TestJDBCDriver method startServer.
private static void startServer() throws ClassNotFoundException, SQLException {
server = new ServerThread(testjar, pb.getPathToDeployment(), BackendTarget.NATIVE_EE_JNI);
server.start();
server.waitForInitialization();
Class.forName("org.voltdb.jdbc.Driver");
if (ClientConfig.ENABLE_SSL_FOR_TEST) {
conn = DriverManager.getConnection("jdbc:voltdb://localhost:21212?" + JDBCTestCommons.SSL_URL_SUFFIX);
} else {
conn = DriverManager.getConnection("jdbc:voltdb://localhost:21212");
}
myconn = null;
}
Aggregations