Closed sylwiaszunejko closed 2 weeks ago
Adding this as a draft, because I wanted to make sure this part looks like intended in the issue, before pushing the rest.
@dkropachev could you take a look?
@dkropachev I pushed some changes, it is clearly wip, but I want to make sure the direction is right
@dkropachev I pushed some changes, it is still not a complete solution, I am not sure how to replay the traffic properly, but it is in such a state that it should be possible to state if the direction is good
@sylwiaszunejko , we need to disable these guys for NewSingleHostQueryExecutor
s.hostSource = &ringDescriber{session: s}
s.ringRefresher = newRefreshDebouncer(ringRefreshDebounceTime, func() error { return refreshRing(s.hostSource) })
@sylwiaszunejko , I spot another problem, standard benchrmark library does not collect goroutine
stats, which means that some parts are not shown in results.
Unfortunately due to the library limitations, there is only one way to fix it is to come up with custom test library, which is a bit cumbersome.
Given all that I think it is better to merge it and look for solution that would show everything later, WDYT?
@sylwiaszunejko , I spot another problem, standard benchrmark library does not collect
goroutine
stats, which means that some parts are not shown in results. Unfortunately due to the library limitations, there is only one way to fix it is to come up with custom test library, which is a bit cumbersome. Given all that I think it is better to merge it and look for solution that would show everything later, WDYT?
I agree
I created an issue to collect goroutine stats https://github.com/scylladb/gocql/issues/330
API for hooking to
Write()
andRead()
ofConn
struct added. New structTrafficRecorder
added for enabling recording and mocking single Connection flow.Fixes: #296