Performance Issues After Migrating to ObjectDB - Urgent Assistance Required

#1

Dear ObjectDB Support Team,

I hope this email finds you well. I am Dr M H B Ariyaratne, the Acting Consultant in Health Informatics at the Health Information Unit, Ministry of Health, Sri Lanka. I am writing to seek your urgent assistance regarding performance issues we are facing after migrating our Cloud HIMS application to ObjectDB.

Background:

  • Application: Cloud HIMS is a JSF/JPA (EclipseLink 2.3)/MySQL application used to capture data in Health Care Centres across the country.

  • Database Size: Our MySQL database was 66GB in size before migration.

  • Migration Status: We are halfway through transferring data. Metadata, Patient Data, and Encounter Data have been migrated. Observations are still being migrated.

  • Current Issue: Despite the migration, we have not seen any improvement in performance.

Server and Configuration Details:

  • Server: The VM is running on Ubuntu 20.04 with 70GB RAM. No other major processes are running.

  • ObjectDB Configuration: I have attached the configuration files and server.sh file for your reference.

  • Resource Usage: I have also attached snapshots showing the usage of resources like RAM and CPUs.

We have taken several steps to improve performance, including indexing, query optimization, and server resource allocation, but the issues persist.

Could you please assist us in identifying the cause of these performance issues and suggest any possible solutions?

Thank you for your time and assistance.

Best regards, Dr M H B Ariyaratne Acting Consultant in Health Informatics Health Information Unit, Ministry of Health, Sri Lanka 

Attachments:

  • ObjectDB Configuration Files
  • Server.sh File
  • Resource Usage Snapshots
#2

The information provided in this report and in the PDF file is very generic and insufficient to explore any issue. Try to isolate specific issues and then provide full details.

For example, if you have a slow query you should provide all the details on that query and its execution and on the relevant object model. You may also need to demonstrate it with a sample database that you can share.

Please use a separate thread in this forum for every specific issue.

ObjectDB Support
#3

OK,

Generally all transactions are slower when compared to MySQL with EcliseLink. I will prepare a specific instance and start a new issue. 

Until that, can you please go through the configation file and server.sh file and see why not all resources of the VM are not utilized.

Can you please at least have a look at those configuration files and tell me a way to improve prformance.

<objectdb>
        <general>
                <temp path="$temp" threshold="2000mb" />
                <network inactivity-timeout="0" />
                <url-history size="50" user="true" password="true" />
                <log path="$objectdb/log/" max="64mb" stdout="false" stderr="false" />
                <log-archive path="$objectdb/log/archive/" retain="90" />
                <logger name="*" level="info" />
        </general>

        <database>
                <size initial="1000mb" resize="1000mb" page="2kb" />
                <recovery enabled="true" sync="false" path="." max="2000mb" />
                <recording enabled="false" sync="false" path="." mode="write" />
                <locking version-check="true" />
                <processing cache="16000mb" max-threads="10" />
                <query-cache results="4mb" programs="1000" />
                <extensions drop="temp,tmp" memory="mem" />
                <activation code="AN52-7Y7H-GR1Y-VDYT-VF84" />
        </database>

        <entities>
                <enhancement agent="false" reflection="warning" />
                <cache ref="weak" level2="0" />
                <persist serialization="false" />
                <cascade-persist always="auto" on-persist="false" on-commit="true" />
                <dirty-tracking arrays="false" />
        </entities>

        <schema>
        </schema>

        <server>
                <connection port="6136" max="0" />
                <data path="$objectdb/db" />
                <!--
                <replication url="objectdb://localhost/test.odb;user=admin;password=admin" />
                -->
        </server>

        <users>
                <user username="admin" password="admin">
                        <dir path="/" permissions="access,modify,create,delete" />
                </user>
                <user username="$default" password="$$$###">
                        <dir path="/$user/" permissions="access,modify,create,delete">
                                <quota directories="5" files="20" disk-space="5mb" />
                        </dir>
                </user>
                <user username="user1" password="user1" />
        </users>

        <ssl enabled="false">
                <server-keystore path="$objectdb/ssl/server-kstore" password="pwd" />
                <client-truststore path="$objectdb/ssl/client-tstore" password="pwd" />
        </ssl>

</objectdb>
********************************************************

Server.sh file

#!/bin/sh

#

# ObjectDB Server Script - for Unix / Linux / Solaris / Mac OS X

#

# Note: Please set the JAVA_VM and OBJECTDB_JARS variables!

 

# Path of Java VM (a complete absolute path can be specified)

JAVA_VM="java"

 

# Path of ObjectDB jar file (a complete absolute path can be specified)

OBJECTDB_JARS="objectdb.jar"

 

# Prepare args (an input odb file if specified)

while [ $# -gt 0 ]; do

  ARGS="$ARGS $1"

  shift

done

 

# Launch ObjectDB Server:

exec ${JAVA_VM} -server -Xms40G -Xmx40G -cp ${OBJECTDB_JARS} com.objectdb.Server $ARGS

 

#4

There are general guidelines in the manual regarding performance and most of them are not related to the configuration file (for example, use enhanced classes for better performance). There is no point in guessing. We can look at specific issues when sufficient information is provided.

ObjectDB Support

Reply