Hi, can you resubmit with performance data in the commit message?  It's
important information.

Thanks,

Ben.

On Thu, Aug 25, 2016 at 06:31:18PM +0000, Rodriguez Betancourt, Esteban wrote:
> For example: 
> 50 process inserting each 1000 rows to a test table (4 columns: string * 2, 
> bool, integer) using commit block
> 
> Master OVS
> Test Duration                 131 seconds
> Average Inserts Per second    746.2687 inserts/s
> Average Insert Duration       134.1382ms
> Minimal Insert Duration       0.166202ms
> Maximum Insert Duration       489.8593ms
> 
> JSON GC Patch
> Test Duration                 86 seconds
> Average Inserts Per second    1176 inserts/s
> Average Insert Duration       82.26761ms
> Minimal Insert Duration       0.165448ms
> Maximum Insert Duration       751.2111ms
> 
> 5 process inserting 10000 rows each to the same test table
> 
> Master OVS
> Test Duration                 8 seconds
> Average Inserts Per second    7142.857 inserts/s
> Average Insert Duration       0.656431ms
> Minimal Insert Duration       0.125197ms
> Maximum Insert Duration       11.93203ms
> 
> JSON GC Patch
> Test Duration                 7 seconds
> Average Inserts Per second    8333.333 inserts/s
> Average Insert Duration       0.55688ms
> Minimal Insert Duration       0.143233ms
> Maximum Insert Duration       26.26319ms
> 
> Also, accordingly with profiling using callgrind functions like json_clone or 
> json_destroy sometimes can take up to 20% and 36% of the ops executed inOVSDB 
> (those functions and functions called by those ones...). Although, in one odd 
> case it shows that json_clone takes 50% of the operations executed. We can't 
> avoid calling json_destroy sometimes, but I didn't find any place where a 
> cloned JSON object is updated: only cloned, passed the new pointer and 
> release the old one. 
> 
> Regards,
> Esteban
> 
> 
> From: Ryan Moats [mailto:rmo...@us.ibm.com] 
> Sent: jueves, 25 de agosto de 2016 9:28
> To: Rodriguez Betancourt, Esteban <esteb...@hpe.com>
> Cc: dev@openvswitch.org
> Subject: Re: [ovs-dev] [PATCH] json: Use reference counting in json objects
> 
> "dev" <dev-boun...@openvswitch.org> wrote on 08/16/2016 04:50:37 PM:
> 
> > From: "Rodriguez Betancourt, Esteban" <esteb...@hpe.com>
> > To: "dev@openvswitch.org" <dev@openvswitch.org>
> > Date: 08/16/2016 04:50 PM
> > Subject: [ovs-dev] [PATCH] json: Use reference counting in json objects
> > Sent by: "dev" <dev-boun...@openvswitch.org>
> > 
> > After profiling OVSDB insert performance it was found
> > that some significant portion of its time OVSDB is
> > calling the function json_clone.
> > 
> > Also, most of the usages of json_clone never modify the json,
> > just keeps it to prevent it to be freed.
> > 
> > With that in mind the struct json, json_create, json_clone
> > and json_destroy were modified to keep a count of how many
> > references of the json struct are left. Only when that count
> > reaches zero the json struct is freed.
> > 
> > The old "json_clone" function was renamed as "json_deep_clone".
> > 
> > The change provides some performance improvement, depending
> > on the transactions performed in OVSDB.
> > 
> > Signed-off-by: Esteban Rodriguez Betancourt <esteb...@hpe.com>
> > ---
> 
> Can you add some quantification of the statement
> "provides some performance improvement"?
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to