MySQL Forums
Forum List  »  NDB clusters

Re: Example of Cluster SLOWER than InnoDB -- help?
Posted by: John Muehlhausen
Date: December 08, 2004 09:27PM

Funny thing: if I use a HEAP table (with btree index on the messages table) I only get about 250 messages written and read per second. If there is no reader then I can "put" about 775 per second. Obviously with HEAP I must limit the test to one writer per queue since the transaction is ignored. My project only requires a single reader per queue so I have not implemented the ability to have multiple concurrent readers, even with transaction support.

Doesn't that HEAP performance seem low, even on a single proc G4? I disabled the writer->reader notification (a "oneway" CORBA call) with no impact other than that the reader must timeout waiting for notification before picking up the next batch of ready messages. And anyway, gprof shows that only a small fraction of a second is spent in my code for tens of thousands of iterations of putting or getting. The only time I'm not in a tight loop running mysql_query() is when I'm waiting on a semaphore for an incoming notification that messages are ready. After that is triggered I consume all other pending notifications in a tight loop and select all ready messages and GET them (meaning, increase the last processed seqnum and delete the message) in a tight loop.

I wonder if prepared statements would help? Do you know of any reference systems that are available for rent to test things like this on a MySQL server that is known to perform well? All I need is a C++ compiler and the ability to compile ACE+TAO and run the naming service.

> If different queues are logically independent, why
> not simply run them in different mysqld servers?
> That would give unlimited scalability.

Yeah, but in this case the "real world" situation is something like this:

begin
get message from A
put message to B
put message to C
commit

So most transactions involve several queues.

Options: ReplyQuote




Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.