Database, transactions and scopes
All Iray scene data is stored in the Iray scene database. The scene database is a distributed key-value store which allows to store scene elements and retrieve them later when they are needed. The keys are arbitrary strings, the value are instances of C++ classes. The fact that the database is distributed means that data can be stored on any node in a cluster and retrieved subsequently on any other node in the cluster.
You can create, retrieve and modify scene objects in the database, such as cameras, options, groups, instances, objects, meshes, and functions. Any thread which has access to an open transaction can at any time create and edit database objects. The database API is written to support multithreaded accesses. It is the applications responsibility to synchronize concurrent changes to single database objects, though. It is also the applications responsibility that concurrent changes from different threads result in an overall consistent database content.
See also the following topics: