NitrosBase Benchmarks

This section shows NitrosBase performance compared to other technologies

 

NITROSBASE SQL AZURE ACCELERATOR

The features of Microsoft Azure, allow developers to create and distribute applications for a wide range of users. NitrosBase SQL Azure Accelerator greatly accelerates cloud applications and extends Microsoft Azure's power.

NitrosBase SQL Azure Accelerator is specially designed to accelerate access to SQL Azure. Query processing can be accelerated up to 10 000 times!

NitrosBase SQL Azure Accelerator allows for the development of applications with millions of users, without the need for expensive and large datacenters. Even Facebook level applications can be easily developed using NitrosBase SQL Azure Accelerator.

SIMPLE BENCHMARK (SELECT BY "=")

Tested query: SELECT * FROM Product WHERE Price = @parameter

This benchmark shows NitrosBase SQL Azure Accelerator’s ability to accelerate a simple query process. The benchmark runs the query 1000 times with direct access to SQL Azure and 1000 times with the Nitrosbase Accelerator.

SIMPLE BENCHMARK (SELECT BY ">")

Tested query: select * from Product where Price > @parameter

 

This benchmark shows NitrosBase SQL Azure Accelerator’s ability to accelerate a simple query processing. The benchmark runs the query 1000 times with direct access to SQL Azure and 1000 times with the Nitrosbase Accelerator.

FAST AND EASY WEB FORMS

This example shows NitrosBase SQL Azure Accelerator’s proficiency in expediting Web form processing

Enter the first characters for the product name.

RESPONSE TIME TUNING

Microsoft Azure + NitrosBase SQL Azure Accelerator = The Ideal Solution to a Web application’s sluggish response time problem.

This benchmark runs 50 various queries to the database using various parameters, simulating a complex form of interaction with a highly loaded database server.

  • Accelerated form – interacts with the database via NitrosBase SQL Azure Accelerator
  • Non--‐accelerated form --‐ interacts with database via LINQ to SQL.

FAST MVC 3 FORMS

NitrosBase SQL Azure Accelerator can return a typed list of records, and can return the whole query result to WebGrid. In contrast to LINK to SQL, NitrosBase SQL Azure Accelerator reads from the database only the data that is displayed, using automatic paging provided by WebGrid. Even when displaying millions of records in WebGrid, the latency would not exceed one millisecond. FAST ASPX FORMS NBDataSource can be used for displaying data in a grid. NBDataSourse is a simple visual control, which can be tuned without any coding – similar to SQLDataSource. If you need to create an intermediate level, ObjectDataSource can also be used with NitrosBase

THE QUERY

SELECT Product.Name, Supplier.Name
FROM Product join Supplier on Product.SupplierID = Supplier.ID
WHERE Product.Name like @typedtext
ORDER BY Product.Name

All required indexes already created, ObjectDataSource works with ProductsJoin class. This class uses LINQ to SQL to interact with the database.

SAMPLE DATABASE

All benchmarks and demos work with this very simple database

 

 

NitrosBase vs SLQ Server and In-Memory DBMS

This benchmark demonstrates that NitrosBase performs up to  2 000 000 times faster than SQL Server!

Compared database systems

  • NitrosBase Real Time DB (alpha version)
  • Popular SQL Server
  • Well-known In-Memory DBMS

Test platform

  • Intel Core2 Duo E8400 @ 3.00 GHz
  • 2.00 GB@800MHz RAM

Test database 

Table 1 (100 000 records)

Field Name Type Range Comment
ID integer 0 - 100 000 Key, indexed
Int1 integer 0 - 100 000 Random, indexed
Int2 integer 0 - 1 000 000 000 Random, indexed


Table 2 (200 000 records)

Field Name Type Range Comment
ID integer 0 - 200 000 Key, indexed
Int1 integer 0 - 100 000 Foreign key, indexed
Int2 integer 0 - 200 000 Random, indexed


 

Test1 (Response time)

The Test 1 shows the response time – the time from starting query to getting the first 10 records.

Most of Web applications run the huge queries on large amount of data only to show one page of records. For example, 10 top news, 10 top product reviews, etc. A lot of OLTP applications operate with only a few records. Ex, well known TPC-C test performs 90% of its queries resulting into one record. The same with many Telecom and other applications.

Using NitrosBase you will see the result immediately, regardless of volume selected by your query, even if you query returns millions of records.

 

Filling in the tables.

Create all tables and indexes. Add test records.

NitrosBase performs this step
140 times faster than Popular SQL Server.
13 times faster than Well-known In-memory DBMS.

(time in seconds)


 

Select all records

SELECT * FROM Table_1

NitrosBase performs this step
465 554 times faster than Popular SQL Server.
165 times faster than Well-known In-memory DBMS.

(here and later time in microseconds)


 

Select by equal

SELECT * FROM Table_1 WHERE Int1 = @parameter

NitrosBase performs this step
3 800 times faster than Popular SQL Server.
469 times faster than Well-known In-memory DBMS.



 

Select the range

SELECT * FROM Table_1 WHERE Int1 < @parameter

NitrosBase performs this step
39 582 times faster than Popular SQL Server.
82 times faster than Well-known In-memory DBMS.



 

Order by

SELECT * FROM Table_1 ORDER BY Int2

NitrosBase performs this step
655 581 times faster than Popular SQL Server.
75 times faster than Well-known In-memory DBMS.



 

Join query

SELECT * FROM Table_1 JOIN Table_2 ON Table_1.ID = Table_2.Int1

NitrosBase performs this step
2 363 272 times faster than Popular SQL Server.
226 times faster than Well-known In-memory DBMS.




 

Test2 (scanning the query result)

In a contrast to Test 1 this test performs a query and iterates through all records returned by the query. The most of databases differ in query performing time but they are almost the same in scrolling through the query result, except NitrosBase.

 

Iterate through JOIN results

We have performed several queries:

SELECT * FROM Table_1 JOIN Table_2 ON Table_1.ID = Table_2.Int1
WHERE Table_2.Int2 < @parameter

Depending on the parameter the query returns 1000, 10000, 20000 … records.




 

Iterate through simple query results

We have performed several queries:

SELECT * FROM Table_1
WHERE Int1 < @parameter

Depending on the parameter the query returns 1000, 10000, 20000 … records.



 

Iterate through sorted results

We have performed several queries:

SELECT * FROM Table_1
WHERE Int1 < @parameter
ORDER BY Int2

Depending on the parameter the query returns 1000, 10000, 20000 … records.




You can see that NitrosBase is a Real Time DBMS technology.

 

NitrosBase vs STL

Standard Template Library (STL) provides a ready-made set of common classes for C++, such as containers and associative arrays, that can be used with any built-in type and with any user-defined type that supports some elementary operations (such as copying and assignment). STL algorithms are independent of containers, which significantly reduces the complexity of the library.

The STL achieves its results through the use of templates. This approach provides compile-time polymorphism that is often more efficient than traditional run-time polymorphism. Modern C++ compilers are tuned to minimize any abstraction penalty arising from heavy use of the STL.

The STL was created as the first library of generic algorithms and data structures for C++, with four ideas in mind: generic programming, abstractness without loss of efficiency, the Von Neumann computation model, and value semantics.

To work like std::map we have created a table with unique field to hold a key and other field to store an assotiated value. The record in this case is almost identical to pair in stl. Here is the sql to create table:

create table Table1 (Field0 int unique, Field1 int)

To find the pair by the key we use the following query:

select * from Table1 where Field0 = @parameter

Add values.

Find values.