Очистить закрепленные страницы в OrientDB 2.2.6

Я использую OrientDB 2.2.6 в Windows 7 (64-разрядная версия) и продолжаю получать следующее предупреждение, когда запускаю тест TestNG в Java 8.

2016-10-05 10:46:10:888 WARNI {db=orientSystemDb} Maximum amount of pinned pages is 
  reached, given page OReadCacheEntry{fileId=7136553380276606136, pageIndex=0,
  dataPointer=OCachePointer{referrersCount=1, usagesCount=0}, dirty=false, usagesCount=1} 
  will not be marked as pinned which may lead to performance degradation. You may consider
  to increase percent of pined pages by changing of property storage.diskCache.pinnedPages
  [O2QCache]

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

Вот мой файл конфигурации:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<orient-server>
<handlers>
    <handler class="com.orientechnologies.orient.graph.handler.OGraphServerHandler">
        <parameters>
            <parameter value="true" name="enabled"/>
            <parameter value="50" name="graph.pool.max"/>
        </parameters>
    </handler>
    <handler class="com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin">
        <parameters>
            <parameter value="${distributed}" name="enabled"/>
            <parameter value="${ORIENTDB_HOME}/config/default-distributed-db-config.json" name="configuration.db.default"/>
            <parameter value="${ORIENTDB_HOME}/config/hazelcast.xml" name="configuration.hazelcast"/>
        </parameters>
    </handler>
    <handler class="com.orientechnologies.orient.server.handler.OJMXPlugin">
        <parameters>
            <parameter value="false" name="enabled"/>
            <parameter value="true" name="profilerManaged"/>
        </parameters>
    </handler>
    <handler class="com.orientechnologies.orient.server.handler.OAutomaticBackup">
        <parameters>
            <parameter value="false" name="enabled"/>
            <parameter value="${ORIENTDB_HOME}/config/automatic-backup.json" name="config"/>
        </parameters>
    </handler>
    <handler class="com.orientechnologies.orient.server.handler.OServerSideScriptInterpreter">
        <parameters>
            <parameter value="true" name="enabled"/>
            <parameter value="SQL" name="allowedLanguages"/>
        </parameters>
    </handler>
</handlers>
<network>
    <protocols>
        <protocol implementation="com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary" name="binary"/>
        <protocol name="http" implementation="com.orientechnologies.orient.server.network.protocol.http.ONetworkProtocolHttpDb"/>
    </protocols>
    <listeners>
        <listener protocol="binary" socket="default" port-range="2424-2430" ip-address="0.0.0.0"/>
        <listener protocol="http" port-range="2480-2485" ip-address="0.0.0.0">
            <commands>
                <command implementation="com.orientechnologies.orient.server.network.protocol.http.command.get.OServerCommandGetStaticContent" pattern="GET|www GET|studio/ GET| GET|*.htm GET|*.html GET|*.xml GET|*.jpeg GET|*.jpg GET|*.png GET|*.gif GET|*.js GET|*.css GET|*.swf GET|*.ico GET|*.txt GET|*.otf GET|*.pjs GET|*.svg">
                    <parameters>
                        <entry value="Cache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nPragma: no-cache" name="http.cache:*.htm *.html"/>
                        <entry value="Cache-Control: max-age=120" name="http.cache:default"/>
                    </parameters>
                </command>
            </commands>
        </listener>
    </listeners>
</network>
<users>
    <user resources="*" password="root" name="root"/>
    <user resources="connect,server.listDatabases,server.dblist" password="guest" name="guest"/>
</users>
<properties>
    <entry value="1" name="db.pool.min"/>
    <entry value="50" name="db.pool.max"/>
    <entry value="true" name="profiler.enabled"/>
    <!-- Avoid updating versions when created or deleting edges -->
    <entry value="-1" name="ridBag.embeddedToSbtreeBonsaiThreshold"/>
    </properties>
</orient-server>

Вот код для создания ребер:

private int connectToAllOtherVertices(OrientBaseGraph oGraph, OrientVertex oVertex)
{
  int numConnections = 0;

  for(Vertex v : oGraph.getVertices())
  {
    if(v.equals(oVertex))
    {
      // skip it
      continue;
    }

    oVertex.addEdge(String.format("connection%s", numConnections), v);
    numConnections++;
  }

  return numConnections;
}

Я могу создать края, но я продолжаю получать вышеуказанные предупреждения. Как очистить закрепленные страницы перед запуском тестов?


person Erik    schedule 05.10.2016    source источник


Ответы (1)


Закрепленные страницы — это специальная область дискового кеша, которая выгружается из оперативной памяти только при закрытии хранилища OrientDB. Поэтому вы можете попробовать использовать метод closeStorage. См. javadoc.

person Oleksandr Gubchenko    schedule 05.10.2016