Realm

Realm Database is an open-source and cross-platform DBMS. Built from the ground in C++, it could support programming languages including Objective-C, Swift, Java and C#.

History

Realm Database comes from the YCombinator LLC. which was founded by Alexander Stigsen and Bjarne Christiansen in 2011. They started the project called TightDB in the end of 2010 and renamed it to Realm in September, 2014. Realm was officially announced and open-sourced to the developers from over the world in 2016. Later in January 2017 its first stable version was released.

Hardware Acceleration

Custom

No Acceleration

Concurrency Control

Multi-version Concurrency Control (MVCC)

In Realm, each connected thread will see a snapshot of the data at a particular point in time. Moreover, it utilizes the copy-on-write mechanism and allows only one client to modify data at a certain point.

Isolation Levels

Read Uncommitted

No objects shared between threads, which means it's literally single-thread.

Data Model

Object-Oriented

Foreign Keys

Supported

Not Supported

Storage Architecture

Hybrid

You could configure during run-time.

System Architecture

Embedded

Realm Database is not a distributed database. It's mainly for the mobile device.

Stored Procedures

Not Supported

Compression

Bit Packing / Mostly Encoding

The Realm Database supports the features that optimize the memory usages for some data structures. For example, the database will convert a giant list of strings into enums, which is similar to the tagger pointers in Objective-C, in order for fast lookup. Moreover, the database utilizes integer packing to store the integer with optimized space so that it is not necessary to specify the integer type when declaration.

Query Compilation

Not Supported

Logging

Logical Logging

Realm only maintains the log for the transaction. But it doesn't support the recovery mechanism.

Joins

Not Supported

It's not relational database

Views

Virtual Views Materialized Views

Realm database supports reflective views and imperative views. Essentially they are very similar to materialized views and virtual views.

Storage Model

Decomposition Storage Model (Columnar)

Properties would be kept contiguously linked at the vertical level.

Query Interface

Custom API

Realm Database has its own custom APIs.

Realm Logo
Website

https://realm.io/products/realm-database

Source Code

https://github.com/realm

Tech Docs

https://realm.io/docs

Developer

Realm

Country of Origin

US

Start Year

2011

Former Name

tight.db

Project Type

Commercial, Open Source

Written in

C++

Supported languages

C#, Java, JavaScript, Objective-C, Swift

Operating Systems

Android, iOS, Windows

Licenses

Apache v2

Wikipedia

https://en.wikipedia.org/wiki/Realm_(database)#Features