For Programmers: Free Programming Magazines  


Home > Archive > PHP DB > October 2007 > Re: [PHP-DB] Remote DB Connection: Pros and Cons?









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author Re: [PHP-DB] Remote DB Connection: Pros and Cons?
Chris

2007-10-11, 10:00 pm

Tony Grimes wrote:
> Have any of you tried running a PHP website using a remote database
> connection?
>
> We currently have an in-house PHP website driven by a PostgreSQL database
> that is HEAVILY administered within the office with an administration sister
> site (also PHP).
>
> Problem: the office connection is having trouble keeping up with the website
> traffic. Our IT guys want to outsource the whole server to a co-location
> facility, but the administrators don't want the extra lag on the admin site.
>
> Is it feasible to host the database and admin site in the office, but
> outsource the website and connect to the office database remotely? Is there
> any other way to do this?


Do the website and admin area reference the same database tables?

If they don't, split the database up and keep the website db on the
website server and the other internally.

If they do, which one is the 'primary' set? ie which one gets updated?

You could use replication to keep them in sync (http://www.slony.info/
for example).

--
Postgresql & php tutorials
http://www.designmagick.com/
Tony Grimes

2007-10-11, 10:00 pm

Splitting the tables probably wouldn't work. Most of the tables are used by
both sites and the ones that aren't are tied to the rest by foreign keys.

Most of the updates are done from the admin site, so we're toying with the
idea of creating a read-only data warehouse for the website. The sync would
be one way from main office db to the warehouse (say, every 10 minutes).

Any updates the website does (like an event registration or profile update)
would be done remotely to the office db. In this scheme the website db would
be 10 minutes behind. We can live with that.

Doing everything by remote connection would be easier, but we're worried
about the performance.

Tony


On 10/11/07 6:01 PM, "Chris" <dmagick@gmail.com> wrote:

> Tony Grimes wrote:
>
> Do the website and admin area reference the same database tables?
>
> If they don't, split the database up and keep the website db on the
> website server and the other internally.
>
> If they do, which one is the 'primary' set? ie which one gets updated?
>
> You could use replication to keep them in sync (http://www.slony.info/
> for example).

Chris

2007-10-11, 10:00 pm

Tony Grimes wrote:
> Splitting the tables probably wouldn't work. Most of the tables are used by
> both sites and the ones that aren't are tied to the rest by foreign keys.
>
> Most of the updates are done from the admin site, so we're toying with the
> idea of creating a read-only data warehouse for the website. The sync would
> be one way from main office db to the warehouse (say, every 10 minutes).


No need to create something that has already been done.

Use slony or something to replicate the database.

> Any updates the website does (like an event registration or profile update)
> would be done remotely to the office db. In this scheme the website db would
> be 10 minutes behind. We can live with that.


When you do a registration, get it to use a remote database connection
instead of the 'local' one.

$local_connection = pg_connect('localhost....');

$remote_connection = pg_connect('remote_server_ip....');

$remote_result = pg_query($remote_connection, $query);

> Doing everything by remote connection would be easier, but we're worried
> about the performance.


The only way to find out would be to test it really. As long as you have
a decent connection in to the office and a decent connection on the
remote end and aren't pulling through a ridiculous amount of data in
queries (eg pulling through 50,000 records when you only really need
10), you should be fine.

--
Postgresql & php tutorials
http://www.designmagick.com/
Bastien Koert

2007-10-11, 10:00 pm


What about setting up replication between the servers? Make the the web a slave of the office one and make it read only so avoid messing up the data.

bastien> Date: Thu, 11 Oct 2007 18:08:29 -0600> From: thelist@tonygrimes.com> To: php-db@lists.php.net> Subject: Re: [PHP-DB] Remote DB Connection: Pros and Cons?> > Splitting the tables probably wouldn't work. Most of the tables are used by> both sites and the ones that aren't are tied to the rest by foreign keys.> > Most of the updates are done from the admin site, so we're toying with the> idea of creating a read-only data warehouse for the website. The sync would> be one way from main office db to the warehouse (say, every 10 minutes).> > Any updates the website does (like an event registration or profile update)> would be done remotely to the office db. In this scheme the website db would> be 10 minutes behind. We can live with that.> > Doing everything by remote connection would be easier, but we're worried>about the performance.> > Tony> > > On 10/11/07 6:01 PM, "Chris" <dmagick@gmail.com> wrote:> > > Tony Grimes wrote:> >> Have any of you tried runninga PHP website using a remote database> >> connection?> >> > >> We currently have an in-house PHP website driven by a PostgreSQL database> >> that is HEAVILY administered within the office with an administration sister> >> site (also PHP).> >> > >> Problem: the office connection is having trouble keeping up with the website> >> traffic. Our IT guys want to outsource the whole server to a co-location> >> facility, but the administrators don't wantthe extra lag on the admin site.> >> > >> Is it feasible to host the database and admin site in the office, but> >> outsource the website and connectto the office database remotely? Is there> >> any other way to do this?> >> > Do the website and admin area reference the same database tables?> > >> If they don't, split the database up and keep the website db on the> > website server and the other internally.> > > > If they do, which one is the'primary' set? ie which one gets updated?> > > > You could use replicationto keep them in sync (http://www.slony.info/> > for example).> > -- > PHP Database Mailing List (http://www.php.net/)> To unsubscribe, visit: http://www.php.net/unsub.php>
________________________________________
_________________________
Are you ready for Windows Live Messenger Beta 8.5 ? Get the latest for freetoday!
http://entertainment.sympatico.msn....wsLiveMessenger
Tony Grimes

2007-10-12, 7:00 pm

Thank you all for the responses. I think we're going to try replicating the
databases with Slony. Wish me luck!

Tony


On 10/11/07 6:23 PM, "Chris" <dmagick@gmail.com> wrote:

> Tony Grimes wrote:
>
> No need to create something that has already been done.
>
> Use slony or something to replicate the database.
>
>
> When you do a registration, get it to use a remote database connection
> instead of the 'local' one.
>
> $local_connection = pg_connect('localhost....');
>
> $remote_connection = pg_connect('remote_server_ip....');
>
> $remote_result = pg_query($remote_connection, $query);
>
>
> The only way to find out would be to test it really. As long as you have
> a decent connection in to the office and a decent connection on the
> remote end and aren't pulling through a ridiculous amount of data in
> queries (eg pulling through 50,000 records when you only really need
> 10), you should be fine.

Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com