/hazelcast/src/main/java/com/hazelcast/impl/monitor/LocalMapStatsImpl.java

https://bitbucket.org/gabral6_gmailcom/hazelcast · Java · 240 lines · 182 code · 40 blank · 18 comment · 0 complexity · cf1bfd4b1c15012b32b98bd8d08fe9c4 MD5 · raw file

  1. /*
  2. * Copyright (c) 2008-2013, Hazelcast, Inc. All Rights Reserved.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. package com.hazelcast.impl.monitor;
  17. import com.hazelcast.monitor.LocalMapOperationStats;
  18. import com.hazelcast.monitor.LocalMapStats;
  19. import java.io.DataInput;
  20. import java.io.DataOutput;
  21. import java.io.IOException;
  22. import java.util.concurrent.atomic.AtomicLong;
  23. public class LocalMapStatsImpl extends LocalInstanceStatsSupport<LocalMapOperationStats> implements LocalMapStats {
  24. private final AtomicLong lastAccessTime = new AtomicLong();
  25. private final AtomicLong hits = new AtomicLong();
  26. private final AtomicLong misses = new AtomicLong();
  27. private long ownedEntryCount;
  28. private long backupEntryCount;
  29. private long markedAsRemovedEntryCount;
  30. private long ownedEntryMemoryCost;
  31. private long backupEntryMemoryCost;
  32. private long markedAsRemovedMemoryCost;
  33. private long creationTime;
  34. private long lastUpdateTime;
  35. private long lastEvictionTime;
  36. private long lockedEntryCount;
  37. private long lockWaitCount;
  38. private long dirtyEntryCount;
  39. enum Op {
  40. CREATE,
  41. READ,
  42. UPDATE,
  43. REMOVE,
  44. LOCK,
  45. UNLOCK,
  46. ADD_LOCK_WAIT,
  47. REMOVE_LOCK_WAIT
  48. }
  49. public LocalMapStatsImpl() {
  50. }
  51. void writeDataInternal(DataOutput out) throws IOException {
  52. out.writeLong(lastAccessTime.get());
  53. out.writeLong(hits.get());
  54. // out.writeLong(misses.get());
  55. out.writeLong(ownedEntryCount);
  56. out.writeLong(backupEntryCount);
  57. out.writeLong(markedAsRemovedEntryCount);
  58. out.writeLong(ownedEntryMemoryCost);
  59. out.writeLong(backupEntryMemoryCost);
  60. out.writeLong(markedAsRemovedMemoryCost);
  61. out.writeLong(creationTime);
  62. out.writeLong(lastUpdateTime);
  63. out.writeLong(lastEvictionTime);
  64. out.writeLong(lockedEntryCount);
  65. out.writeLong(lockWaitCount);
  66. out.writeLong(dirtyEntryCount);
  67. }
  68. void readDataInternal(DataInput in) throws IOException {
  69. lastAccessTime.set(in.readLong());
  70. hits.set(in.readLong());
  71. // misses.set(in.readLong());
  72. ownedEntryCount = in.readLong();
  73. backupEntryCount = in.readLong();
  74. markedAsRemovedEntryCount = in.readLong();
  75. ownedEntryMemoryCost = in.readLong();
  76. backupEntryMemoryCost = in.readLong();
  77. markedAsRemovedMemoryCost = in.readLong();
  78. creationTime = in.readLong();
  79. lastUpdateTime = in.readLong();
  80. lastEvictionTime = in.readLong();
  81. lockedEntryCount = in.readLong();
  82. lockWaitCount = in.readLong();
  83. dirtyEntryCount = in.readLong();
  84. }
  85. @Override
  86. LocalMapOperationStats newOperationStatsInstance() {
  87. return new LocalMapOperationStatsImpl();
  88. }
  89. public long getOwnedEntryCount() {
  90. return ownedEntryCount;
  91. }
  92. public void setOwnedEntryCount(long ownedEntryCount) {
  93. this.ownedEntryCount = ownedEntryCount;
  94. }
  95. public long getBackupEntryCount() {
  96. return backupEntryCount;
  97. }
  98. public void setBackupEntryCount(long backupEntryCount) {
  99. this.backupEntryCount = backupEntryCount;
  100. }
  101. public long getMarkedAsRemovedEntryCount() {
  102. return markedAsRemovedEntryCount;
  103. }
  104. public void setMarkedAsRemovedEntryCount(long markedAsRemovedEntryCount) {
  105. this.markedAsRemovedEntryCount = markedAsRemovedEntryCount;
  106. }
  107. public long getOwnedEntryMemoryCost() {
  108. return ownedEntryMemoryCost;
  109. }
  110. public void setOwnedEntryMemoryCost(long ownedEntryMemoryCost) {
  111. this.ownedEntryMemoryCost = ownedEntryMemoryCost;
  112. }
  113. public long getBackupEntryMemoryCost() {
  114. return backupEntryMemoryCost;
  115. }
  116. public void setBackupEntryMemoryCost(long backupEntryMemoryCost) {
  117. this.backupEntryMemoryCost = backupEntryMemoryCost;
  118. }
  119. public long getMarkedAsRemovedMemoryCost() {
  120. return markedAsRemovedMemoryCost;
  121. }
  122. public void setMarkedAsRemovedMemoryCost(long markedAsRemovedMemoryCost) {
  123. this.markedAsRemovedMemoryCost = markedAsRemovedMemoryCost;
  124. }
  125. public long getCreationTime() {
  126. return creationTime;
  127. }
  128. public void setCreationTime(long creationTime) {
  129. this.creationTime = creationTime;
  130. }
  131. public long getLastAccessTime() {
  132. return lastAccessTime.get();
  133. }
  134. public void setLastAccessTime(long lastAccessTime) {
  135. this.lastAccessTime.set(Math.max(this.lastAccessTime.get(), lastAccessTime));
  136. }
  137. public long getLastUpdateTime() {
  138. return lastUpdateTime;
  139. }
  140. public void setLastUpdateTime(long lastUpdateTime) {
  141. this.lastUpdateTime = Math.max(this.lastUpdateTime, lastUpdateTime);
  142. }
  143. public long getLastEvictionTime() {
  144. return lastEvictionTime;
  145. }
  146. public void setLastEvictionTime(long lastEvictionTime) {
  147. this.lastEvictionTime = lastEvictionTime;
  148. }
  149. public long getHits() {
  150. return hits.get();
  151. }
  152. public void setHits(long hits) {
  153. this.hits.set(hits);
  154. }
  155. public long getMisses() {
  156. return misses.get();
  157. }
  158. public void setMisses(long misses) {
  159. this.misses.set(misses);
  160. }
  161. public long getLockedEntryCount() {
  162. return lockedEntryCount;
  163. }
  164. public void setLockedEntryCount(long lockedEntryCount) {
  165. this.lockedEntryCount = lockedEntryCount;
  166. }
  167. public long getLockWaitCount() {
  168. return lockWaitCount;
  169. }
  170. public void setLockWaitCount(long lockWaitCount) {
  171. this.lockWaitCount = lockWaitCount;
  172. }
  173. public long getDirtyEntryCount() {
  174. return dirtyEntryCount;
  175. }
  176. public void setDirtyEntryCount(long l) {
  177. this.dirtyEntryCount = l;
  178. }
  179. @Override
  180. public String toString() {
  181. return "LocalMapStatsImpl{" +
  182. "ownedEntryCount=" + ownedEntryCount +
  183. ", backupEntryCount=" + backupEntryCount +
  184. ", markedAsRemovedEntryCount=" + markedAsRemovedEntryCount +
  185. ", ownedEntryMemoryCost=" + ownedEntryMemoryCost +
  186. ", backupEntryMemoryCost=" + backupEntryMemoryCost +
  187. ", markedAsRemovedMemoryCost=" + markedAsRemovedMemoryCost +
  188. ", creationTime=" + creationTime +
  189. ", lastAccessTime=" + lastAccessTime.get() +
  190. ", lastUpdateTime=" + lastUpdateTime +
  191. ", lastEvictionTime=" + lastEvictionTime +
  192. ", hits=" + hits.get() +
  193. // ", misses=" + misses.get() +
  194. ", lockedEntryCount=" + lockedEntryCount +
  195. ", lockWaitCount=" + lockWaitCount +
  196. ", dirtyEntryCount=" + dirtyEntryCount +
  197. ", " + operationStats +
  198. '}';
  199. }
  200. }