Hi all, Excuse me if it's a silly question (I'm a newbie here), but what about using a search engine component instead of SQL queries ? I think about Apache Lucene (Java search engine) for example ( http://lucene.apache.org/) which seems to me a better solution about indexing and searching than SQL requests ?
Nico On Mon, Jan 12, 2009 at 2:05 PM, Tom Hughes <t...@compton.nu> wrote: > David Earl wrote: > > > While what Tom says may help performance, I don't think it is why things > > are running disparately slowly at the moment. > > Oh yes it is... > > > It is mainly extremely slow at present because it has got into a state > > where daily updates are interfering with each other and I haven't had a > > chance to look at why this is happening. It is getting worse, because > > each day slows down more so the next day starts up and interferes with > > that. I know it needs attention. While the updates are running, searches > > are much slower because they don't get much opportunity to run. I > > suspect his vicious circle started because there was one day when there > > was an exceptionally large update and this ran fro > 24 hours, running > > into the next. > > How many times do I have to explain the problem... The problem is lock > contention because you're using MyISAM tables. > > Here is what happens: > > - You start update and it runs quite happily initially > > - User issues query which, for whatever reason, takes a long > times (many minutes or even hours) to run, which leads to a > read lock on the main tables > > - Update blocks waiting for a write lock > > - All other queries now block behind the writer as they can't > get a read lock until it is done > > - Several hours later the update is still blocked, all the Apache > processes are wedged with pending queries and the whole thing > is buggered > > - Eventually the slow query finishes and the update happens, then > hundreds of pending queries all kick off and content with each > other so run really slowly > > - The next update is now blocked behind all those readers > > - The above repeats ad infinitum and nobody gets anything much done > > If it's really bad then, as you've noticed, one day's update won't > finish before the next one is due to start. > > It is really very simple - MyISAM tables are not suitable for any case > where you will have contention between readers and writers, especially > if some of the read queries may be long running. > > Tom > > -- > Tom Hughes (t...@compton.nu) > http://www.compton.nu/ > > _______________________________________________ > dev mailing list > dev@openstreetmap.org > http://lists.openstreetmap.org/listinfo/dev >
_______________________________________________ dev mailing list dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/dev