While the historic roots of YottaDB are in the M language, YottaDB extends the tight integration of the language with the database to other languages. As C is the lingua franca of programming languages (in that all programming languages have the ability to call a C API), YottaDB’s C language API extends the database engine to all programming languages. Through the C API, bindings (called “wrappers”) exist to natively access YottaDB concurrently also from Go, Perl, and Rust. Community developed wrappers from C++, node.js, and Python are under development and at various levels of usability and maturity, with all expected soon.
ACID transactions are YottaDB’s strong suit, and give applications a data source they can rely on.
With a philosophy that complexity is the enemy of security, the simply-explained YottaDB security model is based on the mature and easily understood user-group-world permissions for processes to access database files. Security can be further enhanced with layered controls like SELinux.
YottaDB operates using a daemon-less engine. Why?
YottaDB’s business continuity and real-time replication features keep even Internet-scale applications continuously available not just in the face of unplanned events, but also planned events, such as application upgrades and even schema changes.
Unlike most high-end transactional database engines, YottaDB uses Optimistic Concurrency Control (OCC) to implement ACID transactions. Since transactions do not typically collide, optimistic techniques scale up better than pessimistic techniques such as locking.