Hello,
I just started looking at Trac and it looks very interesting.
From playing with it (for a whole of a day), I have a quick "design" question
- why does Trac use SQLite to store version information of the Wiki? It would
seem that since Trac is tightly integrated with Subversion, it should us it
for Wiki as well (e.g. create a separate subversion repository somewhere in
the trac project directory).
With current use of SQLite, having a dynamic wiki (one that changes
frequently) becomes very space-expensive - every time a document is changed,
it is completely duplicated in another entry of 'wiki' table. For example, if
you assume that a discussion is happening over wiki, with every person adding
a roughly equally sized chunks of text, the space use becomes O(n!), instead
of O(n) with a version control system that only saves the differences.
Second (and unrelated) question is why does Trac use SQLite for its internal
storage? Given that it is closely tied to Subversion, and subversion uses
BDB, wouldn't it make sense to build Trac on top of BDB as well - that would
save the administrator need to learn operation, backup, and recovery of two
different database systems. Python bindings for DB4 do exist
(pybsddb.sourceforge.net) (although I never used them) and it would appear
that all functionality of SQLite is supported by DB4. What's the catch?
Thank you,
Alik
__________________________________
Do you Yahoo!?
New and Improved Yahoo! Mail - Send 10MB messages!
http://promotions.yahoo.com/new_mail
I just started looking at Trac and it looks very interesting.
From playing with it (for a whole of a day), I have a quick "design" question
- why does Trac use SQLite to store version information of the Wiki? It would
seem that since Trac is tightly integrated with Subversion, it should us it
for Wiki as well (e.g. create a separate subversion repository somewhere in
the trac project directory).
With current use of SQLite, having a dynamic wiki (one that changes
frequently) becomes very space-expensive - every time a document is changed,
it is completely duplicated in another entry of 'wiki' table. For example, if
you assume that a discussion is happening over wiki, with every person adding
a roughly equally sized chunks of text, the space use becomes O(n!), instead
of O(n) with a version control system that only saves the differences.
Second (and unrelated) question is why does Trac use SQLite for its internal
storage? Given that it is closely tied to Subversion, and subversion uses
BDB, wouldn't it make sense to build Trac on top of BDB as well - that would
save the administrator need to learn operation, backup, and recovery of two
different database systems. Python bindings for DB4 do exist
(pybsddb.sourceforge.net) (although I never used them) and it would appear
that all functionality of SQLite is supported by DB4. What's the catch?
Thank you,
Alik
__________________________________
Do you Yahoo!?
New and Improved Yahoo! Mail - Send 10MB messages!
http://promotions.yahoo.com/new_mail