Ошибка Java OutOfMemory в режиме кластера OrientDB - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь подключиться для чтения большой таблицы (5 000 000 строк) из базы данных OrientDB с помощью выбора и встроенного драйвера API.Когда я подключаюсь к локальной базе данных, приложения загружаются в течение некоторого времени, и затем отображается такое сообщение:

java.lang.OutOfMemoryError: Java heap space

Вот параметры, которые я определил для JVM, чтобы повысить производительность.Без этих параметров я получаю GC overhead limit ошибку:

-Xmx800m -Dstorage.diskCache.bufferSize=7200 -server -XX:+PerfDisableSharedMem

Что я должен изменить в этих настройках или в настройках кластера, чтобы исправить эту ошибку и запустить приложение?

OrientDBнастраивается в кластерном режиме с помощью Docker:

version: '3'
services:
  node1:
    image: orientdb:latest
    command: /orientdb/bin/server.sh -Ddistributed=true
    volumes:
      - /orientdb/config1:/opt/orientdb/config
      - /orientdb/databases1:/orientdb/databases
      - /orientdb/backup1:/orientdb/backup
      - ./data:/orientdb/bin/data
    environment:
      ORIENTDB_ROOT_PASSWORD: 'pwd1'
      ORIENTDB_NODE_NAME: node1
    ports:
      - "2424:2424"
      - "2480:2480"

  node2:
    image: orientdb:latest
    command: /orientdb/bin/server.sh -Ddistributed=true
    volumes:
      - /orientdb/config2:/opt/orientdb/config
      - /orientdb/databases2:/orientdb/databases
      - /orientdb/backup2:/orientdb/backup
      - ./data2:/orientdb/bin/data
    environment:
      ORIENTDB_ROOT_PASSWORD: 'pwd1'
      ORIENTDB_NODE_NAME: node2
    depends_on:
      - node1

Настройка конфигурации OrientDB:

val orientGraph = new OrientGraph("url","user","password")

Как выполнить запрос:

val orientTableRows:OrientDynaElementIterable = orientGraph.command(new OCommandSQL("select count(*) as count from Table1"))
      .execute()

build.sbtфайл с зависимостями OrientDB:

val orientDbVersion = "3.0.4"
libraryDependencies ++= Seq(
  "com.orientechnologies" % "orientdb-graphdb" % orientDbVersion,
  "com.orientechnologies" % "orientdb-distributed" % orientDbVersion,
  "com.orientechnologies" % "orientdb-core" % orientDbVersion,
  "com.orientechnologies" % "orientdb-client" % orientDbVersion,
  "com.orientechnologies" % "orientdb-server" % orientDbVersion,
  "com.orientechnologies" % "orientdb-test-commons" % orientDbVersion,
  "com.orientechnologies" % "orientdb-tools" % orientDbVersion,
  "com.orientechnologies" % "orientdb-etl" % orientDbVersion,
  "com.tinkerpop.blueprints" % "blueprints-core" % "2.6.0"
)
...