Skip to content

Latest commit

 

History

History
 
 

oak-mk-perf

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
This module contains performance tests for microkernel instances.

1. Usage

    The tests can be launched locally by calling directly the remote profile from the pom file using the following commands:
        mvn clean test -Premote -Poakmk   - for launching the tests against the oak microkernel or
        mvn clean test -Premote -Pmongomk - for launching the tests against the mongodb microkernel.
        
    More than that the tests can be launched remotely, for example on an mongodb cluster.In this case the pom file uploads 
    the tests to the remote machine, runs them and collects the results.Use the following commands to remotely run the tests:
    
        mvn clean process-test-classes -Plocal -Pmongomk(or -Poakmk the microkernel used in tests) -Dremotehost=<remotehost> -Dpass=<ssh-password for the remote machine>   

2. The test environment (mongodb cluster)
    
    For measuring the performance of the sharedcloud microkernel, I created a mongodb cluster in amazon cloud with the following components:
        - 2 shards ( in the same time, replica sets) - each of it with 2 nodes installed on different platforms
        - 3 configuration servers all of them installed on one platform
        - 1 mongos instance
        
        The sharding is enabled and I'm using the following sharding key : {"path" :1, "revId":1}.I changed also the chunk size from 64 to 8 (MB).


3.Tests

    All the tests bellow were launched remotely on amazon cloud for both types of microkernel (oak and sharedcloud).The tests are all executed on the platform where the mongos instance is installed.
        
    MkAddNodesDifferentStructuresTest.testWriteNodesSameLevel 
    Creates 100000 nodes, all having the same parent node.All the nodes are added in a single microkernel commit.    
    oakmk 6.1    mongomk 11.4
    
    MkAddNodesDifferentStructuresTest.testWriteNodes10Children 
    Creates 100000 nodes, in a pyramid tree structure.All of the nodes have 10 children.All the nodes are added in a single microkernel commit. 
    oakmk 3.6    mongomk 12.3
    MkAddNodesDifferentStructuresTest.testWriteNodes100Children 
    Creates 100000 nodes, in a pyramid tree structure.All of the nodes have 100 children.All the nodes are added in a single microkernel commit. 
    oakmk 2.8    mongomk 11.1
    
    MkAddNodesDifferentStructuresTest.testWriteNodes1000Children 
    Creates 100000 nodes, in a pyramid tree structure.All of the nodes have 1000 children.All the nodes are added in a single microkernel commit. 
    oakmk 2.7    mongomk 11.9
    
    MkAddNodesDifferentStructuresTest.testWriteNodes1Child
    Creates 100 nodes, each node has only one child, so each of it is on a different tree level.All the nodes are added in a single microkernel commit.
    oakmk 0.008  mongomk 0.5
    
    MkAddNodesMultipleCommitsTest.testWriteNodesAllNodes1Commit
    Create 10000 nodes, in a pyramid tree structure.All of the nodes have 100 children.Only one microkernel commit is performed for adding the nodes.
    oakmk 0.14   mongomk 1.4 
    
    MkAddNodesMultipleCommitsTest.testWriteNodes50NodesPerCommit
    Create 10000 nodes, in a pyramid tree structure.All of the nodes have 100 children.The nodes are added in chunks of 50 nodes per commit.
    oakmk 0.41   mongomk Failure
    
    MkAddNodesMultipleCommitsTest.testWriteNodes1000NodesPerCommit   
    Create 10000 nodes, in a pyramid tree structure.All of the nodes have 100 children.The nodes are added in chunks of 1000 nodes per commit.
    oakmk 0.2    mongomk 3.5
    
    MkAddNodesMultipleCommitsTest.testWriteNodes1NodePerCommit
    Create 10000 nodes, in a pyramid tree structure.All of the nodes have 100 children.Each node is individually added.
    oakmk 8.3    mongomk Failure
    
    MKAddNodesRelativePathTest.testWriteNodesSameLevel
    Create 1000 nodes, all on the same level.Each node is individually added (in a separate commit).Each node is added using the relative paths in the microkernel commit method.
    oakmk 3  mongomk 150
    
    MKAddNodesRelativePathTest.testWriteNodes10Children 
    Create 1000 nodes, each of them having exactly 10 children.Each node is individually added (in a separate commit).Each node is added using the relative paths in the microkernel commit method. 
    oakmk 4.2    mongomk Failure
    
    MKAddNodesRelativePathTest.testWriteNodes100Children 
    Create 1000 nodes, each of them having exactly 100 children.Each node is individually added (in a separate commit).Each node is added using the relative paths in the microkernel commit method. 
    oakmk 4.1    mongomk Failure