Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Initial checkin of the SmallBank port from H-Store oltpbenchmark#41 * More of the SmallBank benchmark. This is a complete mess right now... oltpbenchmark#41 * woonhak, add tpcc foreign key constraints for MySQL * revert config file * add dbname to sample_mstpcc_config * fix tpcc-sqlserver-ddl.sql to work correctly * add oltpbenchmark windows batch script - TODO: make classpath string using classpath.bat * fix worong and missing dbtype parameter for postgres * fix postgres load error * Enhancement - if set db_type = postgres, then use default ddl script, add tpcc-postgres-ddl.sql (including indexes and constraints) * Fix loading with district to handle table name correctly (unescaped name) * change creation order avoid failing drop table because of reference order * Update tpcc-sqlserver-ddl.sql Changed 'smalldatetime' to 'datetime'. 'smalldatetime' is an unfair optimization for MS SQL from my point of view. But the main reason is the incompatibility with the CHBenchmark, which does in Query 10 this: "AND o_entry_d >= '2007-01-02 00:00:00.000000'" This line fails in MSSQL with: "Fehler beim Konvertieren einer Zeichenfolge in den smalldatetime-Datentyp" (german, I think the corresponding English error is "Conversion failed when converting character string to smalldatetime data type.") * fix potential 'data too long for column rev_comment' error. * Fix SEATS, EPINION, Wikipedia, and Twitter for Oracle Database * change Epinionsworks.java * final adjustment * Fixed spacing bug in tpcc-mysql-ddl.sql * More fkey fixes for TPC-C * Make sure that we don't try to initialize the ResultUploader at the end of a benchmark if we don't need it * Fixed typo in wikipedia-mysql-ddl.sql. We really need better testing for this... * Hack to ensure unique page titles * Another hack to make sure that the rev_comments aren't too long * The length of revision.rev_comment was not correct for the MySQL DDL * Fixed the WikipediaLoader's generator for the 'watchlist' table. We now have a cap on the max number of entries that each user could have. Previously a user could be watching as many pages as there were in the database. This was obviously unrealistic. I also switch the empty page restriction field to be just 'none'. This was originally needed for Oracle but now it's the same across all DBMSs. * Minor tweaks * Fix for TestWikipediaLoader. It was getting stuck trying to load a small database... * Fixed Travis-CI link * fix the ResultUploader - if no URL provided it will default to local fs * fixing the oracle issue making the test fail * continuous tps monitoring * minor cmd info * fixing wikipedia .. but temporarily * Updated summary output file to include the DB version * Updated source file license headers from GPL to APL * Updated the license file * Updated license headers of the files in the tests directory * remove proprietary drivers * Added tbl format to TPCH * Tpch working with tbl files * Keep backward comapability with previouse configurations * commented change * Removed Oracle specific code in SQLUtil. This might be a mistake... * Added TIMESTEN * Update README.md Delete redundant TPC-CH benchmark list and update its link * Fixed default DB name oltpbenchmark#102 * Better safety checking for null Wikipedia config parameters oltpbenchmark#102 * Set the AirlineId inside of the composite FlightId to be 8-bits instead of 16 * I take that back. We just need make the AirlineID be 14-bits in FlightID * Remove insert SQL escape character with MonetDB in TPCCLoader.java * lowercased postgres table and fkey names on tpcc * added db2 tpcc sample config * Fixes to try to get TPC-C working for TimesTen * Added TPC-C dialects for TimesTen. Apparently they still don't support 'LIMIT' * Put the JVM heap size back to 2GB * This is an attempt to optimize our YCSB implementation. We now have a faster random string generator where we don't have to allocate the char array each time. We also don't have to create HashMap to store results anymore. I haven't tested this for real on a DBMS but it passes the tests. * Minor clean-up * One more quick fix to remove the Procedure class hashmap look-up per txn in YCSB * Disable asserts by default in 'execute' * We now give a big warning if they execute a benchmark with JVM asserts enabled. Added the ability to disable/enable it from the command line. RIP DJ Troubles * New TextGenerator.randomFastChars() - We only need to generate a single random int and then use bitmasks to grab random chars. It's not crypto random but who cares. We're doing databases over here... * Switching default TextGenerator.randomString() to use TextGenerator.randomFastChars() * Added test cases to make sure that our new fast string generator actually produces random strings * Add ddl for timesten ycsb workload oltpbenchmark#131 * Removed .settings dir * Added .settings to ignore list * First implementation of the NoOp benchmark (inspired by @eric-haibin-lin) * Fixed up NoOp benchmark. We have to execute a 'SELECT 1' instead of just sending a semi-colon. We also do a better job at printing assertions when there is a problem * Minor tweak to TestTextGenerator to reduce the likelihood that we get false negatives * Removed a debug statement * Refactored code to remove tabs... * NoOP DDL for SQL Server * All of the DDL files for each benchmark is now in a sub-directory called 'ddls'. I did this to make the top-level directory for each benchmark less cluttered. * Refactored LinkBench code so that everything is contained in the top-level benchmark dir. This has bothered me for the last three years. I am glad that I finally just fixed it... * Added a README for the benchmarks directory * Working on porting SmallBank benchmark from H-Store. This has been three years in the works... oltpbenchmark#41 * Finished porting all the SmallBank benchmark code. Now we just need to test to see whether it works... oltpbenchmark#41 * Fine-tuning Smallbank code. I'm on this one... oltpbenchmark#41 * Fixed SmallBank logic for checking update query status results. Added sample config file. oltpbenchmark#41 * I've finally finished the port of the SmallBank benchmark in the OLTP-Bench framework. Yes, it took me three years but look I've been busy. I'm trying to run my trap at CMU. Shits been rough. I would first like to give a shout out to KB. She keeps me out of trouble. Second, I want to give a shout out to @eric-haibin-lin. He's been on point this semester with helping build our DBMS. There's no denying that. Finally, and most importantly, shout out to @michaelcahill for sending me the original source code back in 2010 (or whenever it was). Michael is probably one of the best DB devs on the planet. Dope as fuck. Ok that's it. The port is done. I've tested it on MySQL and Postgres. That's good enough for me. oltpbenchmark#41 * Another quick fix to make sure that we don't have false negatives * Added HYADAPT benchmark from @jarulraj * Merging in fixes from the Peloton branch of OLTP-Bench. This mostly contains minor tweaks to TPC-C * DatabaseType now includes information about whether SQLUtil should escape table/column names or not. This is not used by all of the loaders yet but this should make it easier to port new DBMSs * Refactored API so that the Loader object is templated based on the target BenchmarkModule. This enables us to have benchmark-specific utility functions in the BenchmarkModule class. Cleaning up TPC-C to make it work on Peloton more easily without breaking other systems * Removed all of the old code for printing out TPC-C data to a text file from TPCCLoader. This is not needed anymore and it was confusing people... * I parameterized the Worker abstract class to now be typed to its parent BenchmarkModule. I also made all of the Worker constructors have the same initial signature * Refactored TPC-C so that we can work around Peloton's problems with timestamps * Some simple debugging stuff for TPC-C txns * Fixed problem with TPC-C Delivery with Peloton. Added debug info for TPC-C StockLevel * fix incorrect statement preparation in YCSB * Trying to make the SQLStmts in our TPC-C implementation readable... * Simple typo fix for YCSB * Switch Peloton to use int for TPC-C STOCK.S_QUANTITY. Debug messages * Simple for TPC-C on Peloton where we can use the index to find the customer by their last name. Also some minor code refactoring to make it easier to read this beast... * Checked in debug messages that I shouldn't have * I was tired of OLTP-Bench always dumping out everything to stdout by default, so I changed DBWorkload to write out to a file in the 'results' directory by default * Cleaned up histogram output to make them easier to see in the output. Add a warning message when there is a txn with an unknown error code * Don't attempt to write DBMS conf files if there is no ResultUploader * Refactored a bunch of code to make things cleaner. Moved 'dbms_collectors' out of 'util' and into 'api' Brought in some thread pool code from H-Store so that we can make the benchmark loaders multi-threaded. * Refactored TPCCLoader to get ready for multi-threaded loaders... We have to change the Loader API to provide multiple connections instead of just one * I think we had an off by one error in the new TPCCLoader * This is the start of a new API for supporting multi-threaded loaders. There is a new method Loader.createLoaderThreads() that will return a bunch of Runnables for the framework to deploy. I am currently riding in the back of the car with KB driving down to Maryland for xmas. So I don't really feel like debugging this on my laptop as we go through the mountains of Penn. I will look at this later tonight when I get to my parent's house to determine whether this works. Hopefully the good news out of this is that we will finally have multi-threaded TPC-C loading... * Don't print the stack trace when there is a SQLException * Reverted AuctionMarkLoader to the previous load() implementation * Simple log message fix * Reverted filename change so that we don't use the '-raw' suffix * Removed rollback code in TPCCWorker.executeWork(). This is the only benchmark that did this. This causes problems because Worker.doWork() would then try to rollback the txn twice. This also makes it so that we correctly report UserAbortExceptions as user aborts and not 'server retry' requests * Minor formatting fixes... * Cleaned up LoaderThread API. YCSBLoader is now multi-threaded. Removed some nasty tabs * Minor clean up of TPC-C benchmark * Improved error reporting when a LoaderThread fails * YCSBLoader now makes sure that we use proper escaping for SQLUtil.getInsertSQL() based on the DatabaseType * You can now configure the number of loader threads in the config XML file * More DatabaseType escaped-name fixes * Fixed SmallBankLoader and YCSBLoader for failing test cases. I forgot to call commit on the last batch in each of the new LoaderThreads. I added a test-case for ThreadUtil from H-Store. Fixed TestFileUtil so that it is actually executed (it didn't inherit JUnit). Other API tweaks and clean ups... * Removed TransactionTypes.spliterator(). This fixed a building error in Eclipse but I guess it's only works on older versions of Java? * Bumped up JVM target to 1.7 in build.xml * Forgot to remove the import for SplitIterator * Fixes to make sure that we are correctly catching + ignoring empty tables in AbstractTestLoader. Updated TPCCLoader to work correctly on Java 1.7 * Added workaround for Peloton when it gets a SQLException. We will eventually need to remove this * The interval monitor parameter is now in milliseconds instead of seconds * Forgot to disable debug message for YCSBLoader * Simple debug message tweaks... * Cleaned up TPCCLoader. Removed the old 'jdbc' directory. Everything we need to load a TPC-C database is now in TPCCLoader * Simple typo fix for TPCCLoader.loadOrders() * Fixed OORDER secondary index for Peloton * test: voter - capitalize table name VOTES * benchmark: sibench - mysql - table name in caps * benchmark resourcestresser - sample config to use correct transaction name * linkbench: linktable - ddl syntax + missing PK for counttable * sibench: table columns in lower case * Add epinions postgres indexes - closes oltpbenchmark#72 * more VOTES capitialisation in VIEWs * linkbench - postgresql - no tinyint - small will do * linkbench: longvarchar not postgres type - node_datasize(128) sets median * twitter: sample config - refer to file that exists * Test: sitest - table name is upper case * linkbench: while load fails may as well do nothing * wikipedia: no null objref exception without tracefile * linkbench: Fix path to MotifDataGenerator * linkbench: another property fix * Use conn.commit * linkbench: commit after exec * missed a commit; * linkbench: Delete link requires the right args * Travis: update to actually perform tests on mysql and postgresql * Travis: fix wikipedia test * Travis: disable oraclejdk9 for now * travis: move out of container build for mysql relability * travis: disable resourcestresser - loader not implemented * travis: enable twitter Fixed sample configuration in 23b2401 makes this test runnable. * Fixed bug in TPCC when scalefactor < 1 * Fixed SI, SmallBank, and Voter benchmark loaders * Updated SIBench record count calculation. * Fixed YCSB table name in dialects file. * Fixed YCSB table name in DDL. * Fix sample YCSB config in order to pass tests * Travis: update test time and scalefactor, disable jpab and linkbench (for now), and drop databases after script. * Fixed getItemComments wrong number of args - closes oltpbenchmark#155 * Updated wikipedia/chbenchmark sample filenames to make travis config simple. Updated travis config accordingly. Fixes part of oltpbenchmark#153 * Fixed table name in ResourceStresser DDLs * Updated ResourceStresser config file * Implemented ResourceStresser loader * Finishing ResourceStresser impl * Fixed table names in ResourceStresser procedures * Updated travis to test ResourceStresser benchmark. * Fix # keys computation * Fixing result uploader files * Checkpoint: adding Postgres metrics collection * Added Postgres metrics collection * Added upload configuration file for Postgres * Added handling for Postgres OOM error. * Travis: use older image. * When computing the distribution statistics over a short time interval (e.g., 1 second), experiments running on slower hardware may have intervals where zero queries completed. This fixes the computation to warn about empty statistics (instead of throwing an error) and return -1 for all of the statistics that are normally computed. * Fixed a few bugs in the result uploader code
- Loading branch information