See the WebSphere eXtreme Scale Wiki for links to eXtreme Scale Version 7.0 documentation.
If you log in
with your developerWorks ID, you can leave comments and feedback for the development team.
Statistics monitoring within ObjectGrid is available via the following mechanisms:
- Proprietary Statistics APIs - ObjectGrid organizes its statistics like an n-ary tree data structure. Every main component is represented by a custom StatsModule. A StatsModule can be aggregated at a higher level via a StatsGroup, but will have the same interface throughout the entire tree. All aggregation is transparent to the user. The StatsModules are retrieved via a JVM-scoped StatsAccessor interface. Examples of user interaction are provided below.
- WebSphere PMI Modules - ObjectGrid provides PMI Modules as skins to the underlying stats tree. This allows users to interact with PMI modules as they would with any other WebSphere PMI module. It is recommended that users track and interact with these modules via the Tivoli Performance Viewer within the WebSphere Extended Deployment web console.
- MBeans - Along with providing management capabilities, ObjectGrid's MBeans give users access to individual statistics, and a proxy version of the actual remote StatsModule.
Independent of the approach for accessing the statistics, it is more important to understand what statistics are available and how they are organized within the underlying statistics tree. This topic describes each StatsModule's statistics along with a diagram of how it is organized.
objectGridModule module
The objectGridModule module contains a time statistic: transaction response time. An ObjectGrid transaction is defined as the duration between the Session.begin method call and the Session.commit method call. This duration is tracked as the transaction response time.
The root element of the objectGridModule module, "root", serves as the entry point to the ObjectGrid statistics. This root element has ObjectGrids as its children, which have transaction types as their children. The response time statistic is associated with each transaction type. The objectGridModule module structure is shown in the following diagram:
Figure 1. ObjectGridModule Module Structure
The following diagram shows an example of the ObjectGridModule structure. In this example, two ObjectGrid instances exist in the system: ObjectGrid A and ObjectGrid B. The ObjectGrid A instance has three types of transactions: A and Default. The ObjectGrid B instance has only the default transaction type.
Figure 2. ObjectGridModule Structure Example
Transaction types are defined by application developers because they know what types of transactions their applications use. The transaction type is set using the following Session.setTransactionType(String) method:
/**
* Sets the transaction type for future transactions.
*
* After this method is called, all of the future transactions have the
* same type until another transaction type is set. If no transaction
* type is set, the default TRANSACTION_TYPE_DEFAULT transaction type
* is used.
*
* Transaction types are used mainly for statistical data tracking purpose.
* Users can predefine types of transactions that run in an
* application. The idea is to categorize transactions with the same characteristics
* to one category (type), so one transaction response time statistic can be
* used to track each transaction type.
*
* This tracking is useful when your application has different types of
* transactions.
* Among them, some types of transactions, such as update transactions, process
* longer than other transactions, such as read−only transactions. By using the
* transaction type, different transactions are tracked by different statistics,
* so the statistics can be more useful.
*
* @param tranType the transaction type for future transactions.
*/
void setTransactionType(String tranType);
The following example sets transaction type to updatePrice:
session.setTransactionType("updatePrice");
session.begin();
map.update(stockId, new Integer(100));
session.commit();
The first line indicates that the subsequent transaction type is updatePrice. An updatePrice statistic exists under the ObjectGrid instance that corresponds to the session in the example. Using Java Management Extensions (JMX) interfaces, you can get the transaction response time for updatePrice transactions. You can also get the aggregated statistic for all types of transactions on the specified ObjectGrid.
mapModule module
The mapModule module contains three statistics that are related to ObjectGrid maps:
- Map hit rate: BoundedRangeStatistic - tracks the hit rate of a map. Hit rate is a float value between 0 and 100 inclusively, which represents the percentage of map hits in relation to map get operations.
- Number of entries: CountStatistic - tracks the number of entries in the map.
- Loader batch update response time: TimeStatistic - tracks the response time that is used for the loader batch-update operation.
The root element of the mapModule module, "root", serves as the entry point to the ObjectGrid Map statistics. This root element has ObjectGrids as its children, which have maps as their children. Every map instance has the three listed statistics. The mapModule structure is shown in the following diagram:
Figure 3. mapModule module structure
The following diagram shows an example of the mapModule structure:
Figure 4. mapModule module structure example
hashIndexModule module
The hashIndexModule module contains six statistics that are related to Map-level indices:
- Find Count: CountStatistic - The invocation count for the index's find operation
- Collision Count: CountStatistic - The amount of collisions for the find operation
- Failure Count: CountStatistic - The number of failures for the find operation
- Result Count: CountStatistic - The number of keys returned from the find operation
- BatchUpdate Count: CountStatistic - The number of batch updates against this index. When the corresponding map is changed in any manner, the index will have it's doBatchUpdate() method called. This statistic will tell you how frequently your index is changing or being updated.
- Find Operation Duration Time: TimeStatistic - The amount of time the find operation takes to complete
The root element of the hashIndexModule module, "root", serves as the entry point to the HashIndex statistics. This root element has ObjectGrids as its children, ObjectGrids have maps as their children, which finally have HashIndexes as their children and leaf nodes of the tree. Every HashIndex instance has the three listed statistics. The hashIndexModule structure is shown in the following diagram:
Figure 5. hashIndexModule module structure
The following diagram shows an example of the hashIndexModule structure:
Figure 6. hashIndexModule module structure example
agentManagerModule module
The agentManagerModule module contains nine statistics that are related to Map-level Agents:
- Reduce Time: TimeStatistic - The amount of time it takes the Agent to finish the reduce operation
- Total Duration Time: TimeStatistic - The total amount of time it takes for the Agent to complete all operations
- Agent Serialization Time: TimeStatistic - The amount of time it takes to serialize the Agent
- Agent Inflation Time: TimeStatistic - The amount of time it takes to inflate the Agent on the server
- Result Serialization Time: TimeStatistic - The amount of time it takes to serialize the Agent's results
- Result Inflation Time: TimeStatistic - The amount of time it takes to inflate the Agent's results
- Failure Count: CountStatistic - The number of times the Agent failed
- Invocation Count: CountStatistic - The number of times the AgentManager has been invoked
- Partition Count: CountStatistic - The number of partitions the Agent is sent to
The root element of the agentManagerModule module, "root", serves as the entry point to the AgentManager Statistics. This root element has ObjectGrids as its children, ObjectGrids have maps as their children, which finally have AgentManagers as their children and leaf nodes of the tree. Every AgentManager instance has the three listed statistics. The agentManagerModule structure is shown in the following diagram:
Figure 7. agentManagerModule module structure
The following diagram shows an example of the agentManagerModule structure:
Figure 8. agentManagerModule structure example
queryModule module
The queryModule module contains five statistics that are related to ObjectGrid Queries:
- Plan Creation Time: TimeStatistic - The amount of time it takes to create the query plan
- Execution Time: TimeStatistic - The amount of time it takes to run the query
- Execution Count: CountStatistic - The number of times the query has been run
- Result Count: CountStatistic - The count for each query run's result set
- FailureCount: CountStatistic - The number of times the query has failed
The root element of the queryModule module, "root", serves as the entry point to the Query Statistics. This root element has ObjectGrids as its children, which have Query objects as their children and leaf nodes of the tree. Every Query instance has the three listed statistics. The queryModule structure is shown in the following diagram:
Figure 9. queryModule module structure
The following diagram shows an example of the queryModule structure:
Figure 10. queryModule module structure example
Related information
© Copyright IBM Corporation 2007,2009. All Rights Reserved.