Global Namespace: Nirvana creates and maintains a Global Namespace across multiple heterogeneous and distributed storage systems, data centers, and administrative domains. The Global Namespace, also referred to as a Logical Namespace, is an organization of all Collections, sub-Collections, Virtual Collections, and Data Objects in an Nirvana Federation, independent of their physical storage infrastructure.
Information Repository Virtualization: The information repository (or MCAT) where the Federation's metadata is stored is transparently accessed and managed by Nirvana. This allows for a seamless exchange of the underlying information repository over time. Currently there is support in Nirvana for a number of different relational databases. The entire information repository can be exported and imported using XML. Nirvana dynamically generates SQL to perform various operations on the MCAT.
Storage Virtualization: The underlying technologies for storing data change rapidly every few years. Nirvana makes it transparent to its clients which particular storage technology underlies a Nirvana environment. For Nirvana Users and applications, it is no longer necessary to "remember" a server's host name, IP address, operating system, access protocol, or even whether a system is an archival storage system or a cache system. Nirvana hides those complexities and alleviates data storage complications by defining a common set of operations for manipulating data through its drivers.
- Data Virtualization: Data within the Nirvana Federation is virtualized through a mapping mechanism from the physical path to a logical name within Nirvana. Every Data Object in Nirvana has its unique global identifier that is independent from the physical data path. Nirvana takes the approach of associating any metadata such as access control lists, audit trails, checksums, or user-level metadata with the logical name (or global identifier). This enables the Nirvana to function across heterogeneous and distributed storage systems.
If a Nirvana user does not know the logical name of a Data Object, data can be discovered and accessed solely through an object's attributes (creation date, size, frequency of access, latitude, longitude, keywords, projects, authors, etc.).