Thanks for the explanation Jeremy! I understand it now. Am Montag, 6. November 2017 12:22:46 UTC+1 schrieb Jeremy Evans: > > On Monday, November 6, 2017 at 12:18:13 PM UTC+1, [email protected] > <javascript:> wrote: >> >> Hi everyone, >> I'm currently trying to use the connection_validator extension in a way >> that it validates the connections on every checkout. While I was reading >> the docs about this extension, I stumbled on this: >> >> Note that if you set the timeout to validate connections on every >>> checkout, you should probably manually control connection checkouts on a >>> coarse basis, using Database#synchronize. In a web application, the optimal >>> place for that would be a rack middleware. >> >> >> I could not understand exactly what "manually control the connection >> checkouts on a coarse basis" is supposed to mean. Maybe someone here can >> help me understand this operation, and why it helps to prevent performance >> issues on this case? >> > > If you don't do this, and you set the validation timeout to -1, every time > you checkout a connection, it will run a query to see if the connection is > still active. Even some simple things like correctly escaping string > literals can require connection checkouts, which can result in a major > slowdown. > > A coarse checkout would be: > > DB.synchronize do > # your code here > end > > In terms of a rack middleware, something like: > > class CoarseCheckout > def initialize(app, db) > @app = app > @db = db > end > def call(env) > db.synchronize{@app.call(env)} > end > end > > use CoarseCheckout, DB > > Hopefully that answers your question. If you have more questions, please > ask. > > Thanks, > Jeremy >
-- You received this message because you are subscribed to the Google Groups "sequel-talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/sequel-talk. For more options, visit https://groups.google.com/d/optout.
