ramblings on PHP, SQL, the web, politics, ultimate frisbee and what else is on in my life
Anyone played with SQL Relay?
Since I recently stumbled over issues with persistent connections I got reminded once again about SQL Relay. Not really a solution to my problems, since SQL Relay will not magically clean up open transactions (or does it?). However it would help reduce the number of open connections while still getting rid of most the connection overhead. Then again at peak times it might not reduce the number of connections all that much and at low traffic times I guess the main benefit is that one can have more spare children hanging around without clogging up the DB with lots of open connections.
On scaring your audience shitless
Well it really wasn't my intention, but I was aware of the risk when I prepared this talk at Forum PHP in Paris. I held the closing session where I talked about what I have learned while trying to document and eventually becoming part of the "PHP development process". The gist is essentially that there is not much of a formal process or any single person/entity that is controlling things. It all works based on trust, mostly implied rules/guidelines .. although increasingly the implied stuff is getting documented. Sounds scary? Well it sounds quite reassuring to some and scary to others.
Persistent connections with MSSQL
Hoping someone can explain to me what is going on here. We are connecting to SQL Server via mssql_pconnect(). MaxChilds is set to 256 and we are only establishing one connection per request. So as a result I am expecting a maximum of 256 established connections. A client went into production yesterday and due to a missing index the server ended up being insanely loaded, as the queries started to block each other. The sysadmin checked the state of things via netstat and found that there were close to 500 tcp connections to the SQL Server. What gives?
PHP 5.3.0alpha3 is finally out
Wow, after what feels like ages PHP 5.3.0alpha3 was just released. Originally we hoped to be able to release now intermediate releases every 2-3 weeks, this one took a good 2 months. Somehow this releases did its very best to stall itself. People that needed to work on things together by chance ended up being busy with other things and vacations in just the right order to make things impossible. Most of this was to be attributed to the namespace discussions, which climaxed in the backslash FUD campaign. I think we have finally a workable solution and its even documented! Greg even added a long promised FAQ. I am also happy to see that Christian got his rounding RFC committed.
Short mental note on fulltext indexes
I rarely use MySQL Fulltext indexes. Their performance is just not good enough, so often its better to just stick with "LIKE" or move to something else like Sphinx, Lucene etc. The only nice thing about them is the ability to compute a match "rank". Well anyways I had to write a new search plugin for a project that is based around MySQL Fulltext indexes and a match rank and all as well .. except that for some reasons some words just would not produce any results. As I was trying to find a pattern I finally noticed that in my test data some words were used in most rows and exactly those were not matching. Obviously it makes sense to exclude automatically any words that have a very high hit ratio. And indeed the documentation states that by default all words with a hit ratio of over 50% are excluded. Doh!