ITTIA DB SQL supports embedded multicore apps
ITTIA DB SQL allows application tasks on separate processor cores to concurrently access a single database. A multicore processor enables a device to do more work without the excessive power requirements necessary for higher clock speeds. However, to benefit from multicore, an application must be divided into concurrent tasks. Tasks that share access to an ITTIA DB SQL database file can depend on transaction isolation to prevent corruption and inconsistency. The application benefits from thread synchronization primitives, such as mutexes and atomic variables, even without using them directly. This approach avoids race conditions that could damage the integrity of the database.
ITTIA DB SQL also provides great multicore performance. Row-level locking ensures high read performance even when another task is writing to the database. Transaction group completion, which combines I/O requests from separate tasks, maximizes throughput when multiple tasks write to the database concurrently. These features eliminate significant performance bottlenecks faced by real-world applications.
Some devices can run distinct operating systems on a multicore processor, to separate real-time and non-real-time tasks onto separate cores. To exchange data between such systems, ITTIA DB SQL supports bidirectional database replication.