NosDB Overview

NosDB is a 100% native .NET Open Source NoSQL Database with JSON schema (released under Apache 2.0 License). NosDB is extremely fast and linearly scalable. It also helps you accelerate your development through its flexible JSON schema.

Extreme Performance and Linear Scalability

Performance: NosDB is extremely fast because it incorporates in-memory caching both within the database servers and also in the client API. Server-side caching means your transactions run much faster in the database server.

And, client-side caching (also called "Client Cache") is an NCache feature that keeps frequently used data within your client application process while keeping it synchronized with the database. This gives a major performance boost to your application.

Linear Scalability: NosDB has a linearly scalable architecture. It builds a sharded cluster of database servers and allows you to add shards at runtime as your load increases. This means your database never becomes a bottleneck like relational databases do. NosDB supports Range-Based Sharding and Hash-Based Sharding.

As a result, NosDB lets you handle extreme transaction loads without any database slowdowns.

Rapid Development

Flexible JSON Schema: NosDB provides a very flexible JSON schema that allows you to do iterative development faster and more easily. NosDB JSON schema also simplifies database programming because it is much closer to your application's object model than a relational database. As a result, you're able to develop to market faster and then handle changing requirements more easily.

Powerful SQL & LINQ Querying: NosDB provides a powerful SQL and LINQ for querying and modifying data in the database. You can use the standard SQL or extended SQL with JSON support for your queries. You can also choose to use LINQ from within your .NET application to do database searching.

ADO.NET Provider: NosDB is primarily focused on the .NET development community and therefore has implemented an ADO.NET provider. This gives you a familiar API for database programming and also for connection with third party controls in WinForms or WebForms applications. You can also use third-party tools that work on ADO.NET.

Map Reduce & Aggregation for Big Data: NosDB allows you to do Big Data processing and analysis in .NET (both offline and real-time). You can develop MapReduce and Aggregation code in .NET and run it in parallel on a NosDB database cluster for large data sets.

Analytics thru Microsoft Power BI: NosDB provides integration with Microsoft Power BI that helps transform your data into very rich and easy to understand visuals. This allows you to understand your data much better and spot trends as they occur.


Data Consistency & High Availability

Data Consistency: NosDB ensures that your data is always consistent throughout the database cluster. To achieve this, NosDB provides cluster-wide ACID transactions at a document level. Additionally, NosDB uses Journal-based updates so even if a server crashes during your updates, your data is never corrupted.

High Availability (100% uptime): NosDB is architectured to be highly available through a self-healing and dynamic database cluster. You can create a sharded database cluster for scalability and within each shard, you can specify one or more dedicated or shared replicas. Shared replica is created on the primary server of another shard. All of this ensures that even if a database server goes down, the dedicated or shared replica is immediately and seamlessly available to the applications without any interruptions.

Multi-Data Center Support: You can run NosDB across multiple data centers either for geographic load balancing or for disaster recovery or both. NosDB provides location based sharding to spread your database to multiple data centers.

Security: NosDB provides security for your database. First, it provides two authentication modes, namely Active Directory authentication and NosDB authentication. Secondly, it provides role based authorization. And, finally it provides SSL and TLS support for secured connections to the database.


Management & Operations

NosDB Manager (GUI Tool): NosDB is very easy to configure with NosDB Manager and it's explorer style interface. You can create and administer clusters, databases, collections, and more from a single place.

NosDB Monitor (GUI Tool): NosDB provides powerful dashboard styled graphical monitoring tool called NosDB Monitor. Monitor a variety of different aspects of your cluster and databases from this tool.

PerfMon Counters: All the information showing in NosDB Monitor and more is available as standard PerfMon counters so you can view them from third party tools as well.

PowerShell Support: NosDB provides full PowerShell integration. This allows you to fully administer NosDB from within PowerShell and create scripts for automated deployments.

Disaster Recovery (Backup/Restore): NosDB provides backup and restore tools. You can do full backup and differential backup from a live database and then restore it at a later point in time.


Client APIs

NosDB is a native .NET NoSQL Database. This means that the database servers must run on Windows (and soon will be available on Linux through .NET Core). But, NosDB supports multiple client APIs.

.NET Client API: NosDB provides a rich native .NET Client API to give your .NET applications access to all the features of NosDB.

Java Client API: NosDB provides a native Java API that is identical to the .NET API in features. This Java client API is available on both Windows and Linux platforms.

REST API: NosDB provides a REST API with most features of the regular API. You can use this REST API from any programming language including Node.js, Python, PHP, and others.