Couchbase Performance -


i have couchbase community edition v4, build 4047. seems great until started issuing queries against simple view. view projecting documents so, seems harmless:

function (doc, meta) {   if(doc.applicationid){    emit(doc.applicationid,meta.id);    } } 

i'm using .net client connect , execute query application, though don't think matters. it's single node configuration. i'm clocking time in between actual http requests , queries taking between 4 seconds on 2 minutes if send 15 requests in @ time through fiddler.

i using stale index try , boost time, doesn't seem have impact. bucket not large. there couple of documents in bucket. i've allocated 100m ram indexing. i'd think that's fine @ least few documents we're working @ moment.

this local development, observing similar behaviors when promoted our servers. servers don't use significant amount of ram either, @ same time aren't storing significant amount of documents. we're talking 10 or 20 @ most? these documents contain 5 primitive-type properties.

do have suggestions diagnosing this? logs through couchbase admin console don't show unusual far can tell , doesn't seem normal behavior.

update: here code query documents

        public async task expirecurrentsession(string applicationid)         {             using (var bucket = getsessionbucket())             {                 var query = bucket                     .createquery("activesessions", "activesessionsbyapplicationid")                     .key(applicationid)                     .stale(couchbase.views.stalestate.ok);                  var result = await bucket.queryasync<string>(query);                  foreach (var session in result.rows)                 {                     await bucket.removeasync(session.value);                 }             }         } 

the code seems fine, , should work expect. 100mb ram mention allocating isn't views, affects n1ql global secondary indexes. brings me following suggestion:

you don't need use view in couchbase 4.0; can use n1ql simpler , (probably) more efficiently.

create n1ql index on applicationid field (either in code of cbq command line shell) so:

create index ix_applicationid on bucketname(applicationid) using gsi; 

you can use simple select query relevant document ids:

select meta(bucketname) bucketname applicationid = '123'; 

or simpler, can use delete query delete them directly:

delete bucketname applicationid = '123'; 

note dml statements, delete still considered beta feature in couchbase 4.0, own risk assessment.

to run n1ql queries .net use same syntax views:

await bucket.queryasync<dynamic>("query goes here"); 

Comments

Popular posts from this blog

javascript - Slick Slider width recalculation -

jsf - PrimeFaces Datatable - What is f:facet actually doing? -

angular2 services - Angular 2 RC 4 Http post not firing -