Through the comparison with others, you can see the performance of Machbase
PERFORMANCE COMPARISON
FUNCTIONAL COMPARISON TABLE
Machbase 3.5.0 MongoDB 3.2.6 Splunk 6.4.0 MySQL 5.7.12 Elasticsearch 2.3.3 Cassandra 3.7
SQL O X X O X △(CQL)
Time Series Query O X O X O X
IP type support O X X X O X
Full text search O O O O X
Data Compress Best Poor Poor(index only) Poor Poor Good
TEST SERVER ENVIRONMENT
OS CentOS 6.6
CPU Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz(4 core)
MEMORY 32GB
STORAGE TOSHIBA MC04ACA400E (SATAIII) FP2A Firmware
Machbase mongoDB splunk MySQL Elasticsearch Cassandra
Test Framework
SAMPLE FILE SCHEMA
Field Name arrivaltime srcip srcport dstip dstport protocol eventlog eventcode eventsize
Field Type datetime ipv4 integer ipv4 integer short varchar(1024) short long
Record Size 123 byte
Record Count 100 million
DATA LOADING TIME(sec)
This graph shows the total time to enter 100 million data into each database and index them.
Using Machbase is the fastest way to load them as you see from this graph. It takes 450 seconds for InifiniFlux to do.
STORAGE SIZE : data + index(GB)
This graph shows the size of storage space that is used to enter 13GB original data into each database. Machbase achieves superior compression to other products. Machbase has 4.64GB storage space
TEXT SEARCH : 33.9M Record Results(sec)
Machbaseselect count(*) from sampletable where eventlog search 'bin view';
MongoDBdb.sampletable.find({$and:[{"eventlog":/bin/},{"eventlog":/view/}]}).count()
splunksearch 'source="sample.csv" eventlog="*bin*" | search eventlog="*view*" | stats count as Count'
MySQLselect count(*) from sampletable where eventlog like '%bin%' and eventlog like '%view%';
Elasticsearchcurl -XGET 'http://localhost:9200/myindex/mytype/_count?pretty' -d '{ "query": { "bool": { "must": [ { "match": { "eventlog": "*bin*" } }, { "match": { "eventlog" : "*view*" } } ] } } }'
This graph shows the amount of time to retrieve strings, which have 33.9 million result sets, from 100 million data using each database. Machbase retrieves them very fast.
All is the result after clearing OS caches.
Cassandra doesn't support text search. there is no result of it.
IP SEARCH : 2.6M Record Results(sec)
Machbaseselect count(*) from sampletable where srcip = '153.*.*.*';
MongoDBdb.sampletable.find( { srcip : /^153.\d+.\d+.\d+/} )
splunksearch 'source="sample.csv" srcip="153.*.*.*" | stats count as Count
MySQLselect count(*) from sampletable where srcip like '153.%';
Elasticsearchcurl -XGET 'http://localhost:9200/myindex/mytype/_count?pretty' -d '{ "query": { "range": { "srcip": { "gte": "153.0.0.0", "lte": "153.255.255.255" } } } }'
This graph shows the amount of time to retrieve IPs, which have 2.6 million result sets, from 100 million data using each database. Machbase makes processing extremely fast to retrieve them. It takes 0.63 second for InifiniFlux to retrieve them.
TIME SEARCH : 268K Record Results (sec)
Machbaseselect count(*) from sampletable duration 10 minute before to_date('2015-05-20 12:20:00');
MongoDBdb.sampletable.find( {at:{$gte:"2015-05-20 12:10:00",$lte:"2015-05-20 12:20:00"} } )
splunksearch 'source="sample.csv" earliest=05/20/2015:12:10:00 latest=05/20/2015:12:20:00 | stats count as Count'
MySQLselect count(*) from sampletable where at >= '2015-05-20 12:10:00' and at <= '2015-05-20 12:20:00';
Elasticsearchcurl -XGET 'http://localhost:9200/myindex/mytype/_count?pretty' -d '{ "query": { "bool": { "must": [ { "range": { "at": { "from": "2015-05-20 12:10:00", "to": "2015-05-20 12:20:00" } } } ] } } }'
This graph shows the amount of time to retrieve the ranges of time, which have 268,000 result sets, from 100 million data using each database. Using Machbase is the fastest way to retrieve them. It takes 0.04 second for Machbase to do.
COMPLEX SEARCH(sec)
Machbaseselect eventcode, count(*), sum(eventsize) from sampletable where srcip='153.*.*.*' group by eventcode having sum(eventsize) > 100 limit 100 duration 2 month after to_date('2015-05-20 12:00:00');
MongoDBdb.sampletable.aggregate([{$match : {$and:[{at:{$gt:"2015-05-20 12:00:00"}}, {srcip:/^153.\d+.\d+.\d+/}]}}, { $group : {_id:"$eventcode", count:{$sum:1}, sum:{$sum:$eventsize"}}}, {$sort : {eventcode : -1}},{$limit:100},{$match:{sum:{$gt:100}}}])
splunksearch 'source=".sample.csv" srcip="153.*.*.*" earliest=05/20/2015:12:00:00 | stats count as Count, sum(eventsize) as Sumsize by eventcode | where Sumsize > 100 | sort - Time | head 100'
MySQLselect eventcode, count(*), sum(eventsize) from sampletable where srcip like '153.%' and at >= '2015-05-20 12:00:00' group by eventcode having sum(eventsize) > 100 order by eventcode desc limit 100;
Elasticsearchcurl -XGET 'http://localhost:9200/myindex/mytype/_search?pretty' -d '{ "size":1000, "query": { "bool": { "must": [ { "range": { "srcip": { "gte": "153.0.0.0", "lte": "153.255.255.255" } } }, { "range": { "at": { "gte": "2015-05-20 12:00:00" } } , "must_not": [], "should": [] } }, "aggs": { "group_by_code": { "terms": { "field": "eventcode", "size": 100, "order" : {"sum_size" : "desc" } }, "aggs": { "sum_size": { "sum": { "field": "eventsize" } } }, count_code": { "value_count": { "field": "eventcode" } } } } }}'
This graph shows the amount of time to retrieve the data such as sum, avg, the range of time, etc. with executing complicated query statements in each database. Machbase retrieves them very fast. It takes 5.41 seconds for Machbase to do.
OVERALL RESULTS : loading + search(sec)
This graph shows the total time to load the data and retrieve those with executing 7 statements in each database. Machbase is faster than any other products as you see from this graph. It takes 559 seconds for Machbase to load and retrieve the data. MySQL nd Elasticsearch are also fast to execute complicated query statements, but are slow to load the data. Therefore, the total time to do both tasks is much longer than that of Machbase.
This test results are performed by Machbase R&D Center in May of 2016. Machbase informs that they can be changed depending on testing environments, and test data cannot be in the form of absolute performance measure.
Cassandra does not support SQL syntax such as GROUP BY, ORDER BY, LIMIT, LIKE. So there are no results of search criteria.
How do you start?
Download Machbase and Install First

Contact sales team at sales@machbase.com for more information