[ 
https://issues.apache.org/jira/browse/SYNCOPE-1199?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Iurii Smyrnov updated SYNCOPE-1199:
-----------------------------------
    Description: 
*AnyObjetcTO's creation time (latency) grows with it's quantity.*

Testing results are attached (Latency in milliseconds).

Note: We've tested PostgreSQL DB directly (without Syncope) and we've got 
stable AnyObjetcTO's creation time (not increasing).

To reproduce the issue please do next :
User Syncope 2.0.4 or 2.0.4 and  + PostgreSQL 9 

URI: http://localhost:9080/syncope/rest/anyObjects 
http headers:
 1.Content-Type / application/json
  2 Accept / application/json
  3 Authorization / Basic YWRtaW46cGFzc3dvcmQ=
verb: POST
body:
    {
     "plainAttrs":[
      {
       "values":[
         "test-value"
       ],
       "schema":"roleEntitlements"
      }
     ],
    "type":"RoleAT",
    "realm":"/",
    "@class":"org.apache.syncope.common.lib.to.AnyObjectTO",
    "auxClasses":["RoleATClass"],
    "name":"Role_Account_1"
  }
  

  was:
*AnyObjetcTO's creation time (latency) grows with it's quantity.*
We create AnyObjetcTO entities (our custom RoleAT type).

Testing results are attached (Latency in milliseconds).

Note: We've tested PostgreSQL DB directly (without Syncope) and we've got 
stable AnyObjetcTO's creation time (not increasing).

To reproduce the issue please do next :
User Syncope 2.0.4 or 2.0.4 and  + PostgreSQL 9 - you could test our 
environment IDP project .
To install it you should have docker.

To build IDP project:
 1. build https://github.com/Talend/platform-services/tree/master/btools
        1.1 cd ../platform-services/btools
        1.2 call: gradle clean build publish
        
 2. build https://github.com/Talend/platform-services/tree/master/microservices
  2.1 cd ../platform-services/microservices
  2.2 call: gradle clean buildDocker - it will create microservices docker image
  
 3. build https://github.com/Talend/platform-services/tree/master/iam/idp
  3.1 cd ../platform-services/iam/idp
  3.2 call: gradle clean buildDocker - it will create idp docker image
  3.3 cd ../platform-services/iam/idp/build
  3.4 call: docker-compose up - start containers
  3.5 call: docker-compose ps - you will see containers list like:
  
     Name                  Command              State                           
      Ports
------------------------------------------------------------------------------------------------------------------------
build_db_1    docker-entrypoint.sh postgres   Up      0.0.0.0:5432->5432/tcp
build_idp_1   sh bin/start_tomcat.sh jpda     Up      0.0.0.0:8000->8000/tcp, 
8080/tcp, 8443/tcp, 0.0.0.0:9080->9080/tcp
 
 4. wait for IDP is started: ←[33midp_1  |←[0m 16-Aug-2017 15:33:57.506 INFO 
[main] org.apache.catalina.startup.Catalina.start Server startup in 95832 ms
 
 5. To test syncope performance you  could use our test with jmeter:
  5.1 install jmeter
  5.2 our test 
https://github.com/Talend/platform-services/blob/master/performance-tests/src/main/resources/CreateRoleTestSyncope.jmx
 open by jmeter
  5.3 update test:
      5.3.1 quntity to create in jmeter here: CreateRoleTestSyncope -> 
${__P(nbOfAccountsToCreate, 3000)} to set ${__P(nbOfAccountsToCreate, 1000)} 
for example
          5.3.2 if you use UNIX - updated CreateRoleTestSyncope -> from 
${__P(host, 192.168.99.100)}  to ${__P(host, localhost)}  - 192.168.99.100 host 
for Windows
  5.4 results are saved in ../<jmeter_path>/bin/CreateRoleSyncopeResults.csv 
(you could update) in CreateRoleTestSyncope ->  View Results Tree Report -> 
Filename
  5.5 request is here: CreateRoleTestSyncope -> CreateRoleThread -> Loop 
Controller -> Create Role Request
  5.6 run it
  5.7 responses list you will see : CreateRoleTestSyncope ->  View Results Tree 
Report
  
 6. if you want use some other way to test here are options to create requests:
  6.1 URI: http://192.168.99.100:9080/syncope/rest/anyObjects -for WIndows, for 
Unix http://localhost:9080/syncope/rest/anyObjects
  6.2 http headers:
    6.2.1 Content-Type / application/json
        6.2.2 Accept / application/json
        6.2.3 Authorization / Basic YWRtaW46cGFzc3dvcmQ=
  6.3 verb: POST
  6.4 body:
    {
     "plainAttrs":[
      {
       "values":[
         "TDP_DATASET_CERTIFY"
       ],
       "schema":"roleEntitlements"
      }
     ],
    "type":"RoleAT",
    "realm":"/",
    "@class":"org.apache.syncope.common.lib.to.AnyObjectTO",
    "auxClasses":["RoleATClass"],
    "name":"Role_Account_1"
  }
  


> Syncope performance: AnyObjetcTO's creation time grows with it's quantity
> -------------------------------------------------------------------------
>
>                 Key: SYNCOPE-1199
>                 URL: https://issues.apache.org/jira/browse/SYNCOPE-1199
>             Project: Syncope
>          Issue Type: Bug
>    Affects Versions: 2.0.2, 2.0.4
>         Environment: Syncope 2.0.2 and 2.0.4 + PostgreSQL 9; Jmeter;
> https://github.com/Talend/platform-services/tree/master/iam/idp
>            Reporter: Iurii Smyrnov
>         Attachments: Latency for 1000 create roles (directly syncope 2.0.4) 
> no SCIM.csv, Latency for 1000 create roles (directly syncope 2.0.4).png, 
> Latency for 1037 create roles (directly syncope 2.0.2) no SCIM.csv, Latency 
> for 1037 create roles (directly syncope 2.0.2).png, Latency for 3000 create 
> roles (directly syncope 2.0.2).csv, Latency for 3000 create roles (directly 
> syncope 2.0.2).png
>
>
> *AnyObjetcTO's creation time (latency) grows with it's quantity.*
> Testing results are attached (Latency in milliseconds).
> Note: We've tested PostgreSQL DB directly (without Syncope) and we've got 
> stable AnyObjetcTO's creation time (not increasing).
> To reproduce the issue please do next :
> User Syncope 2.0.4 or 2.0.4 and  + PostgreSQL 9 
> URI: http://localhost:9080/syncope/rest/anyObjects 
> http headers:
>  1.Content-Type / application/json
>   2 Accept / application/json
>   3 Authorization / Basic YWRtaW46cGFzc3dvcmQ=
> verb: POST
> body:
>     {
>      "plainAttrs":[
>       {
>        "values":[
>          "test-value"
>        ],
>        "schema":"roleEntitlements"
>       }
>      ],
>     "type":"RoleAT",
>     "realm":"/",
>     "@class":"org.apache.syncope.common.lib.to.AnyObjectTO",
>     "auxClasses":["RoleATClass"],
>     "name":"Role_Account_1"
>   }
>   



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to