-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Minimal slonik patch for closing stream queries (release) #604
Minimal slonik patch for closing stream queries (release) #604
Conversation
I checked out this PR on the QA server, then followed the repro steps in #482. I'm still able to reproduce a database connection leak by following those steps. However, I actually think that's expected. This patched version of Slonik makes it possible to destroy a stream, but we still need to leverage that ability by making other changes. After discussing with @alxndrsn, it seems like we have three options in this area:
If we want to ship this patched version of Slonik with the upcoming Central patch release, we should also ship one of the three changes above. Ultimately, we'll probably want to make more than one of these changes: I think we want to implement (3), then also either (1) or (2). |
We discussed this in the meeting today, and we're currently thinking that we should ship one of the three options above as part of the patch release. Whichever option we choose, I think we could gain confidence in the change by running the benchmarker against it. @lognaturel also made the point that if streams somehow stop working, that's obviously not a good thing, but there's actually only so much risk there. (It's not like it's a write operation and data would be corrupted.) How does shipping one of those options sound, @alxndrsn? Do you have a preference among them? I don't have a strong preference myself, but let me know if there's a way for me to help. If option (1) seems preferable, I'd be happy to continue working on that utility function. |
@matthew-white because this PR wasn't useful, I've re-added stream timeouts, with tests. |
@alxndrsn ran the benchmarker for a few different options. Each benchmarker run took 300 sec.
@alxndrsn wrote on Slack about #608:
|
@alxndrsn taught me how to run the benchmarker, so I've been running it in CircleCI. I ran it for #608, #609, and stream timeouts (this PR), as well as for v1.5.1 and the current
Unlike #608, #609 doesn't wait until after a
(One surprising result: #609 + stream timeouts did worse than either one on its own!) Based on the results above, I'm thinking:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
WIP