A
transientdatabase object exists only as long as an application has an open connection to the database. All transient objects disappear when the application shuts down the database. An in-memory database will contain onlytransientobjects, i.e. objects that reside in memory only for the duration of the application that creates the database, or, for shared memory databases, until the shared memory segment is removed. Apersistentdatabase object resides on a persistent storage device, usually a Hard Disk Drive (HDD) or Solid State Drive (SSD).The number of
transientobjects is limited by the memory space available. Actually the database uses the assigned memory area not only for thetransientobjects but also for the indexes and internal metadata structures. The number ofpersistentobjects is limited by the persistent storage device so apersistentdatabase may contain terabytes of data. It should be noted that the database storage (memory and persistent) can be extended at runtime to fit more data.Persistent databases can contain only
persistentobjects or it is possible to create hybrid databases which contain bothtransientandpersistentobjects. Thetransientobjects havetransientindexes andpersistentobjects havepersistentindexes. This means that apersistentdatabase does not need to be re-indexed after re-opening. Also thepersistentobjects andpersistentindexes have different memory layouts (due to the nature of their implementation) so it should not be surprising that apersistentand atransientobject of the same structure (in the schema) have different memory requirements.A
persistentor hybrid database requires a special device named cache. This memory area is used by the eXtremeDB runtime as a buffer between the persistent storage media and the application where it loads thepersistentobjects data and indexes. In common practice, it is best to specify the cache size as large as possible to give the application maximum performance in data transactions. For a detailed description, please see the Persistent Database I/O page.The application determines the type and size of storage by defining storage devices for the database data, metadata, and for
persistentobjects the cache and transaction log.