Jump to content

Objectivity/DB

From Wikipedia, the free encyclopedia

Objectivity/DB is a commercial object database produced by Objectivity, Inc. It allows applications to store standard C++, C#, Java, or Python objects persistently, without converting them into the rows and columns used by a relational database management system (RDBMS). Objectivity/DB supports popular object-oriented languages as well as SQL/ODBC and XML. It is compatible with Linux, Macintosh, UNIX and Windows platforms, facilitating interoperability across different languages and hardware environments.

History[edit]

Objectivity/DB was first introduced in 1990. The C++ and Java interfaces adhere to the ODMG'93 standard,[1] with subsequent additions of C# and Python interfaces. Objectivity, Inc. ceased in late 2023.

Architectural features[edit]

Objectivity/DB operates as a distributed database, providing a unified logical view across a network of databases. It employs a distributed computing model where client applications transparently communicate with simplified servers processes. This architecture enhances scalability[2] and reliability, supporting ingest rates exceeding one terabyte per hour while concurrently facilitating data fusion and query operations.[3]

Objectivity/DB utilizes a distributed storage hierarchy, storing objects in logical clusters called containers within federated databases. Each object is assigned a unique 64-bit Object Identifier (OID) within a massive physical address space spanning millions of Terabytes. Notably, the largest reported deployment at SLAC's BaBar experiment stored over a petabyte of objects.[4][5]

The database offers flexibility in defining object placement within its storage hierarchy.[6] through customizable strategies encapsulated in XML configuration files. This approach allows database designers to specify how persistent objects are stored, distributed, and positioned relative to other designated objects.

In Objectivity/DB, objects can establish named uni-directional or bi-directional links with other objects, supporting various cardinalities (1:1, 1, many:1, many). Object Identifiers (OIDs) expedite navigation across networks of objects,[7] supporting scalable collections (tree, list, set etc.), indices, and hash tables. By eliminating relational Join operations typical in RDBMS, Objectivity/DB achieves enhanced performance advantages.[8][9][10]

Unlike RDBMSs, Objectivity/DB employs a unique approach to query handling. Applications initialize iterators that locate and retrieve qualified objects iteratively. The Parallel Query Engine divides queries into subtasks managed by remote query agents, which filter and process results before sending them back to the application. This approach includes components for query task division and refinement, optimizing performance for complex queries.

Databases and system data, including catalogs and schemas, can be replicated across multiple locations using a quorum-based synchronous replication mechanism. This ensures transparent resynchronization of replicas temporarily disconnected from the network.

The distributed architecture of Objectivity/DB has facilitated its adoption in grid computing environments and Service Oriented Architecture (SOA) applications. It holds certification as an IBM Ready for Grid product and supports the J2EE Connector Architecture (JCA) standard making it suitable for deployment in cloud environments.[11]

Typical applications[edit]

Objectivity/DB finds applications in data-intensive and real-time environments handling complex, interconnected data. It is utilized in software, hardware, commercial, scientific, and government projects, particularly in sectors like in computer-aided design (CAD), telecom, process control, manufacturing, medical instrumentation, defense, and large-scale scientific research.

The choice between RDBMS and ODBMS depends on specific application requirements. Objectivity/DB is favored in compute or data-intensive, object-oriented systems where its performance benefits are critical.

References[edit]

  1. ^ R. G. Cattell; Douglas K. Barry; Mark Berler; Mark Berler; Jeff Eastman; David Jordan; Craig Russell; Olaf Schadow; Torsten Stanienda; Fernando Velez (January 2000). Object Data Standard: ODMG 3.0. Academic Press. ISBN 1558606475. Retrieved December 1, 2014.
  2. ^ "Georgetown University taps Objectivity for Big Data research". Government Security News. May 2013. Retrieved December 1, 2014.
  3. ^ "Scaling Objectivity Database Performance with Panasas® Scale-Out NAS Storage" (PDF). August 2011. Retrieved December 1, 2014.
  4. ^ Lessons Learned from Managing a Petabyte Jacek Becla and Daniel L. Wang, 2005
  5. ^ BaBar Database
  6. ^ Angela Guess (February 6, 2013). "Objectivity Launches Objectivity/DB 11.0". DATAVERSITY. Retrieved December 2, 2014.
  7. ^ Philip Howard (May 29, 2012). "Objectivity and InfiniteGraph". Bloor. Retrieved December 1, 2014.
  8. ^ Suzanne W. Dietrich; Susan D. Urban (2011). Fundamentals of Object Databases. Morgan & Claypool Publishers. p. 2. ISBN 9781608454761. Retrieved December 3, 2014.
  9. ^ Alan Dearle; Roberto V. Zicari, eds. (2010). Objects and Databases, Third International Conference Proceedings, ICOODB. Springer. p. 34. ISBN 978-3642160912. Retrieved December 3, 2014.
  10. ^ C.S.R Prabhu (2011). Object-Oriented Database Systems - Approaches and Architecture, Third Edition. Asoke K. Ghosh, PHI Learning Private Limited. p. 67. ISBN 9788120340930. Retrieved December 3, 2014.
  11. ^ "Objectivity: Complex Data-Management, Simplified". Neovise. 2014. Retrieved December 2, 2014.

External links[edit]