Monty Taylor schrieb:
Ulf Wendel wrote:

Brian tried to kick off some brainstorming on PS in his blog [1]. Both
he and Lukas Smith [2], as of shortly a [Co-]Release Manager of the PHP
5.3 series, have blogged about PS before I found time to raise my voice
on PDO and PS [3]. Its been a rather vivid blog discussion.

Things I remember from the discussion:

  - current PS implementation of the server does not scale well

And never will.

  - todays developers are lazy and maybe less skilled:
    they rely on garbage collections and keep handles open
    for ages - the server

  - the server does not do much more than cache the parse tree:
    parsing can make 25% of the run-time of a short query

Well, the parsing problem is actually a whole other conversation I'm
trying to have... (in short, I want to push parsing to the client
library and have the ability to send the parse-tree over the wire)

There is more behind than just parsing.

The concept of Prepared Statements came up at a time when I was still in the Kindergarten or maybe not even planned to be ever born. From what I know, PS are designed for classical host applications. The setup consists of a single central database server and limited number of a few hundred workstations. The workstations run the same program all day. Probably even with less dynamic SQL. Its been the times of embedded SQL. A perfect world for caching as much as you can on the server:

 - parse-trees
 - execution plans
 - DB internal file system handles
 - ... - whatever resource you can "cache" or "reserve"

Clients change only once per day, many recurring queries with just a little bit different parameters etc.

Typical web applications should be characterized by a far higher number of clients. And the more clients, the more challenging it is to scale on a central element. I get that.

But can we move all of the theoretical benefits of server-side PS towards the client? I see that a client can parse SQL and do parameter substituition. But what about:

 - execution plans
 - DB internal file system handles
 - ... - whatever resource you can "cache" or "reserve"

  - binary protocol can mean significantly less conversions
  - binary protocol can mean less traffic

What is the Drizzle roadmap on Prepared Statements given that PHP, a
major player in the web market, will not play nicely with Drizzle
without a vision implemented by Drizzle and MySQL Connector team folks?

If you want to scale in a massive web scale out environment, Server-Side
prepared statements are a terrible idea. Full stop. Same thing with

So, the Drizzle idea is on client-side PS. But how do they work? What about parser updates? Will Drizzle make the SQL parser a plugin that clients can use as well?

Whether the server-side has PS or not or they are any good or not, I
can't believe PHP can't provide a good emulation layer for their users

That's not at the hearth of my question. It may be possible to develop a solid client-side PS emulation for PHP. But it will take time and resources. As long as its not available you will hear the PHP folks, the self-declared target audience for Drizzle, bail at you.

The question is on the how to do it, assuming that we really think that preparing (= caching) statements makes sense at all.

Ulf


--
Ulf Wendel, MySQL
Sun Microsystems GmbH,   Sonnenallee 1,   D-85551 Kirchheim-Heimstetten
Geschaeftsfuehrer: Thomas Schroeder, Wolfgang Engels, Dr. Roland Boemer
Vorsitzender des Aufsichtsrates: Martin Haering     Muenchen: HRB161028

_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to