From: Hitoshi Oi <oi...@us...> - 2004-06-01 02:47:35
|
Greetings Following the Mark's advice, I've decided to ask further questions in this mailing list. So far, I have not succeeded to run dbt2. I have found several typos, missing files and possible bugs. However, there may be misunderstanding on my side because I do not have prior experince in postgres (libpq) programming or DBMS administration. Below I listed my findings and my attempts to solve them. Any advice/comments would be highly appreciated. 1. The 1st line of Section 4 in the Users Manual says script/run_test2.sh is to be used for running the test but it does not exist. I guess it is typos and tried to use run_test.sh instead. 2. In the run_test.sh, a variable SHELL is used to run other shell script but indicates user's login shell. If the user uses csh, invoking sh-based scripts with $SHELL does not work properly. So I changed $SHELL in run_test.sh to "sh". 3. I found an 'exit' before the invocation of 'results' in the run_test.sh Consequently, mix.log is not processed and 'results.txt' and tps.csv are not created. I commented out 'exit' and ran results in mix.log and then I realized driver did not work properly because all transactions ended with error (for example each line looked like 1085396687,E,0.001447,-1157887056). 4. There isn't script db_setup.sh in dbt2-v0.22/scripts/pgsql from which init_env.sh should be invoked. It seems create_db.sh in pgsql directory does the same job for pgsql. 5. pgsql/init_env.sh defines variables for postgreSQL commands (such as initdb) and export them. I think these are not necessary since if postgreSQL is properly installed, all these commands should be included in PATH. Also, PGDATA is defined in init_env.sh but this var is normmaly defined by the system in which postgreSQL is installed (and its directory path /scratch/pgsql/data does not match standard PGDATA location). There should be a 'mkdir -p' for the path defined for DBDATA (/scratch/pgsql/src/dbt2_bk/dbt2/DB) . I ran datagen manually and loaded its output files with load_db.sh (with corrected DBDATA). 6. By 'make' and 'make install', binary executable in src are copied to /usr/local/bin by default. Hence I changed lines in run_test.sh like CMD="${PFX}/../terminal/driver to simily /usr/local/bin/driver 7. I've been trying to solve the problem of 'driver' not working properly. When the driver is executed, the postmaster writes error messages "invalid length of startup packet". I modified src/backend/postmaster/postmaster.c so that it writes out the packet length it received, and I found the length was -4. Note that, postmaster itself seems to be working. I could run psql and simple SQL command like 'select * from warehouse' on the machine on which postmaster was running. I could also do the same from a Windows PC using cygwin version of psql. 8. I tried to use transaction_test in the src directory. I am wondering if it works correctly. For example, if normally executed, send_transaction_data() should return sizeof(struct client_transaction_t) which is not 'OK' (zero). As a result, transaction_test detects an error. if (send_transaction_data(sockfd, &client_txn) != OK) { printf("send_transaction_data() error\n"); return 7; } Hitoshi |