Transcript OODB
OODB System Comparison
Presented by
David Buchanan
Farhad Barfatani
Matthew Buchanan
Mark Downing
Systems Selected
Gemstone
Versant
Object Store
Poet
Jasmine, Objectity/DB
and Others
Criteria Selected
Architecture / Schema
Schema Evolution
Versioning
Recovery
Concurrency
Persistence
Programming Languages
Support Tools
Query Support
Legacy Support
Platform Support
Architecture
Versant
Jasmine
Gemstone
ObjectStore
Schema Evolution
Versant
POET
Objectivity
Object Store
Versioning
Versant
Jasmine
Objectivity
Object Store
Versant Version 6.0
Recovery
A dual logging feature manages recovery.
System maintains physical and logical logs.
Roll Forward mechanism is used to recover
the database.
– System’s roll back reapply committed
transactions .
Versant Version 6.0
Concurrency
Persistent locks support long transactions.
Short locks are also provided for shorter
transactions.
“No-locks” for optimistic locking.
– Users to define their own locks.
– Denies locks that would result in a deadlock.
Versant Version 6.0
Concurrency
Persistent locks support long transactions.
Short locks are also provided for shorter
transactions.
“No-locks” for optimistic locking.
Users to define their own locks.
Denies locks that would result in a deadlock.
Jasmine
Recovery
Database log files for Non-catastrophic
failure.
Journaling in the event of catastrophic
failure.
Jasmine
Recovery
Journal files are backups of the entire
database.
Journaling does not include backing up of
multimedia files.
Facilities allow full and partial backups to
be done online or offline.
Jasmine
Recovery
Database can perform incremental backups of the
database.
» It uses a circular log file.
» Logs used to roll forward to the last
processed transactions
» To restore backed up copy requires system
shut down.
Jasmine
Concurrency
Jasmine uses a combination of:
» Object locking
» Versioning
for concurrency control.
Jasmine
Concurrency
Jasmine support:
– Database Locking
– Store Locking
– Class Locking
– Page Locking
– Object Locking
GemStone
Recovery
Network or hardware failure recovery
Replication.
Backup.
Logging mechanisms.
GemStone
Recovery
Restoration after disk or system failure:
Full backup.
Using log files.
Transaction logs.
GemStone
Concurrency
Transaction mechanisms control
concurrency.
– It uses optimistic locking.
POET
Recovery
Roll forward recovery mechanism using
logs.
Supports an external backup facility.
Backed up while clients still use the
database.
POET
Concurrency
Concurrency control is managed by using:
Nested transactions.
Locks.
Locks prevent reading, updating or deleting of objects by unauthorized
users.
Objectivity
Recovery
Inbuilt recovery mechanism.
Automatic Recovery:
–
–
–
–
–
Application;
Local server;
Remote server host;
Lock server host;
Process failures.
Objectivity
Concurrency
Concurrent access:
Flexible transaction model.
Multiple readers, one writer.
Object-level versioning.
Hierarchical locking.
Lock waiting.
Active deadlock detection across databases.
Objectivity
Concurrency
Concurrent access:
Flexible transaction model.
Multiple readers, one writer.
Object-level versioning.
Hierarchical locking.
Lock waiting.
Active deadlock detection across databases.
Objectstore
Recovery
Transaction logging
Two-phase commit
Objectstore
Concurrency
Multi-Version Concurrency Control
(MVCC )
MVCC can be applied selectively to
individual databases, or to entire servers.
Persistence & Programming
Languages
Versant
– Java
– C++
Jasmine
– Java
– C/C++
– ActiveX
GemStone
– Smalltalk
– Java
Persistence & Programming
Languages
POET
– Java
– C++
Objectivity
–
–
–
–
Java
Smalltalk
C++
SQL++
ObjectStore
– Java
– C/C++
– ActiveX
Query Support
OQL
– Object Store
– Versant
ODQL
– Jasmine
Legacy Support
Relational Database Support
– Objectivity
– Versant
– Jasmine
Conclusion
OODB’s Strengths
Which is the best system?