On Mon, Dec 09, 2002 at 08:22:42PM +0100, Tomasz Wegrzanowski wrote:
If we switch to Postgres, to get the benefits of Postgres we must do a redesign of the table schema, at least. Did anyone notice that Postgres is now fully SQL92 compliant? And a redesign of table schema means we can design it so that generating a regular wiki page only involves ONE query, instead of the current TWELVE. A long term redesign of the software could definately be beneficial.
We have done it twice, without much benefit. I'm all for evolutionary way.
Yes, but we were limited by MySQL each time. Have you used Postgres or Oracle or Sybase before? I have a hard time expressing briefly how great SQL92 compliance is compared to the subset that MySQL supports. Using MySQL for this is walking the long way around the bay when you could paddle the Postgres canoe directly across it in a fraction of the time.
Most important current issues are:
- poor markup
- no media independence
- 15-or-so-pass parser instead of good hierarchical LALR parser
- slow database
- poor mirroring ability
- no dedicated offline client
I'm currently working on first two (well, three).
I agree and I would love to see your thoughts on all of these issues, and how best to solve them. The last two items should be fairly simple, if we require users to install Apache on their local boxes.
How can we improve markup? I too feel it might be lacking somehow.
What do you mean by media independance?
Rewriting it in C won't help with any of these issues.
By using C, we can use lex and yacc to make an excellent LALR parser
Postgres will solve the slow database issue.
Moving current script to Postgres is easy modulo FULLTEXT index. Better think what to do with that one.
No, Postgres really does require a full redesign to reap the benefits.
Oh, and think how to you implement database mirroring, as this is what lost most after move from filesystem database (rsync) to MySQL.
Replication (database mirroring) comes with Postgres; we have a choice of the dbmirror, and the dbbalancer contributed modules. We can choose synchronous or asynchronous; I recommend asynchronous for speed.
Jonathan