Uploaded image for project: 'OpenDJ'
  1. OpenDJ
  2. OPENDJ-6713

Add recommendation to disable ChangeNumber Indexer for CTS servers

    Details

    • Type: Improvement
    • Status: Done
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 6.5.0, 6.0.0
    • Fix Version/s: 6.0.1, 5.5.3, 6.5.3, 7.0.0
    • Component/s: documentation
    • Labels:
      None

      Description

      "Change number indexer" can result in high CPU usage for DS servers which is taking lot of writes like CTS servers. Refer below sample thread dump from CTS server:

      CPU = 93.3 % (nid=0x1c2a)"Change number indexer" #34 prio=5 os_prio=0 tid=0x00007f0d20c36000 nid=0x1c2a runnable [0x00007f0c83057000]
      java.lang.Thread.State: RUNNABLE
          at java.io.RandomAccessFile.readBytes(Native Method)
          at java.io.RandomAccessFile.read(RandomAccessFile.java:377)
          at java.io.RandomAccessFile.readFully(RandomAccessFile.java:436)
          at org.forgerock.opendj.ldap.ByteStringBuilder.appendBytes(ByteStringBuilder.java:512)
          at org.opends.server.replication.server.changelog.file.BlockLogReader.readRecordBytes(BlockLogReader.java:277)
          at org.opends.server.replication.server.changelog.file.BlockLogReader.readRecord(BlockLogReader.java:166)
          at org.opends.server.replication.server.changelog.file.LogFile$LogFileCursor.next(LogFile.java:542)
          at org.opends.server.replication.server.changelog.file.Log$InternalLogCursor.next(Log.java:1041)
          at org.opends.server.replication.server.changelog.file.Log$AbortableLogCursor.next(Log.java:1209)
          at org.opends.server.replication.server.changelog.file.FileReplicaDBCursor.next(FileReplicaDBCursor.java:81)
          at org.opends.server.replication.server.changelog.file.ChangeNumberIndexer$ReplicaCursor.next(ChangeNumberIndexer.java:403)
          at org.opends.server.replication.server.changelog.file.ChangeNumberIndexer$GloballyOrderedChangesCursor.includeCursorsToAdvance(ChangeNumberIndexer.java:306)
          at org.opends.server.replication.server.changelog.file.ChangeNumberIndexer$GloballyOrderedChangesCursor.handleCursorChanges(ChangeNumberIndexer.java:291)
          at org.opends.server.replication.server.changelog.file.ChangeNumberIndexer$GloballyOrderedChangesCursor.next(ChangeNumberIndexer.java:266)
          at org.opends.server.replication.server.changelog.file.ChangeNumberIndexer.run(ChangeNumberIndexer.java:597)
      

      "Change number indexer" should be disabled if there are no clients (such as IDM) searching on cn=changelog.

      DS tuning guide should add recommendation to disable "Change number indexer" for at-least CTS servers. If there are no clients depending cn=changelog, then it should be disabled for other DS stores also: UserStore, ConfigStore, App/Policy store.

        Attachments

          Activity

            People

            • Assignee:
              Mark Mark Craig
              Reporter:
              charan.mann Charan Mann
              Dev Assignee:
              Mark Craig
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: