Problems running tpc-c

96 views
Skip to first unread message

TodorRBG

unread,
Oct 13, 2011, 2:45:37 PM10/13/11
to shor...@listes.epfl.ch
Hello Shore-MT team,

I downloaded and compiled Shore-MT [shore-mt-r262] and shore-kits
[shore-kits-r1679] succesfully under Debian 6(2.6.32-5-amd64 x86_64
GNU/Linux) as described in the instructions. Then I wanted to run a
TPC-C tests with the predefined tpcc-1 configuration, but after
creating and loading the data I got an error when starting the tests(
(tpcc-base) measure 1 0 20 60 0 2 0 ). Error looks like this:
shore_kits:
/home/todor/shore-storage-manager/src/fc/atomic_class_pool.h:160: void*
operator new(size_t, atomic_class_pool<T>&) [with T =
shore::trx_request_t]: Assertion `pool.nbytes() >= nbytes' failed.
Program received signal SIGABRT, Aborted.
[Switching to Thread 0x7ff8397fa700 (LWP 22058)]
0x00007ffff6429165 in raise () from /lib/libc.so.6
(gdb) bt
#0 0x00007ffff6429165 in raise () from /lib/libc.so.6
#1 0x00007ffff642bf70 in abort () from /lib/libc.so.6
#2 0x00007ffff64222b1 in __assert_fail () from /lib/libc.so.6
#3 0x0000000000447816 in tpcc::baseline_tpcc_client_t::submit_one(int,
int) ()
#4 0x00000000005053d0 in shore::base_client_t::submit_batch(int, int&,
int) ()
#5 0x00000000005064a3 in shore::base_client_t::run_xcts(int, int) ()
#6 0x000000000044a026 in shore::base_client_t::work() ()
#7 0x000000000051e0a8 in thread_t::run() ()
#8 0x000000000068fe50 in sthread_t::_start (this=0x7ff8f0348780) at
sthread.cpp:840
#9 0x00000000006903b4 in sthread_t::__start (arg=<value optimized out>)
at sthread.cpp:769
#10 0x0000000000696f14 in pthread_core_start (_arg=0x0) at
sthread_core_pthread.cpp:136
#11 0x00007ffff77ad8ba in start_thread () from /lib/libpthread.so.0
#12 0x00007ffff64c602d in clone () from /lib/libc.so.6
#13 0x0000000000000000 in ?? ()

Then I run tests with each transaction and all of them worked except
STOCK_LEVEL ( (tpcc-base) measure 1 0 20 60 5 2 0) . The error appeared
to be in the second select query (source line 1998:
ol_sorter.add_tuple(rsb);).
Furthermore, I tried TPC-H and there I got error while loading the data
but I haven't looked in more detail.Also I run the TPC-B and TM1
benchmarks and they worked without any errors. I will be grateful for
any advice and tips where the problem could be.

Best regards,
Todor Ivanov


Pinar Tozun

unread,
Oct 13, 2011, 3:39:28 PM10/13/11
to shor...@listes.epfl.ch
Hi Todor,

Could you please try the new shore-storage-manager and shore-kits
experimental releases at the website;
http://diaswww.epfl.ch/shore-mt/download.php?contact=skip ? I just
uploaded them.

We did some updates and was waiting to put these for a while. One of
them was a fix in TPC-C and I think that will cure your problem. One tip
though, running with 20 clients while targeting 1 warehouse will cause a
lot of contention so you should increase the number of warehouses you're
querying if you want to have good performance with 20 clients.

For TPC-H, we have only a few queries with TPC-H now. So I don't know
how useful that's be for you but your problem while loading has to do
with deadlocks most probably. Are you trying to load TPC-H with scaling
factor 1? If yes, I'd suggest to decrease the number of loaders. Go to
the shore.conf file which is under the main shore-kits directory and
search for "loaders". The default value should be 10, make it 4 or
something small like that. It should solve your problem.

Good luck!
pinar on behalf of the shore-mt team

TodorRBG

unread,
Oct 14, 2011, 8:41:38 AM10/14/11
to shor...@listes.epfl.ch
Hi Pinar,

Thank you very much for your very fast answer to my problem. I just
tried the new verion and TPC-C and TPC-H work now :))
However, I had some other issues. When compiling the new shoreMT(sm) I
had problems with /src/atomic_ops/makelinks.sh because the symlinks were
already existing. Also I saw that there are some changes in the file
structure there.But after commenting the execution of makelinks.sh I
managed to compile without errors.Now, when I run TPC-C the CPU
measurment is missing(-nan) and the result look like this:
QueriedSF: (10.0)
Spread: (No)
Threads: (20)
Trxs Att: (194564)
Trxs Abt: (955)
Trxs Dld: (19101)
NOrd Com: (85526)
Secs: (600.00)
IOChars: (0.00M/s)
AvgCPUs: (-nan) (-nan%)
TPS: (290.85)
tpm-C: (8552.60)
I think that has to do with the change in atomic_ops.
Also I tried running an in-memory TPC-C tests with configurations tpcc-1
and tpcc-10 as described using tmpfs, but I get strange errors after
starting the test.

tpcc-1 ( measure 1 0 20 600 0 3 0 ) error:
linux-mon: ./src/util/procstat.cpp:254:print_interval: (-nan) (3238.0)
linux-mon: ./src/util/procstat.cpp:254:print_interval: (-nan) (2855.0)
FATAL ERROR: 1. error in file.cpp:127 Feature is not implemented [0x10007]
called from:
0) file.cpp:127
Aborted

tpcc-10 ( measure 10 0 20 600 0 3 0 ) error:
linux-mon: ./src/util/procstat.cpp:254:print_interval: (-nan) (7826.0)
shore_kits: ./src/sm/shore/shore_table.cpp:488: load: Assertion `data'
failed.
Aborted

I have one last question concerning TPC-C and it is about the DELIVERY
transaction.I saw in the code that when running the BASELINE TPC-C MIX
in function random_xct_type instead of the Delivery transaction Payment
is run. Is there any special reason why this is done?

#warning Disabling Delivery from the TPC-C Mix. Running Payment instead
return XCT_PAYMENT;
//return XCT_DELIVERY;

Again thank you very much for your time and assistance.


Best regards,
Todor Ivanov

Steven Pelley

unread,
Oct 15, 2011, 12:48:21 PM10/15/11
to shor...@listes.epfl.ch
On Thu, Oct 13, 2011 at 12:39 PM, Pinar Tozun <pinar...@epfl.ch> wrote:
> Hi Todor,
>
> Could you please try the new shore-storage-manager and shore-kits
> experimental releases at the website;
> http://diaswww.epfl.ch/shore-mt/download.php?contact=skip ? I just uploaded
> them.
Hi Pinar,
I've been using these versions of kits and shore and found a few bugs.
I also made a few general additions that you might like to include.

function post_init in kits/src/workload/tpcc does not return when the
database is not padded.
As Todor noted, the ia32, intel, and sparc directories/links should
not be version controlled.
The sm Doxygen file is missing. I've copied it from shore-mt 6.0.1
-- There is a still a problem with tools/convert-dox.sh not finding
any of the files.
the glibtop header file has moved in recent ubuntu versions. Updated
kits/Makefile.am to include the new location
I've added shore support for profiling

I've attached a patch file for these changes.
Steve

spelley.diff

Pinar Tozun

unread,
Oct 17, 2011, 6:18:55 AM10/17/11
to shor...@listes.epfl.ch
Hi Todor and Steve,

- About the links; I didn't realize they were being a problem since I
didn't encounter it in our machines. Thanks for the pointer.

- About CPU measurement; we removed it for the x86 machines because we
realized that libgtop were causing some memory leakage. If you use a
sparc machine you'll see the CPU numbers there again.

- About the header file of glibtop; I know this problem with new Ubuntu
versions but I just do the addition manually. However, we should put it
as a note to the release. Thanks for reminding me that.

- About no return while not padded in tpcc; I thought I fixed this in
that version but yes it's missing. :) I'll add it. Thanks.

- About the other errors you observe in tpcc; I'll try to reproduce them
and check and try to get back to you as soon as possible Todor.

- About DELIVERY; we just commented that one out because it's pretty
heavy. You can just include it or leave it out. As you wish. It has a
pretty low contribution to the MIX anyway (4%).

- About Doxygen files; we don't use it in our release so I'm not that
knowledgeable about that. For documentation about the
shore-storage-manager classes, you can look at
http://research.cs.wisc.edu/shore-mt/onlinedoc/html/index.html .

- For the patch; again thanks a lot Steve.

Regards,
pinar

Reply all
Reply to author
Forward
0 new messages