Jonas,
Attached are the config.ini file (for the management nodes), my.cnf file
(for the MySQLD API nodes, in this case for node 55), and the ndbd.cnf
file (for the data nodes).
Unfortunately I am not allowed to share the source code of my test
program, I'm sorry.
Thanks for your help, Paul
> -------- Original Message --------
> Subject: Re: Slow session (connection) set-up using MySQLD API
> From: Jonas Oreland <jonas.oreland@stripped>
> Date: Thu, October 20, 2011 4:06 pm
> To: paul@stripped
> Cc: cluster@stripped
>
>
> On 10/20/11 15:31, paul@stripped wrote:
> > Hello,
> >
> > I'm evaluating MySQL Cluster as a replacement for our current "normal"
> > MySQL Server. The current server is processing many "update" queries per
> > second, sent by a client application that always stays connected to the
> > server. On the other hand, the server is serving "select" queries on the
> > same table, using clients that disconnect after each query (i.e.,
> > requests coming from a web server, without connection pooling).
> >
> > In my evaluation I have observed that MySQL Cluster with two data nodes
> > offers a superior "update" performance compared to a MySQL Server
> > instance running on identical hardware. However, performance for the
> > "select" queries is much worse on MySQL Cluster (using MYSQLD as API).
> >
> > Apparently MySQL Cluster has much more "overhead" setting up a session
> > (connection). The difference between MySQL Server and MySQL Cluster is
> > quite dramatic: In our test set-up MySQL Cluster could only server about
> > 65 connect-select-disconnect cycles, whereas MySQL Server can easily
> > handle 1000 and more cycles per second. This is quite a show-stopper for
> > our purposes...
> >
> > Note that all queries are done using the primary key, and all updates
> > and selects work on exactly one row. In total our test table contains
> > 100,000 rows. The MySQL Server version used to test was 5.1 and MySQL
> > Cluster was version 7.2.1 with MySQLD 5.5.
> >
> > Does anyone else has the same experience with MySQL Cluster? Is there
> > any way to improve this connect-select-disconnect cycles?
> >
> > Thanks for your help,
> >
> > Paul
>
> Hi Paul,
>
> Could you share your my.cnf and maybe your application (that does the SELECT) so
> I can test for my self ?
>
> /Jonas
[mysqld default]
[ndb_mgmd default]
datadir=/var/db/mysql-cluster2/logs
[tcp default]
[ndbd default]
NoOfReplicas=2
datadir=/var/db/mysql-cluster2/data
[ndb_mgmd]
NodeID = 101
hostname=paul01.test
[ndb_mgmd]
NodeID = 102
hostname=paul02.test
[mysqld]
NodeID = 53
hostname = paul03.test
[mysqld]
NodeID = 54
hostname = paul04.test
[mysqld]
NodeID = 55
hostname = paul05.test
[mysqld]
NodeID = 56
hostname = paul06.test
[ndbd]
NodeID = 7
hostname=paul07.test
[ndbd]
NodeID = 8
hostname=paul08.test
[mysqld]
[mysqld]
[mysqld]
[mysqld]
[ndbd]
ndb-connectstring='paul01.test,paul02.test'
[mysqld]
skip-name-resolve
port = 3309
server-id = 55
ndb-nodeid=55
ndbcluster
ndb-connectstring = 'paul01.test,paul02.test'
socket = /var/db/mysql-cluster2/mysqld/mysql.sock
basedir = /usr/local/mysql
datadir = /var/db/mysql-cluster2/mysqld/data
log-bin=
pid-file=/var/db/mysql-cluster2/mysqld/mysqld.pid
user = mysql
slow_query_log
long_query_time=1
slow_query_log_file=/var/db/mysql-cluster2/mysqld/logs/slow.log
log-error=/var/db//mysql-cluster2/mysqld/logs/mysqld.log
default-storage-engine = MyISAM
collation_server = latin1_general_ci
key_buffer_size = 384M
max_allowed_packet = 1M
table_open_cache = 2000
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
thread_concurrency = 16
skip-log-warnings
max_connections=2000
max_connect_errors=10000
max_heap_table_size=256m
wait_timeout=86400
interactive_timeout=86400
safe-user-create
secure-file-priv=/var/lib/mysql
disable-local-infile
disable-symbolic-links