[Topic] Using remote mySQL-Database very slow

Because we have no possibility to run an AgileTrack server, we tried to use a mySQL-Database in the internet (that means not localhost, but remote access). Unfortunately this is extreeeeeemly slow (That means at least 30 seconds are needed to load an issue, sometimes the application doesn't respond anymore at all). OK, probably AgileTrack was not designed for that ;-) But other Tools (mySQL Query Tools and so on) work perfectly and even quite fast.

Have you any idea what we can do? We would really like to use AgileTrack in the future, but we need a possibility for access over the internet – without a special server, since we have nobody who can run it. Is there somebody that hosts an Agiletrack a server? Or can the data transfer between database and application be optimized?

—Posted by Andreas Wenger on Nov 26, 2006

Another idea would be a tool that creates a local copy of the complete database, and forwards changes to the online database. Does somebody know such a tool?

—Posted by Andreas Wenger on Nov 26, 2006 at 1:06:27 PM

What kind of speed and latency do you have to that server? I tried connecting to a MySQL database over the internet and it worked very well, but it was over a 10Mbps connection with 5 millisecond ping latency.

I would expect performance to be pretty poor for a direct database connection if latency is in the hundreds of milliseconds.

That being said, there is definitely potential to make an AgileTrack database driver that uses a local database for all loads and queries, but synchronizes it with a master database in the background. The local database would always need to hit the master database at the time a record is saved (to reserve an ID and prevent duplicate keys), but other than that, the rest of the synchronization could be done in the background transparently. I'm not sure when that could be done though unless someone else is interested in tackling the problem.

—Posted by Adam Lane on Nov 28, 2006 at 2:37:50 PM

Is there a way to measure the latency of the mySQL-server?
A "ping" on the normal webserver shows about 30 ms latency.

—Posted by Andreas Wenger on Nov 29, 2006 at 3:51:15 AM

What I can't understand:

It needs about 30 seconds to load the issues list. But then, you might think, the waiting is over because all values are saved locally in variables, the table, or somewhere else. But when I open another application window, and switch back to AgileTrack, the same time is again needed to load the data – obviously from the server, because the network shows constantly traffic until the windows is displayed again.

Why is the data reloaded? Can't this be optimized? Is it a bug?

—Posted by Andreas Wenger on Nov 29, 2006 at 6:38:50 AM

0.8a started using SoftReferences in caching data as a way to prevent the cache from growing too large, but it turns out that Java garbage collects SoftReferenced objects very quickly in a lot of cases and the result is reloading objects from the database when it shouldn't have been necessary.

0.8b switches to an LRU based cache which should perform significantly better.

—Posted by Adam Lane on Nov 29, 2006 at 6:49:21 AM

That's great – it works :-) Indeed this seems to be a caching problem in 0.8a.
Thank you very much!

—Posted by Andreas Wenger on Nov 29, 2006 at 7:24:12 AM


You may post a reply to this topic, but you must be logged in. If you already have an account, you may login now. If you need to create an account, you may also register now.