Weird performance on 4.0 Enterprise GA


#1

Hi I just installed enterprise 4.0 to test it :smile:
But getting a verry weird performance characteristic…

For what ever reason. The stats are showing 50 puts per second, and 60K gets/index scans. The funny thing is that I only have about 3K records in the bucket.

I’m testing on single physical node (32 cores with 128GB and SSDs) to discount any network issues etc…

I have tested 2 scenarios

1- Single write: Can achieve 10K writes per second. (This works great!)
2- RYOW: Can achive only 90 operations total. I.e: Write and then query. (This seems to show the weird behaviour explained above)

And here is the code I run.

Create the client on application start up.
CouchbaseEnvironment env = DefaultCouchbaseEnvironment
.builder()
.queryEndpoints(32)
.build();
    
cluster = CouchbaseCluster.create(env, "10.0.0.xxx");
bucket = cluster.openBucket(BUCKET_NAME);

Per application request…

bucket.insert(doc);
    
String sql = "SELECT * FROM " + BUCKET_NAME + " WHERE fullName =$1";
N1qlParams params = N1qlParams.build().consistency(ScanConsistency.REQUEST_PLUS).adhoc(false);
ParameterizedN1qlQuery query = N1qlQuery.parameterized(sql, JsonArray.create().add(fullName), params);
        
N1qlQueryResult result = bucket.query(query);

#2

Any thoughts on this?


#3

It’s a bit hard to say without gathering some info, but the behavior sounds like something we’ve seen once before recently. @qicb, does this look like that other scenario we were discussing recently?


#4

Any info you want me to provide?


#5

Any news or ideas? Thanks


#6

I guess no, it would be nice to know.

Thanks


#7

@ingenthr

Hi, Matt do you think you can get this looked into?


#8

Sure. Is the environment still available? If so, I may want to get some stats.


#9

Oh I have to set it up again… Let me know what you want and when I have abit of time I’ll try to get the info.


#10

@ingenthr

Hi, Matt I have it setup and can reproduce it. Let me know what’s the next step.

Thanks


#11

It’d be great if you could do the following.

First, run an explain on a similar query:
EXPLAIN SELECT * FROM _bucket_name_ WHERE fullName = _a_queried_name_;

Then gather some stats:

  1. note the time
  2. run your workload
  3. run a cbcollect-info
  4. post it somewhere I can get at it or post an issue to issues.couchbase.com

It’d also be useful if you can post all of the code to github or bitbucket or the like. Or to issues.couchbase.com.


#12

@ingenthr

Here is the explain: http://pastebin.com/rtst4LSX

Working on the rest…


#13

@ingenthr PMed you the links.

Thanks