Nirvana is virtual data access and management software with built-in user defined metadata management, security, and tracking. Data can be accessed through file system gateways, via the web, or through Application Programming Interfaces (APIs). Nirvana is implemented as a distributed software layer that uses a client/server architecture. The major Nirvana components and their functions are shown in the figure below:
The heart of Nirvana is the Metadata Catalog (MCAT) which oversees a Global Namespace and keeps track of all the data and organizes it into logical Collections. For all data, the MCAT maintains two types of records: system and user-metadata. Location Agents directly access the storage systems, and clients present data to the user, through a graphical user interface or command line interface, or user programs. A relational database such as Postgres or Oracle is also required.