mod-inventory performance testing

MODDATAIMP-115 - Getting issue details... STATUS MODDATAIMP-137 - Getting issue details... STATUS


 Environment information
Server EnvironmentAWS t2.2xlarge Instance (8 CPUs, 32GB of RAM, up to 3.0 GHz Intel Scalable Processor)
ResourcePOST http://folio-snapshot-latest.aws.indexdata.com/inventory/instances
Request body{
"hrid" : "in00000999",
"source" : "MARC",
"title" : "Futures, biometrics and neuroscience research Luiz Moutinho, Mladen Sokele, editors",
"alternativeTitles" : [ ],
"editions" : [ ],
"series" : [ "Innovative research methodologies in management / Luiz Moutinho, Mladen Sokele ; Volume 2", "Innovative research methodologies in management Volume 2" ],
"identifiers" : [ {
"identifierTypeId" : "5d164f4b-0b15-4e42-ae75-cfcf85318ad9",
"value" : "101073931X"
}, {
"identifierTypeId" : "8261054f-be78-422d-bd51-4ed9f33c3422",
"value" : "3319643991"
}, {
"identifierTypeId" : "8261054f-be78-422d-bd51-4ed9f33c3422",
"value" : "9783319643991"
}, {
"identifierTypeId" : "8261054f-be78-422d-bd51-4ed9f33c3422",
"value" : "9783319644004"
}, {
"identifierTypeId" : "7e591197-f335-4afb-bc6d-a6d76ca3bace",
"value" : "(OCoLC)ocn992783736"
}, {
"identifierTypeId" : "7e591197-f335-4afb-bc6d-a6d76ca3bace",
"value" : "(OCoLC)992783736"
}, {
"identifierTypeId" : "7e591197-f335-4afb-bc6d-a6d76ca3bace",
"value" : "(DE-599)GBV101073931X"
} ],
"contributors" : [ {
"contributorNameTypeId" : "2b94c631-fca9-4892-a730-03ee529ffe2a",
"name" : "Moutinho, Luiz",
"contributorTypeId" : null,
"contributorTypeText" : null
}, {
"contributorNameTypeId" : "2b94c631-fca9-4892-a730-03ee529ffe2a",
"name" : "Sokele, Mladen",
"contributorTypeId" : null,
"contributorTypeText" : null
} ],
"subjects" : [ "Betriebswirtschaftslehre", "Management", "Wissenschaftliche Methode" ],
"classifications" : [ ],
"publication" : [ {
"publisher" : "Palgrave Macmillan",
"place" : "Cham",
"dateOfPublication" : "[2018]",
"role" : null
} ],
"publicationFrequency" : [ ],
"publicationRange" : [ ],
"electronicAccess" : [ {
"uri" : "http://www.gbv.de/dms/zbw/101073931X.pdf",
"linkText" : "Electronic resource (PDF)",
"materialsSpecification" : null,
"publicNote" : "Address for accessing the table of content. PDF file",
"relationshipId" : null
} ],
"instanceTypeId" : "a2c91e87-6bab-44d6-8adb-1fd02481fc4f",
"instanceFormatIds" : [ ],
"physicalDescriptions" : [ "xxix, 224 Seiten Illustrationen" ],
"languages" : [ "eng" ],
"statisticalCodeIds" : [ ]
}
Request headers

content-type: application/json
x-okapi-tenant: diku
x-okapi-token: [token]

Request client

The tool we used to send requests is JMeter tool with preconfigured thread group. We were changing the "Number of threads" property for different test cases (1,2,4,8,16). Each thread will execute the test plan in its entirety and completely independently of other test threads. Each thread simulates a real user requesting to the server under a test. Multiple threads are used to simulate concurrent connections to server application. JMeter tool is configured on separate local Windows machine: Intel core i7, 16GB RAM. Keep in mind that mod-inventory calls mod-inventory-storage to save an incoming Instance. In it's turn, the mod-inventory-storage does SQL insert query.
And yes, multi-threading is bandaid in this case, and we created specific Jira tickets to receive a batch of Instances in one request ( MODINV-119 - Getting issue details... STATUS ).
If you would need more details about test plan, here is it PostInstanceTestPlan.jmx

 Posting 28000 FOLIO Instances in 1 thread
Test case start time05:31:46.918
Test case end time07:54:06.257
Test case duration2h 23mins
Average Response time304 ms
Average sending capacity = 28000 / Test case duration3.2 Instances per 1 second

 Posting 28000 FOLIO Instances in 2 threads (14000 per thread)
Test case start time20:56:34.592
Test case end time22:12:31.183
Test case duration1h 14mins
Average Response time344ms
Average sending capacity = 28000 / Test case duration6.3 Instances per 1 second

 Posting 28000 FOLIO Instances in 4 threads (7000 per thread)
Test case start time22:32:34.119
Test case end time23:09:31.770
Test case duration37mins
Average Response time317ms
Average sending capacity = 28000 / Test case duration12.6 Instances per 1 second

 Posting 28000 FOLIO Instances in 8 threads (3500 per thread)
Test case start time10:40:46.639
Test case end time11:00:11.094
Test case duration20mins
Average Response time329ms
Average sending capacity = 28000 / Test case duration23.3 Instances per 1 second

 Posting 28000 FOLIO Instances in 16 threads (1750 per thread)
Test case start time11:17:07.248
Test case end time11:29:21.007
Test case duration12mins
Average Response time415ms
Average sending capacity = 28000 / Test case duration38.8 Instances per 1 second