1. Introduction

This document describes the

  • test environment,

  • the hardware used,

  • the procedures applied and

  • the results of the test.

The test has been executed as part of the e-Spirit module certification process.

2. Test environment

2.1. FirstSpirit Server Configuration

The FirstSpirit Server and the translationstudio Application Service were both hosted on the same physical machine with the following software and hardware capabilities:

  • System
    Debian GNU/Linux 9 (stretch) (amd64)

  • CPU
    Intel® Core™ i3-3220T CPU @ 2.80GHz

  • Memory
    8.0 GB

  • Java Version
    Java HotSpot 64-Bit Server VM Version 1.8.0_191-b12

  • FirstSpirit Server +m not sure if this could Version 5.2.190105.78007

2.2. translationstudio

A docker container based on debian:buster with openjdk-11-jdk python3 python3-pandas python3-matplotlib installed was used to run translationstudio.

translationstudio was started using the following memory parameters:

-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=log/crash.hprof
-XX:InitialHeapSize=129219968
-XX:MaxHeapSize=2067519488
-XX:+UseCompressedClassPointers
-XX:+UseCompressedOops

2.3. FirstSpirit

This test was performed on a server running a recent FirstSpirit version.

2.4. Database

This test used a H2 embedded database version 1.4.196.

3. Test Procedure

The following test consisted of the consecutive translation of datasets and pages.

Before the actual test was carried out, translationstudio triggert a FirstSpirit server task thath

  1. Create 10,000 datasets

  2. Create 10,000 pages and sitestore references

  3. Execute a dataset translation workflow

  4. Notify translationstudio to start the actual test

Upon notification, translationstudio triggers the subsequent tests.

3.1. Translation of Datasets

The aim of the procedure applied is to forwards 10,000 datasets simultaneously and to complete the entire translation process.

The test used a special Translation Memory System connector which took the source translatable XML and forwarded it to the import process after the translation status had been requested. The files were not modified in any way.

The procedure consists of the following parts:

  1. Create task tickets representing 20 datasets each

  2. Forward the translation requests to translationstudio Application

  3. Store the translation requests in the translationstudio database

  4. Create and process a single translation job containing 10,000 datasets

  5. Export the datasets to the file system

  6. Create translatable XML files

  7. Create additional message files for each translatable XML (i.e. querying all task tickets)

  8. Forward the translatable XML files to the Test Connector

  9. Query status of each translatable file and receive a translation complete message

  10. Obtain the translated XML files

  11. Import the translatable XML file into FirstSpirit

  12. Remove task ticket in FirstSpirit again.

Steps 1-2 were part of a special workflow executed using the ServerManager.

3.2. Translation of Newly Created Pages

The aim of the procedure applied is to forwards 10,000 newly created pages simultaneously and to complete the entire translation process. The procedure consists of the following parts:

  1. Execute the page folder workflow

  2. Create 10,000 task tickets

  3. Store the translation requests in the translationstudio database

  4. Forward translation request to the translationstudio Application

  5. Create and process a single translation jobs containing 10,000 pages

  6. Export the registered pages to the file system

  7. Create translatable XML files

  8. Create additional message files for each translatable XML

  9. Forward the translatable XML files to the Test Connector

  10. Query status of each translatable file and receive a translation complete message

  11. Obtain the translated XML files and add timestamp to each TEXT and DOM child node.

  12. Import the translatable XML file into FirstSpirit

  13. Update/Check the language flag for each imported FirstSpirit page and section

  14. Remove task ticket in FirstSpirit again.

3.3. Translation of Already Translated Pages

The aim of the procedure applied is to forwards 10,000 already existing (i.e. translated) pages simultaneously and to complete the entire translation process. The procedure consists of the following parts:

  1. Execute the page folder workflow

  2. Create 10,000 task tickets

  3. Store the translation requests in the translationstudio database

  4. Forward translation request to the translationstudio Application

  5. Create and process a single translation jobs containing 10,000 pages

  6. Export the registered pages to the file system

  7. Create translatable XML files

  8. Create additional message files for each translatable XML

  9. Forward the translatable XML files to the Test Connector

  10. Query status of each translatable file and receive a translation complete message

  11. Obtain the translated XML files and add timestamp to each TEXT and DOM child node.

  12. Import the translatable XML file into FirstSpirit

  13. Update/Check the language flag for each imported FirstSpirit page and section

  14. Remove task ticket in FirstSpirit again.

Preview files were not created since they do not add significant load to the translationstudio Application.

3.4. Post Test Processing

After the tests were performed, the application waits for 90mins to check for JVM memory recovery and monitor. Since the garbage collection is managed by the JVM, it cannot be assumed that a collection will be performed so it will be triggered programmatically after 45mins.

3.5. Results

The test result is summarised below. The memory consumption refers to the translationstudio Application only.

Result Datasets Pages (new pages) Pages (already translated)

Duration

0h 41m

3h 38m

3h 43m

Number of Pages/Datasets

10,000

10,000

10,000

Pages/Datasets per XML file

10,000

400

400

XML files processed

1

25

25

Embedded database size

13.34 MB

Peak memory consumption

1.15 GB

Average memory consumption

0.40 GB

The following graph illustrates the memory consumption during the entire test up until 90mins after the last XML has been imported. A garbage collection was triggered 45mins after the tests.

The areas of zero memory consumption are not considered in the average above but only used to visualize the end of a test and the beginning of a subsequent test.

Memory Consumption (GB)
Figure 1. Memory Consumption* (GB)