- Project tools
-
-
-
- How do I...
-
| Category |
Featured projects |
| scm |
Subversion,
Subclipse,
TortoiseSVN,
RapidSVN
|
| issuetrack |
Scarab |
| requirements |
xmlbasedsrs |
| design |
ArgoUML |
| techcomm |
SubEtha,
eyebrowse,
midgard,
cowiki |
| construction |
antelope,
scons,
frameworx,
build-interceptor,
propel,
phing
|
| testing |
maxq,
aut
|
| deployment |
current |
| process |
ReadySET |
| libraries |
GEF,
Axion,
Style,
SSTree
|
| Over 500 more tools... |
|
[ Date Prev][ Date Next][ Thread Prev][ Thread Next][ Date Index][ Thread Index]
Re: [Catacomb] dbms.c proposed changes
Jim Whitehead wrote:
I'm in favor of making the database code more secure -- you certainly
identify a very significant security hole!
One that I've overlooked on other projects (luckily, a test suite found
this hole, not a hacker!)
The database independent layer sounds good to me, though I will note that
discussions I've had with people who have developed document management
systems indicate that for performance reasons they quickly get to the point
where the optimize heavily for specific databases, including making use of
functions executing in the DB. Since we're focusing on just getting things
working, we don't have to worry so much about performance. But, the limited
performance profiling that was done last Winter indicates that Catacomb's
performance is really slow, orders of magnitude off what commercial doc.
mgmt. systems achieve. For Catacomb to be taken seriously, we'll eventually
need to address performance.
Hmm, that's curious. Do you have information you can point me to
regarding the profile tests and the results? (If not, don't worry 'bout
it...I'd definitely aim for features first, then performance tuning.)
So, what I want is a database-independent layer that leaves the door open
for database-specific optimization. I'm not sure what this would look like.
True enough. Given that there are very few cases where even the SQL
between two databases is 100% compatible, I'd say that dbms.c would have
to be customized for each RDBMS anyways. (Although as we abstract away
the semantics of initializing the db and preparing standard queries, we
do reduce the amount of code that would have to be re-written in dbms.c.)
As for performance, this will add one more layer of function calls, a
minimal impact. I am concerned about the performance of memory
allocation (although the pools should help quite a bit) and string
escaping, but it's a necessary evil.
|