I've just started playing with Google App Engine using php via Quercus.
I'm not going to be moving my complete app over to app engine, but am thinking of serving up some widgets and api stuff via app engine. At the same time, I will be maintaining my databases in mysql as I've got that running on a seperate server.
I make all sorts of different shaped data requests against my database. Stuff like get by date within lat/longs, get by user, etc. etc.
Most of the widget and api requests I suspect will continue to be for the same 300-400 queries. I don't think it makes sense to move all my data over to app engine, and end up storing the data in two places.
I was hoping I could pose queries via php to an external mysql server, but apparently that doesn't work. I get the following error when trying to connect
Warning: A link to the server could not be established. url=jdbc:mysql://localhost:3306/. which I assume means that app engine can't connect to mysql due to app engine settings, not due to anything specifically that I have done wrong. I have checked that mysql is running on port 3306.
Assuming the issue is that App Engine can't connect to mysql (even an external mysql database), I'm thinking my other option would be to retrieve the data in json and store that in the app engine memcache, or directly in the datastore as a complete json object, and then hash the query to use as a key to retrieve the data.
I'm hoping to get some advice as to if this is the right way (or I guess a good way) of managing data on AppEngine, or is there another solution I should be looking at.
I am a bit surprised that app engine can't make requests to an external relational database, as I thought the responses are retrieved as objects, and the 'relationship' doesn't exist beyond mysql.