SurrealDB

Last updated
SurrealDB
Developer(s) SurrealDB
Initial releaseDecember 8, 2019
Stable release
v1.5.0 / May 14, 2024
Repository github.com/surrealdb/surrealdb
Written in Rust
License Business Source License, Apache License after 4 years
Website surrealdb.com

SurrealDB is an NewSQL [1] open-sourced multi-model database [2] [3] and database-as-a-service platform. [4] The platform is designed to offer a structured yet flexible way of storing and querying data, aiming to simplify the app development process by minimizing the need for building backend APIs and database layers. [5] [6] [7]

Contents

The database is written in Rust, [8] with SDKs supporting languages such as JavaScript, Python, .NET, and others. [9] The database supports a number of modalities, including graph, relational, document and vector database features.

History and development

SurrealDB was started by brothers Tobie Morgan Hitchcock and Jaime Morgan Hitchcock in 2016. The first functional prototype version of SurrealDB was completed in 2017 and written in Go (programming language) [3] , but released the first alpha version in December 8, 2019. [10] The company [ clarification needed ] started work on a new version of SurrealDB written entirely in Rust from scratch in 2021 [3] . In November 2022 the company closed a $6 million seed round led by FirstMark. [4] [11] The company is based out of London. [12] Version 1.0 of the database was released in September 2023. [13]

The company's managed database service was in beta as of early 2023, with plans for a commercial launch in 2024.

Technical features

SurrealDB is a multi-model database that aims to address the requirements of contemporary application development. It provides a range of features intended to offer flexibility and functionality, positioning it as a potential option for developers seeking adaptable database solutions. [9] [7]

Architecture

SurrealDB offers various configurations for its architecture.

Platform

Data model

SurrealQL

Additional features

Differences from typical SQL databases

SurrealDB has a number of differences from typical SQL databases [3]

SurrealKV

SurrealKV, set for inclusion in SurrealDB's 1.X release, is being developed as a native Rust-based key–value storage engine for both single-node and distributed systems. It aims to enable multiple concurrent writers and readers, with a focus on immutable data querying, versioned queries, data change auditing, and historic analysis. The distributed version will additionally offer scalability to handle terabytes of data and enhanced fault tolerance for enterprise-level applications. [15]

Surrealist

Surrealist is the official database management graphical user interface for SurrealDB.

On April 23, 2024, SurrealDB announced that they hired the creator of the unofficial open sourced graphical database management application, Surrealist. The company announced a major 2.0 update to Surrealist coinciding with this event, making Surrealist an official database management graphical interface for SurrealDB. [16]

See Also

Related Research Articles

<span class="mw-page-title-main">PostgreSQL</span> Free and open-source object relational database management system

PostgreSQL, also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. PostgreSQL features transactions with atomicity, consistency, isolation, durability (ACID) properties, automatically updatable views, materialized views, triggers, foreign keys, and stored procedures. It is supported on all major operating systems, including Linux, FreeBSD, OpenBSD, macOS, and Windows, and handles a range of workloads from single machines to data warehouses or web services with many concurrent users.

In computing, a solution stack or software stack is a set of software subsystems or components needed to create a complete platform such that no additional software is needed to support applications. Applications are said to "run on" or "run on top of" the resulting platform.

Multi-master replication is a method of database replication which allows data to be stored by a group of computers, and updated by any member of the group. All members are responsive to client data queries. The multi-master replication system is responsible for propagating the data modifications made by each member to the rest of the group and resolving any conflicts that might arise between concurrent changes made by different members.

A spatial database is a general-purpose database that has been enhanced to include spatial data that represents objects defined in a geometric space, along with tools for querying and analyzing such data.

<span class="mw-page-title-main">Navicat</span> SQL database management software

Navicat is a series of graphical database management and development software produced by CyberTech Ltd. for MySQL, MariaDB, Redis, MongoDB, Oracle, SQLite, PostgreSQL and Microsoft SQL Server. It has an Explorer-like graphical user interface and supports multiple database connections for local and remote databases. Its design is made to meet the needs of a variety of audiences, from database administrators and programmers to various businesses/companies that serve clients and share information with partners.

A document-oriented database, or document store, is a computer program and data storage system designed for storing, retrieving and managing document-oriented information, also known as semi-structured data.

A graph database (GDB) is a database that uses graph structures for semantic queries with nodes, edges, and properties to represent and store data. A key concept of the system is the graph. The graph relates the data items in the store to a collection of nodes and edges, the edges representing the relationships between the nodes. The relationships allow data in the store to be linked together directly and, in many cases, retrieved with one operation. Graph databases hold the relationships between data as a priority. Querying relationships is fast because they are perpetually stored in the database. Relationships can be intuitively visualized using graph databases, making them useful for heavily inter-connected data.

Redis is a source-available, in-memory storage, used as a distributed, in-memory key–value database, cache and message broker, with optional durability. Because it holds all data in memory and because of its design, Redis offers low-latency reads and writes, making it particularly suitable for use cases that require a cache. Redis is the most popular NoSQL database, and one of the most popular databases overall. Redis is used in companies like Twitter, Airbnb, Tinder, Yahoo, Adobe, Hulu, Amazon and OpenAI.

<span class="mw-page-title-main">Neo4j</span> Graph database implemented in Java

Neo4j is a graph database management system (GDBMS) developed by Neo4j, Inc.

<span class="mw-page-title-main">Sones GraphDB</span>

Sones GraphDB was a graph database developed by the German company sones GmbH, available from 2010 to 2012. Its last version was released in May 2011. sones GmbH, which was based in Erfurt and Leipzig, was declared bankrupt on January 1, 2012.

<span class="mw-page-title-main">OrientDB</span>

OrientDB is an open source NoSQL database management system written in Java. It is a Multi-model database, supporting graph, document and object models, the relationships are managed as in graph databases with direct connections between records. It supports schema-less, schema-full and schema-mixed modes. It has a strong security profiling system based on users and roles and supports querying with Gremlin along with SQL extended for graph traversal. OrientDB uses several indexing mechanisms based on B-tree and Extendible hashing, the last one is known as "hash index". Each record has Surrogate key which indicates the position of the record on disk. Links between records (edges) are stored either as the record's position stored directly inside of the referrer or as B-tree of record positions, that serves as a container of RIDs, which allows fast traversal of one-to-many relationships and fast addition/removal of new links. OrientDB is the 6th most popular graph database according to the DB-Engines graph database ranking, as of January 2024.

Backend as a service (BaaS), sometimes also referred to as mobile backend as a service (MBaaS), is a service for providing web app and mobile app developers with a way to easily build a backend to their frontend applications. Features available include user management, push notifications, and integration with social networking services. These services are provided via the use of custom software development kits (SDKs) and application programming interfaces (APIs). BaaS is a relatively recent development in cloud computing, with most BaaS startups dating from 2011 or later. Some of the most popular service providers are AWS Amplify and Firebase.

QAL is an open-source development project that aims to create a collection of libraries for mixing, moving, merging, substituting and transforming data; also in some cases, such as MongoDB, schemas.

Amazon Aurora is a proprietary relational database offered as a service by Amazon Web Services (AWS) since October 2014. Aurora is available as part of the Amazon Relational Database Service (RDS).

<span class="mw-page-title-main">ArangoDB</span> Multi-model database

ArangoDB is a graph database system developed by ArangoDB Inc. ArangoDB is a multi-model database system since it supports three data models with one database core and a unified query language AQL. AQL is mainly a declarative language and allows the combination of different data access patterns in a single query.

Serverless computing is a cloud computing execution model in which the cloud provider allocates machine resources on demand, taking care of the servers on behalf of their customers. "Serverless" is a misnomer in the sense that servers are still used by cloud service providers to execute code for developers. However, developers of serverless applications are not concerned with capacity planning, configuration, management, maintenance, fault tolerance, or scaling of containers, VMs, or physical servers. When an app is not in use, there are no computing resources allocated to the app. Pricing is based on the actual amount of resources consumed by an application. It can be a form of utility computing.

<span class="mw-page-title-main">Grafana</span> Platform for data analytics and monitoring

Grafana is a multi-platform open source analytics and interactive visualization web application. It can produce charts, graphs, and alerts for the web when connected to supported data sources.

GQL is a standard graph query language published by ISO in April 2024.

An Ordered Key-Value Store (OKVS) is a type of data storage paradigm that can support multi-model database. An OKVS is an ordered mapping of bytes to bytes. It is a more powerful paradigm than Key-Value Store because OKVS allow to build higher level abstractions without the need to do full scans. An OKVS will keep the key-value pairs sorted by the key lexicographic order. OKVS systems provides different set of features and performance trade-offs. Most of them are shipped as a library without network interfaces, in order to be embedded in another process. Most OKVS support ACID guarantees. Some OKVS are distributed databases. Ordered Key-Value Store found their way into many modern database systems including NewSQL database systems.

RavenDB is an open-source document-oriented database written in C#, developed by Hibernating Rhinos Ltd. It is cross-platform, supported on Windows, Linux, and Mac OS. RavenDB stores data as JSON documents and can be deployed in distributed clusters with master-master replication.

References

  1. Peyton, Antony (2022-07-21). "Tech Startup SurrealDB Goes Live with Serverless Cloud Database". eWeek UK. Retrieved 2024-01-19.
  2. Barron, Jenna (2024-05-10). "SD Times Open-Source Project of the Week: SurrealDB". SD Times. Retrieved 2024-05-17.
  3. 1 2 3 4 "Database of Databases — SurrealDB". Database of Databases. 2023-04-04. Retrieved 2024-05-30.
  4. 1 2 Wiggers, Kyle (2023-01-04). "SurrealDB raises $6M for its database-as-a-service offering". TechCrunch. Retrieved 2024-01-19.
  5. "SurrealDB launch marks monumental milestone in the world of data management". UK Tech News. 2023-09-15. Retrieved 2024-01-19.
  6. Wood, Anna. "London's tech scene gets a reboot". Startups Magazine. Retrieved 2024-01-19.
  7. 1 2 3 Šelmeci, Roman (6 Nov 2023). "SurrealDB, AWS DynamoDB and AWS Lambda". Sudolabs.
  8. "SurrealDB: Open source scalable graph database has big potential". devmio - Software Know-How. 2022-08-23. Retrieved 2024-01-19.
  9. 1 2 "SurrealDB | Features | The ultimate multi-model database". SurrealDB. Retrieved 2024-01-19.
  10. Peyton, Antony (2021-09-29). "SurrealDB Keeps it Real with Serverless Cloud Database Launch". eWeek UK. Retrieved 2024-01-19.
  11. Team, TechRound (2024-04-25). "Meet Tobie Morgan Hitchcock, CEO & Co-Founder Of SurrealDB". TechRound. Retrieved 2024-05-17.
  12. Vrcic, Tea (2024-03-06). "10 fast growing UK startups to watch in 2024 and beyond!". EU-Startups. Retrieved 2024-05-17.
  13. Team, TechRound (2023-09-11). "SurrealDB: A Quantum Leap in Database Technology". TechRound. Retrieved 2024-05-17.
  14. "Top 70+ startups in Database as a Service (DBaaS) - Tracxn". tracxn.com. 2024-04-05. Retrieved 2024-05-17.
  15. Morgan Hitchcock, Tobie (1 Nov 2019). "Kellogg College, University of Oxford Whitepaper: "In Search of an Efficient Data Structure for a Temporal-Graph Database"" (PDF). surrealdb.com.
  16. "SurrealDB Unveils Surrealist 2.0, Surpasses MongoDB in Github Popularity » Light Square » World News". lightsquare.org. Retrieved 2024-05-24.