Hi

Am 2024-11-01 21:07, schrieb Eric Norris:
really any major issues that this can cause. We already support curl
share handles via curl_share_init, and adding persistence doesn't
fundamentally change the issues you may have with reusing a curl

Yes, it does. See the reply that I just sent in the voting thread.

Persistent handlers don't really fit PHP's model, and are practically untestable from a PHPT test perspective as far as I know (at least I have never seen any proper tests for the existing ones, but I am happy to be corrected).

Persistence is important to successfully scaling Etsy's monolithic PHP
application. As I mentioned in a response to Tim, we make use of
persistence for things like memcached connections in order to reduce
end-user latency, and we'd like to take that further by persisting the
connections of downstream curl requests we make.

As far as I know the memcache protocol is stateless - except possibly for authentication. In that case every connection would be equal / immutable, making it safe to reuse. MySQL - as an example - is different, because changing any of the connection-related variables, e.g. with `SET sql_mode='foo'` might ruin your day for follow-up connections.

If we truly feel that persistence is wrong for PHP, we would need to
deprecate and remove things like persistent PDO connections; I would
expect that would be a perfectly fine time to also remove support for
persistent curl share handles, if they existed.

I believe that *stateful* persistence is wrong and will lead to hard-to-debug situations sooner or later, yes.

Best regards
Tim Düsterhus

Reply via email to