Description: This project is about how to run TPC-C transactions similarly on Cassandra Database. The program is written in Java. How to Run: 1. Create the keyspace and column families according to Scripts in Appendix. 2. Modify the database configuration in 'loader.java' and 'tpcc.java’. By default: /* Database configuration */ private String DB_KEYSPACE = "tpcc"; private String DB_ADDRESS = "localhost"; private int DB_PORT = 9160; 3. Load the database, using following command. The whole process may take a while. [ (new Loader().start; ] [ (new Loader(int count_ware).start; ] [ (new Loader(int count_ware, boolean option_debug).start; ] 4. Run the TPCC_Client. Appendix: create keyspace and column family create keyspace tpcc; use tpcc; create column family warehouse with comparator=UTF8Type and default_validation_class=UTF8Type and key_validation_class=UTF8Type; create column family district with comparator=UTF8Type and default_validation_class=UTF8Type and key_validation_class=UTF8Type and column_metadata= [{column_name:d_id,validation_class:UTF8Type,index_type:KEYS}, {column_name:d_w_id,validation_class:UTF8Type,index_type:KEYS}]; create column family customer with comparator=UTF8Type and default_validation_class=UTF8Type and key_validation_class=UTF8Type and column_metadata= [{column_name:c_last,validation_class:UTF8Type,index_type:KEYS}, {column_name:c_w_id,validation_class:UTF8Type,index_type:KEYS}, {column_name:c_d_id,validation_class:UTF8Type,index_type:KEYS}]; create column family history with comparator=UTF8Type and default_validation_class=UTF8Type and key_validation_class=UTF8Type; create column family new_order with comparator=UTF8Type and default_validation_class=UTF8Type and key_validation_class=UTF8Type and column_metadata=[{column_name:no_w_id,validation_class:UTF8Type,index_type:KEYS}, {column_name:no_d_id,validation_class:UTF8Type,index_type:KEYS}, {column_name:no_id,validation_class:UTF8Type,index_type:KEYS}]; create column family order with comparator=UTF8Type and default_validation_class=UTF8Type and key_validation_class=UTF8Type and column_metadata=[{column_name:o_w_id,validation_class:UTF8Type,index_type:KEYS},{column_name:o_d_id,validation_class:UTF8Type,index_type:KEYS},{column_name:o_c_id,validation_class:UTF8Type,index_type:KEYS}]; create column family order_line with comparator=UTF8Type and default_validation_class=UTF8Type and key_validation_class=UTF8Type and column_metadata= [{column_name:ol_w_id,validation_class:UTF8Type,index_type:KEYS},{column_name:ol_d_id,validation_class:UTF8Type,index_type:KEYS},{column_name:ol_o_id,validation_class:UTF8Type,index_type:KEYS},{column_name:ol_i_id,validation_class:UTF8Type,index_type:KEYS}]; create column family item with comparator=UTF8Type and default_validation_class=UTF8Type and key_validation_class=UTF8Type and column_metadata= [{column_name:i_id,validation_class:UTF8Type,index_type:KEYS}]; create column family stock with comparator=UTF8Type and default_validation_class=UTF8Type and key_validation_class=UTF8Type and column_metadata=[{column_name:s_i_id,validation_class:UTF8Type,index_type:KEYS}]; Appendix: Sample Out put: ==============================New Order================================== Warehouse: 1 District: 1 Customer: 871 Name: ATIONCALLYBAR Credit: GC Discount: 0.030477552 Order Number: 3039 OrderId: 3039 Number_Lines: 15 W_tax: 0.15383352 D_tax: 0.17957321 Supp_W Item_Id Item Name ol_q s_q bg Price Amount 1 50934 5Rsqct5uz0reEoUcfpu5 7 75 G 38.08 344.62 1 34820 6KtAY257506SgD1NCDetb9o9 1 45 G 67.57 87.35 1 56930 twvn88WS3K09QMHtCa 7 85 G 58.20 526.65 1 43062 IoZtvG6j8m0Bun5qiO91gWvD 10 49 G 85.38 1103.78 1 13814 TNiiwcZ5SdF306tAR7hMf6 8 32 G 12.53 129.57 1 42550 6XxSFuy137r0YX8pelC 6 10 G 80.38 623.45 1 71670 Y0dhC7FJ6Jl7NoCkTD7RBy09 9 4 G 42.35 492.75 1 9970 4cKu7U353u1RR7 7 57 B 92.44 836.51 1 55078 U20iTqpb2b72glOUavrSN9S 10 2 G 65.60 848.10 1 38966 0w3k30DeEg2s9733jk 7 10 G 82.63 747.72 1 71604 YHG15GEk2MDP3c0fuk 10 3 B 49.65 641.85 1 30254 vwF7v5ai4M5AShqN0 3 42 G 79.77 309.35 1 34830 MibGFdSw2F8X4C 5 41 G 44.93 290.43 1 34262 uiS9k735Jd9xcyQZZ73L4src 3 34 G 94.88 367.99 1 79906 3z6A4ESMUWIvX25ql6R 10 87 G 32.58 421.13 ========================================================================= ==============================New Order================================== Warehouse: 1 District: 1 Customer: 105 Name: OUGHTBARPRES Credit: BC OrderId: 3072 Exection Status: Item number is not valid ========================================================================= ==============================Payment==================================== Date: 2014-08-28 13:22:19 District: 1 Warehouse: 1 District 27GN9qnI2p4eL z2c5mYtK8W5 81j8R9s4aNoEUt0B 8yVwcuwu8x80M41 eTi4c1NkHuUPI qt 885800324 Lk88iEj71tBI k7 363141058 Customer: 1 Customer-Warehouse: 1 Customer-District: 1 Name:gSpR48P4DK2DkU OE BARBARBAR Cust-Since:2014-08-28 Nl6XEVoekO288apQu41 Cust-Credit:GC 0U86m88VBRAuNqr8 rk4Bhv540BmdmD5xCo ax 786731762 Cust-Phone:3585013047435679 Amount Paid:2940.3562 New Cust-Balance: -100918.086 Credit Limit:50000 Cust-data: 617lU1E7nist929W9PaD29evfJ9rnq9VT34AbHgbQQn4Q4tVrt 5kYKUQxr399oo3n01Q02S3EIN8F0ccHg1013gRqDsECVngGgQY 5usILXXVs9YDU03KYp3EgJ9GXsDL4j4aH20eM53til03qjrieH T5hoBeJS1XfXNATp395Xw347lFogcqcIueGeW2WJ1bC43j3L6M 3h4f2E8l9T6rDFmu69cvb1S7IOkuSUP3V8SbmqUVDHP7220Qyw Kq9N375GhYe6F4eD6va12D4GGMk3kC6VKpF7pf5J60IEMWUxjL kg2H905vXc6c7TILdOscLwLK575Yp439HXILI2TXVlrmuQs59x NxEK7P3loGLv76ZlDooGr3pMqr1jU4N06b5M0tVE9097Z4Z1MI 800Y69DvBiMq68C9XJmc7AgjgW24pZ7FWa2hXc3clkqd ========================================================================= ==============================Order Status=============================== Warehouse: 1 District: 1 Customer: 1 Name: gSpR48P4DK2DkU OE BARBARBAR Cust-Balance: $ -100918.086 Order-Number: 1055 Entry-Date: 2014-08-27 Carrier-Id: 3 Supply-W Item-ID Qty Amount 1 10127 5 68.1278 1 46626 5 16.928095 1 54518 5 32.798813 1 78792 5 49.973457 1 71748 5 48.52951 1 40319 5 1.4516069 1 30975 5 78.68519 1 99894 5 76.76189 1 61404 5 62.064137 1 19005 5 60.099537 1 82616 5 17.566525 1 63498 5 48.335815 1 48160 5 80.189095 1 31583 5 58.268333 ========================================================================= ==============================Delivery================================== INPUT o_carrier_id: 1 Warehouse: 1 o_carrier_id: 1 Execution Status: Delivery has been queued ========================================================================= ==============================Stock Level================================ INPUT threshold: 18 Warehouse: 2 District: 10 Stock Level Threshold: 18 low stock: 1311 =========================================================================
weihu816/CassandraTPCC
This is the simulation of TPC-C transactions on Cassandra Key-Value NoSQL database
Java