DBDB.io The Encyclopedia of Database Systems · Est. 2017
Database of Databases

Database Entry

SenseiDB


SenseiDB is a distributed database that supports the backend of LinkedIn homepage and LinkedIn Signal. The data is protected by replication and eventual consistency is guaranteed. Driven by a large number of search tasks, SenseiDB is also a efficient search engine on structured metadata and unstructured contents.[03]

Source Code
https://github.com/LinkedInAttic/sensei[02]
Country of Origin
US
Start Year
2012 [09]
End Year
2013 [12]
Project Type
Open Source
Written in
Java
Supported Languages
Java, Python
Operating System
All OS with Java VM
License
Apache v2

Database Entry

SenseiDB


SenseiDB is a distributed database that supports the backend of LinkedIn homepage and LinkedIn Signal. The data is protected by replication and eventual consistency is guaranteed. Driven by a large number of search tasks, SenseiDB is also a efficient search engine on structured metadata and unstructured contents.[03]

History[04]


SenseiDB was initially developed and employed by LinkedIn team in 2012. It was then contributed by a number of engineers across different companies and continents. After three releases, SenseiDB has no longer updated since year 2013.

Concurrency Control[05]


SenseiDB partitions its data within the system to improve processing speed, but it only accepts a single data stream at a time.

Data Model[06]


A SenseiDB instance is a table of data that is organized into columns. Each column may fall into one of the supported types: string, int, long, short, float, double, char, date, text.

Indexes[07][08]


SenseiDB applies an indexing manager called Zoie, which is a real-time search and indexing system. The biggest feature of Zoie is the support for real-time updates while preserving the high-efficiency.

Isolation Levels[05]


The users are responsible for guaranteeing data isolation.

Joins[09]


Joins are not supported in SenseiDB since it is not a strictly relational database.

Query Interface[10]


Browsing Query Language (BQL) is supported by SenseiDB, which has the similar syntax to SQL.

Storage Architecture[03]


Data is replicated in multiple disks to be robust against failures.

Stored Procedures


System Architecture[11]


The entire database is partitioned into a number of shards. Each shard is replicated across N nodes so that there might be more than one shards in a single node. Below is an example of a Sensei cluster.

Views


Citations

12 sources
  1. SenseiDB - Home github.io
  2. GitHub - LinkedInAttic/sensei: distributed realtime searchable database · GitHub github.com
  3. SenseiDB - Overview github.io
  4. SenseiDB - Blogs github.io
  5. SenseiDB - Data Guarantees github.io
  6. Data Modeling github.io
  7. Chapter 5. Indexing github.io
  8. Zoie realtime indexing and search system github.io
  9. SenseiDB Released! github.io
  10. Chapter 10. BQL: Browsing Query Language github.io
  11. SenseiDB - Cluster Overview github.io
  12. SenseiDB 1.6.0 Released! github.io
Revision #10