threadcount vs. go-routines vs. threads vs. go-scheduler
rcrane opened this issue · 1 comments
YCSB allows to define the parameter "threadcount" which, in this (go) code, is used to create go-routines (client.go).
Go-routines don't translate to real threads and are managed by the go-scheduler, as far as I understand.
This poses some questions regrading reproducability and comparability of benchmark results:
If I define "-p threadcount=1000" do I really get 1000 concurrent entities that work in parallel or do I get whatever the go-scheduler makes of it?
Does "-p threadcount=1000" cause 1000 connections to the DB or potentially less?
How does the parameter 'threadcount' in go-ycsb compare to the same parameter in the original java-ycsb with regard to threads being created?
Could the go-scheduler actually interfer in any other way and limit the reproducability of the results?
Good question! I noticed big performance differences between the java-ycsb and the go-ycsb implementation when I increased the thread count. Maybe thats the reason.