Databases - Others
Flat file database
A flat file database is a database stored as an ordinary unstructured file called a "flat file". To access the structure of the data and manipulate it on a computer system, the file must be read in its entirety into the computer's memory. Upon completion of the database operations, the file is again written out in its entirety to the host's file system. In this stored mode the database is said to be "flat", meaning that it has no structure for indexing and there are usually no structural relationships between the records. A flat file can be a plain text file or a binary file.
https://en.wikipedia.org/wiki/Flat_file_database
ScyllaDB
ScyllaDB’s close-to-the-metal architecture handles millions of OPS with predictable single-digit millisecond latencies.
ScyllaDB is an open-source distributed wide-column NoSQL database offering high availability, scalability and fault-tolerance, all while maintaining predictable low latencies and high throughput. ScyllaDB is compatible with both Apache Cassandra (CQL, SSTables) and Amazon DynamoDB interfaces. Written in C++, ScyllaDB uses the highly asynchronous shard-per-core, shared-nothing Seastar framework (http://seastar.io/), where each thread executes on its own CPU core, memory, and multi-queue network interface controller. Cross-core communication is carried out by explicit asynchronous, message passing.
- Real-time big data database
- Shared nothing architecture
- NoSQL Database
- Written in C++
- ScyllaDB does not support ACID transactions as in RDBMS.
- ScyllaDB supports CQL Light-Weight Transactions (LWT), which allow for compare-and-set (CAS) operations and strict linearizability using a Paxos consensus algorithm.
- Alternative - Cassandra
- Architecture - ScyllaDB | Modern NoSQL Database Architecture
- ScyllaDB vs Cassandra - ScyllaDB
- Compare NoSQL Databases: ScyllaDB vs MongoDB vs PostgreSQL - ScyllaDB
Links
- ScyllaDB | Monstrously Fast + Scalable NoSQL
- GitHub - scylladb/scylladb: NoSQL data store using the seastar framework, compatible with Apache Cassandra
- Scylla - Database of Databases
- ScyllaDB is better than Cassandra, and here’s why.
- Getting the Most out of Lightweight Transactions in ScyllaDB - ScyllaDB
- Why does Apple use Cassandra when ScyllaDB is so much better and faster? - Quora
- ScyllaDB In Action | By Bo Ingram, Staff Engineer at Discord
RocksDB
A Persistent Key-Value Store for Flash and RAM Storage by Facebook Database Engineering Team
This code is a library that forms the core building block for a fast key value server, especially suited for storing data on flash drives. It has a Log-Structured-Merge-Database (LSM) design with flexible tradeoffs between Write-Amplification-Factor (WAF), Read-Amplification-Factor (RAF) and Space-Amplification-Factor (SAF). It has multi-threaded compactions, making it specially suitable for storing multiple terabytes of data in a single database.
Features
-
High Performance
RocksDB uses a log structured database engine, written entirely in C++, for maximum performance. Keys and values are just arbitrarily-sized byte streams.
-
Optimized for Fast Storage
RocksDB is optimized for fast, low latency storage such as flash drives and high-speed disk drives. RocksDB exploits the full potential of high read/write rates offered by flash or RAM.
-
Adaptable
RocksDB is adaptable to different workloads. From database storage engines such as MyRocks to application data caching to embedded workloads, RocksDB can be used for a variety of data needs.
-
Basic and Advanced Database Operations
RocksDB provides basic operations such as opening and closing a database, reading and writing to more advanced operations such as merging and compaction filters.
IndexedDB
IndexedDB is a large-scale, NoSQL storage system. It lets you store just about anything in the user's browser. In addition to the usual search, get, and put actions, IndexedDB also supports transactions. Here is the definition of IndexedDB on MDN:
"IndexedDB is a low-level API for client-side storage of significant amounts of structured data, including files/blobs. This API uses indexes to enable high performance searches of this data. While DOM Storage is useful for storing smaller amounts of data, it is less useful for storing larger amounts of structured data. IndexedDB provides a solution."
Each IndexedDB database is unique to an origin (typically, this is the site domain or subdomain), meaning it cannot access or be accessed by any other origin.Data storage limits are usually quite large, if they exist at all, but different browsers handle limits and data eviction differently.
Mnesia
Mnesiais a distributed, soft real-timedatabase management system written in the Erlang programming language. It is distributed as part of the Open Telecom Platform
Emqtt and RabbitMQ uses Mnesia database
A distributed telecommunications DBMS.
The following are some of the most important and attractive capabilities provided by Mnesia:
- A relational/object hybrid data model that is suitable for telecommunications applications.
- A DBMS query language, Query List Comprehension (QLC) as an add-on library.
- Persistence. Tables can be coherently kept on disc and in the main memory.
- Replication. Tables can be replicated at several nodes.
- Atomic transactions. A series of table manipulation operations can be grouped into a single atomic transaction.
- Location transparency. Programs can be written without knowledge of the actual data location.
- Extremely fast real-time data searches.
- Schema manipulation routines. The DBMS can be reconfigured at runtime without stopping the system.
https://en.wikipedia.org/wiki/Mnesia
http://erlang.org/doc/man/mnesia.html
https://github.com/erlang/otp/tree/master/lib/mnesia
LevelDB
LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.
Features
- Keys and values are arbitrary byte arrays.
- Data is stored sorted by key.
- Callers can provide a custom comparison function to override the sort order.
- The basic operations arePut(key,value),Get(key),Delete(key).
- Multiple changes can be made in one atomic batch.
- Users can create a transient snapshot to get a consistent view of data.
- Forward and backward iteration is supported over the data.
- Data is automatically compressed using the Snappy compression library.
- External activity (file system operations etc.) is relayed through a virtual interface so users can customize the operating system interactions.
https://github.com/google/leveldb
Gorilla TSDB (Used by Prometheus for storing metrics)
https://blog.acolyer.org/2016/05/03/gorilla-a-fast-scalable-in-memory-time-series-database
CockroachDB
CockroachDB is a cloud-native SQL database for building global, scalable cloud services that survive disasters.
CockroachDB is a distributed SQL database built on a transactional and strongly-consistent key-value store. Itscales horizontally;survivesdisk, machine, rack, and even datacenter failures with minimal latency disruption and no manual intervention; supportsstrongly-consistentACID transactions; and provides a familiarSQLAPI for structuring, manipulating, and querying data.
https://github.com/cockroachdb/cockroach
AresDB
A GPU-powered real-time analytics storage and query engine. It features low query latency, high data freshness and highly efficient in-memory and on disk storage management.
https://github.com/uber/aresdb
Riak
Riak is a distributed NoSQL key-value data store that offers high availability, fault tolerance, operational simplicity, and scalability. In addition to the open-source version, it comes in a supported enterprise version and a cloud storage version. Riak implements the principles from Amazon's Dynamo paper with heavy influence from the CAP Theorem. Written in Erlang, Riak has fault tolerant data replication and automatic data distribution across the cluster for performance and resilience.
The Riak product line of distributed databases is built on a set of core services providing a highly reliable, scalable distributed systems framework.RiakKV is a distributed NoSQL database.RiakTS is builton the same core foundation as RiakKV and is highly optimized for IoT and time series data.Riak also integrates with RiakS2 to optimize large object storage, and integrates with other data services including Apache Spark, Redis Caching, Apache Solr, and Apache Mesos.
https://en.wikipedia.org/wiki/Riak