GraphDB-SE Management and Control

compared with
Current by Reneta Popova
on Aug 26, 2014 14:47.

Key
This line was removed.
This word was removed. This word was added.
This line was added.

Changes (17)

View Page History
GraphDB offers a number of management and control functions using [Java Management Extensions (JMX)|http://www.oracle.com/technetwork/java/javase/tech/javamanagement-140525.html]. GraphDB uses this interface to provide information about its internal state and behaviour, including trend information, as well as operations for intervening in certain database activities.

After initialisation, GraphDB will register a number of JMX MBeans for each repository, each providing a different set of information and functions for specific features. The JMX endpoint is configured using special system properties when starting the Java virtual machine (JVM) in which GraphDB is running. For example, the following command line parameters will set the JMX server endpoint to listen on port 8089, not require without an authentication and will not use a secure socket layer:

{noformat}
h1. Cache/index statistics

Statistics are kept for the main index data structures and includes information such as: cache hits/misses, file reads/writes, etc. This information can be used to fine tune GraphDB-SE's memory configuration and can be useful for 'debugging' certain situations, such as understanding why load performance changes over time or with particular data sets.

For each index, there will be a CollectionStatistics MBean published that published, which shows the cache and file I/O values updated in real-time:

|| Package | com.ontotext |

|| Attribute || Description ||
| CacheHits | The number of operations that completed without accessing the storage system. |
| CacheMisses | The number of operations that completed that completed, which needed to access the storage system. |
| PageDiscards | The number of times a non-dirty page's memory was reused to read in another page. |
| PageSwaps | The number of times a page was written do to the disk, so its memory could be used to load another page. |
| Reads | The total number of times an index was searched for a statement or a range of statements. |
| Writes | The total number of times a statement was added to a collection. |

The following operations are available:

|| Operation || Description ||
| resetCounters | Simply resets all the counters for this index. |

Ideally, the system should be configured to keep the number of cache misses to a minimum. If the ratio of hits to misses is low, then consider increasing the memory available to the index (if other factors permit this).

Page swaps will tend to occur much more often during large scale data loading. Page discards will occur more frequently during query evaluation.


h1. Query monitoring and termination

Information is also available that provides details about executing queries (or more accurately query result iterators). These statistics are provided through a SailIterationMonitor MBean, with one for each repository instance. Each bean instance is named using the storage directory of the repository it relates to.
Information about executing queries (or more accurately query result iterators) is also available. These statistics are provided through a SailIterationMonitor MBean, with one for each repository instance. Each bean instance is named after the storage directory of the repository it relates to.

|| Package | com.ontotext |
|| MBean name | SailIterationMonitor |

The SailIterationMonitor Mbean has a single attribute {{TrackRecords}} that {{TrackRecords}}, which is an array of objects with the following attributes:

|| Attribute || Description ||
| nsTotalSpentInNext | cumulative time spent in (has)Next calculations (in nanoseconds) ||
| state | current state of the iterator, values are: ACTIVE, IN_NEXT, IN_HAS_NEXT, IN_REMOVE, IN_CLOSE, CLOSED ||
| trackId | a unique id for this iterator - if debug.level debug. Level is used to increase the detail of GraphDB output, then this value is used to identify queries when logging query execution plan and optimisation information. ||



|| Operation || Description ||
| requestStop | Request that a query terminates early \\ parameter: trackId of the query to stop. |

This operation allows an administrator to request that a query terminates early. The operation is called {{requestStop}} and requires the trackId of the query that is to be stopped. If this operation is invoked on a running query, the {{isRequestedToStop}} flag is set to {{true}} and the next call to {{hasNext()}} will return false.

|| Operation || Description ||
| abortTransactionCommit | Request that the currently executing (lengthy) commit operation be terminated and rolled back. |