
When should I use Objectivity/DB rather than an RDBMS?
If you can solve the problem with an RDBMS without a lot of effort and also achieve the performance, throughput and scalability that you need then there's no compelling reason to use an ODBMS. If any of the following conditions are met then you should consider using Objectivity/DB:
Why is Objectivity/DB faster than an RDBMS?
Objectivity/DB is faster than an RDBMS in many instances. It may have equivalent, or even slightly worse, performance in some cases. It is almost always faster than an RDBMS in the following cases:
Why haven't the ODBMS companies overtaken the RDBMS companies?
RDBMSs perform perfectly adequately for many types of applications, particularly in the regular Information Technology domain. ODBMSs target a narrow range of applications, so the potential market size is smaller. A loose analogy is that RDBMS companies are like the manufacturers of internal combustion engines and the ODBMS companies are like the manufacturers of jet engines. The two technologies service different markets, but there is a small degree of overlap. In general, ODBMSs can service all of the applications that an RDBMS could be used for, but the reverse is not true, at least not with anything like the same performance or ease.
The RDBMS companies also have a 15 year lead, so they have a well established and fairly loyal customer base, often with site licenses that conceal the real costs of ownership. Companies have invested a lot of resources and money to learn how to run their RDBMS technology, so they are slow to change technologies. ODBMSs are generally easier to learn and cheaper to own than an RDBMS, so an ODBMS is a more natural choice for a new product or company. The growing number of Java programmers means that ODBMSs can expect to increase their market penetration, but usually at the expense of home grown structured file systems rather than applications that are adequately serviced by RDBMS technology.
How fast is Objectivity/DB?
There are many ways of measuring the speed of a database. Unfortunately, almost all of them are only suitable for relational databases. The industry benchmarks on object databases are over ten years old. Objectivity/DB can create new objects and store them on disk at almost the maximum rate that the processor-network-disk configuration can support. In one recent benchmark Objectivity/DB ingested and stored objects at the rate of 32 Terabytes per day. It randomly or sequentially reads data at similar speeds. If a client thread can reuse data that has already been cached in memory then there is no need to read the data from disk (or across a network) in subsequent transactions. Objectivity/DB can be configured with small client caches for streaming data, or with large client caches for repetitive use of large amounts of data. In the latter case, Objectivity/DB effectively becomes an in-memory database.
How much does Objectivity/DB slow down as my database grows?
The time to store and directly access objects stays almost linear as the container, database and federated database sizes grow. Operations that need to scan whole containers, databases or the federation scale linearly. B-tree indices behave in a predictable fashion. However, note that applications can often utilize small, local indices or hash tables within containers or databases, rather than global indices across a whole federation.
What happens if the number of clients increases?
It depends on what they're doing. If they all have to share the same data then the disk holding that data will eventually saturate. It may be possible to replicate the data multiple times to share the load. If they are accessing data on different disks then there is little noticeable effect. Eventually, there may be too many clients for a particular lock server. That problem can be solved by allocating multiple lock servers.
Where can I find a quick overview of Objectivity/DB?
The product datasheets summarize the capabilities of each Objectivity product. The Technical Overview provides a more comprehensive overview, but you should also read the latest datasheets and press releases for the most timely information.
Where can I find information about the kinds of application that Objectivity/DB is deployed in?
Take a look at the general and industry focused White Papers in the Resource Center. There are news articles about specific customer deployments or industry initiatives in the Press Center.
I've looked at the information on this site and I need more technical details. Can I obtain copies of the technical documentation?
Yes. It's available for free in the Product Download, or you can Contact Us to buy paper copies. If you have specific questions please send them to us at or call your nearest Sales Office.
Does Objectivity/DB have its own Database Administration [DBA] tools?
Yes. It has a comprehensive set of online tools driven by command line, GUI and plugins for the Eclipse Open Community Interactive Development Environment [Objectivity/Assist]. There are C++ and Java APIs to all relevant tools.
What kinds of DBA tools are there?
There are tools for: creating, moving, renaming and deleting federations and databases; for running online incremental backups; for importing and exporting data in various formats; for browsing and editing databases, containers and objects; and for administering various aspects of the High Availability product, such as database replication. This is not a complete list, so please refer to the Database Administration manual for the latest updates.
Can I run Third Party DBA tools to tune Objectivity/DB?
Hardware and operating system vendor tools will provide very useful information about Objectivity/DB processes, servers and I/O activity. However, DBA tools designed for relational databases will generally not yield much of interest as they do not understand the structure of objects.
Can I run any other (non-DBA) tools with Objectivity/DB?
Yes, there are fully supported links with software from Objectivity's partners, such as BEA and Rational. Also, any ODBC-compliant tool can be configured to run with Objectivity/SQL++.
What do I have to do to deploy my database application once it has been Quality Assured?
If you will only be delivering software, without any preloaded databases, then all you have to do is create a "master" federated database containing the schema(s) that you compiled your code with. You copy the federated database, some of the Objectivity/DB runtime libraries (listed in the Database Administration manuals) and your own software and installation material onto the delivery vehicle (tape, CD, tar/ZIP file etc.)During the installation of your software you start one or more lock server and Advanced Multithreaded Server processes, then run ooinstallfd to make the federated database available. You then install your Objectivity/DB applications and start them up; or allow end users to install and start them.If you also want to deliver some preloaded databases (e.g. with configuration data, libraries or other groups of objects) then you use oocopydb to produce files that can be copied to your delivery vehicle. You then run ooattachdb after running ooinstallfd at the installation site.
What do I do if there is a runtime error in a deployed system?
You need to gather as much information as you can about the state of the system as you can. This topic is covered in the High Availability Deployment Review (a Professional Services Package). Each new release of Objectivity/DB introduces additional tools to help you and Objectivity's Customer Support Engineers diagnose and correct a problem. Some sites own very sensitive information, so special arrangements may need to be made to reproduce the error off-site with synthetic data.
Can you send Objectivity specialists to a site to help diagnose an urgent problem?
Yes, by special arrangement. Many of the Professional Services Packages are designed to help minimize downtime. Prevention is a lot less painful than a cure. Please contact Customer Support for further details.
How easy is it to configure an Objectivity/DB server?
Very easy. There are actually two kinds of Objectivity/DB server. All remote file I/O is performed by Advanced Multithreaded Server processes. Transactions are managed by Lock Server processes. Each or these has only a few configuration parameters to worry about, such as the number of threads to be run. Objectivity/DB uses a distributed processing architecture, so most performance tuning is done within individual client threads or processes, rather than within the servers.
How do I decide how to distribute the servers around a network?
It is almost always faster to access data on a local machine or LAN than over a MAN, WAN or the Internet. So, if it is possible to configure frequently used data as close to the local users as possible there will be significant performance improvements in today's networks. If the data is mainly read-only then it can be replicated to as many sites as necessary. Replication is transparent to applications. The Database Administration Course and the Database Design Review (a Professional Service Package) cover the physical design of a federated database in detail. The High Availability Deployment Review covers database and system resource replication.
How can I minimize the time it takes to store, find or update objects?
The application designers and programmers have a lot of control over the way in which objects are manipulated in memory and clustered on disk. It is possible to control the initial size, growth rate and maximum size of the in-memory cache. Objects can be clustered into the same logical page within logical containers and databases. The training courses plus the Database Design Review and the Performance Tuning Professional Service Packages provide full training on this topic.
What languages does Objectivity/DB support?
Objectivity/DB supports the following languages: C#; C++; Java; Python, Smalltalk; SQL++ (SQL with object oriented extensions) and XML (for import and export only).
What platforms does Objectivity/DB run on?
The Objectivity/DB management product line is available on most major platforms, including:
Does Objectivity/DB support SQL?
Yes. When a C++ or Java programmer introduces an object class to Objectivity/DB the tools or APIs automatically generate appropriate table and column views of that data for SQL and ODBC applications. SQL++ extends regular SQL to add inheritance, structured fields, methods expressed as functions and named associations. ODBC applications do not need to be aware that they are interfacing with an ODBMS rather than an RDBMS. However, some C++, Java and Smalltalk data types, such as multi-dimensional arrays, need to be represented as SQL VIEWS by writing appropriate conversion methods.
Does Objectivity/DB work with ODBC tools like Crystal Reports and Microsoft Access?
Yes. ODBC clients simply install and link an ODBC client side driver supplied with Objectivity/SQL++. The driver communicates with a server process that interprets the ODBC message and calls Objectivity/SQL++ to service the request.
Does Objectivity/DB work with XML?
Yes. There are XML import and export tools that handle class definitions and object instances. You can export objects created by any other language supported by Objectivity into XML files. You can import XML into an Objectivity/DB federation and then manipulate them in C++, Java, Smalltalk or SQL++.
Can I download a trial version of Objectivity/DB?
Yes. It contains the latest release of all major platforms and languages. [Download Site]
Is it a restricted download?
The download is fully functional, i.e. no product features are inhibited or omitted. However, the License Manager will time out in 60 days. You may be able to extend your evaluation by contacting Customer Support. There are reasonable restrictions on what you may use the downloaded software for. You are not allowed to sell it or any application that embeds it without purchasing an appropriate license, for instance. Please read the Terms and Conditions in the download for full details. Internal Research and Development [IRAD] partners may have additional rights.
What is included in the download?
The download contains the Objectivity software, documentation, sample applications and tutorials.
What should I do if I run into problems or need clarification of technical features?
Contact Customer Support by email or fax.
What happens if I decide to purchase Objectivity/DB? Do I have to re-install it? What happens to the applications and databases I've built?
After you purchase Objectivity products we simply send you a new license. You do not have to reinstall the software. You simply apply the new license to any federations that you want to continue using with your newly purchased software. It takes a few seconds to run the tool. That's all that has to be done. However, we'd prefer that you also purchase training and appropriate Professional Service Packages, as we know that they can dramatically affect the quality, performance, reliability and maintainability of your new Objectivity/DB application.