# Database Memory Devices

> As described in the Database Storage page, eXtremeDB supports the notion of logical database devices which are abstractions of physical storage locations that can be conventional memory (static or heap allocated memory in the application address space), shared memory (“named” memory shared by multiple processes) , or persistent file system memory such as a simple file, a multi-file or RAID file, or even a raw disk partition.

> Whereas for in-memory databases a single conventional or shared memory device is used, for persistent databases, an array of at least four memory devices is defined to specify memory properties for the database data, metadata, cache and log file.

> The way memory devices are defined is specific to the programming language used. Please use the links below to view the details for your development environment:

> C | C language memory device specification
> C++ | C++ memory device specification
> Java | Java memory device specification
> Python | Python memory device specification
> C# | C# memory device specification