• 2 Posts
  • 15 Comments
Joined 1 year ago
cake
Cake day: June 13th, 2023

help-circle






  • At a first level it certainly is an issue with PHP, but PHP was also designed by a human. That design comes with its own problems right? I guess what I said is just a generalisation of PEBKAC as all (mostly all) software is designed by some human. Fact that it’s a different chair may as well be considered not a PEBKAC ? Yes it’s philosophical or simply which perspective you choose to see.

    Haven’t played with amphp/parallel but maybe worth a look to see how/if sockets are shared there.






  • Also how’s the setup? You setup for example 5 max children in fpm and 5 persistent connections? Per server? So your overall connections to the db server will be 5x your server instances?

    If you setup 5 fpm children and less connections, one child will eventually reuse from another, but only when the connection is free (does not do a query for another process or pdo does not consume a resultset). If it tries to do a query at that time it will have to wait and it will block. This is my understanding. Also how you do transactions with persistent connections?

    This has evolved into such an interesting conversation.




  • It’s not that there isn’t the option, it’s just that I don’t know how to help you. MySQL has an option to reconnect, I suppose might be the same for postgres?

    The single running process that was so easily dismissed, could save tons of queries, for example! Sorry I keep thinking about that direction



  • I haven’t used persistent connections although I have been tempted in the past. I believe, if you haven’t used it before, it might come with more trouble than it solves.

    As an alternative I could propose using amphp (or maybe react PHP) which will let you handle a pool of connections in a single long running process. But it’s a bigger change really, the more I think of it.