You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jose Martinez Poblete (JIRA)" <ji...@apache.org> on 2014/06/24 22:48:26 UTC

[jira] [Created] (CASSANDRA-7444) Performance drops when creating large amount of tables

Jose Martinez Poblete created CASSANDRA-7444:
------------------------------------------------

             Summary: Performance drops when creating large amount of tables 
                 Key: CASSANDRA-7444
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7444
             Project: Cassandra
          Issue Type: Bug
          Components: Core
         Environment: [cqlsh 3.1.8 | Cassandra 1.2.15.1 | CQL spec 3.0.0 | Thrift protocol 19.36.2][cqlsh 4.1.1 | Cassandra 2.0.7.31 | CQL spec 3.1.1 | Thrift protocol 19.39.0]
            Reporter: Jose Martinez Poblete


We are creating 4000 tables from a script and using cqlsh to create the tables. As the tables are being created, the time taken grows exponentially and it becomes very slow and takes a lot of time.

We read a file get the keyspace append a random number and then create keyspace with this new name example Airplane_12345678, Airplane_123575849... then fed into cqlsh via script

Similarly each table is created via script use Airplane_12345678; create table1...table25 , then use Airplane_123575849; create table1...create table25

It is all done in singleton fashion, doing one after the other in a loop.

We tested using the following bash script

{noformat}
#!/bin/bash
SEED=0
ITERATIONS=20
while [ ${SEED} -lt ${ITERATIONS} ]; do
   COUNT=0
   KEYSPACE=t10789_${SEED}
   echo "CREATE KEYSPACE ${KEYSPACE} WITH replication = { 'class': 'NetworkTopologyStrategy', 'Cassandra': '1' };"  > ${KEYSPACE}.ddl
   echo "USE ${KEYSPACE};" >> ${KEYSPACE}.ddl
   while [ ${COUNT} -lt 25 ]; do
      echo "CREATE TABLE user_colors${COUNT} (user_id int PRIMARY KEY, colors list<ascii> );" >> ${KEYSPACE}.ddl
      ((COUNT++))
   done 
   ((SEED++))
   time cat ${KEYSPACE}.ddl | cqlsh
   if [ "$?" -gt 0 ]; then
      echo "[ERROR] Failure at ${KEYSPACE}"
      exit 1
   else
      echo "[OK]    Created ${KEYSPACE}"
   fi
   echo "==============================="
   sleep 3
done
#EOF
{noformat}

The timing we got on an otherwise idle system were inconsistent

{noformat}
real    0m42.649s
user    0m0.332s
sys     0m0.092s
[OK]    Created t10789_0
===============================

real    1m22.211s
user    0m0.332s
sys     0m0.096s
[OK]    Created t10789_1
===============================

real    2m45.907s
user    0m0.304s
sys     0m0.124s
[OK]    Created t10789_2
===============================

real    3m24.098s
user    0m0.340s
sys     0m0.108s
[OK]    Created t10789_3
===============================

real    2m38.930s
user    0m0.324s
sys     0m0.116s
[OK]    Created t10789_4
===============================

real    3m4.186s
user    0m0.336s
sys     0m0.104s
[OK]    Created t10789_5
===============================

real    2m55.391s
user    0m0.344s
sys     0m0.092s
[OK]    Created t10789_6
===============================

real    2m14.290s
user    0m0.328s
sys     0m0.108s
[OK]    Created t10789_7
===============================

real    2m44.880s
user    0m0.344s
sys     0m0.092s
[OK]    Created t10789_8
===============================

real    1m52.785s
user    0m0.336s
sys     0m0.128s
[OK]    Created t10789_9
===============================

real    1m18.404s
user    0m0.344s
sys     0m0.108s
[OK]    Created t10789_10
===============================

real    2m20.681s
user    0m0.348s
sys     0m0.104s
[OK]    Created t10789_11
===============================

real    1m11.860s
user    0m0.332s
sys     0m0.096s
[OK]    Created t10789_12
===============================

real    1m37.887s
user    0m0.324s
sys     0m0.100s
[OK]    Created t10789_13
===============================

real    1m31.616s
user    0m0.316s
sys     0m0.132s
[OK]    Created t10789_14
===============================

real    1m12.103s
user    0m0.360s
sys     0m0.088s
[OK]    Created t10789_15
===============================

real    0m36.378s
user    0m0.340s
sys     0m0.092s
[OK]    Created t10789_16
===============================

real    0m40.883s
user    0m0.352s
sys     0m0.096s
[OK]    Created t10789_17
===============================

real    0m40.661s
user    0m0.332s
sys     0m0.096s
[OK]    Created t10789_18
===============================

real    0m44.943s
user    0m0.324s
sys     0m0.104s
[OK]    Created t10789_19
===============================
{noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)