You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ch...@apache.org on 2016/08/05 11:09:45 UTC

svn commit: r1755288 - in /jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file: FileStore.java FileStoreMonitor.java FileStoreStats.java FileStoreStatsMBean.java

Author: chetanm
Date: Fri Aug  5 11:09:45 2016
New Revision: 1755288

URL: http://svn.apache.org/viewvc?rev=1755288&view=rev
Log:
OAK-4097 - Add metric for FileStore journal writes

Applying patch from  Andrei Dulceanu. Thanks!

Modified:
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStoreMonitor.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStoreStats.java
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStoreStatsMBean.java

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java?rev=1755288&r1=1755287&r2=1755288&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java Fri Aug  5 11:09:45 2016
@@ -710,6 +710,8 @@ public class FileStore implements Segmen
                 }
             }
         }
+        
+        stats.flushed();
     }
 
     /**

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStoreMonitor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStoreMonitor.java?rev=1755288&r1=1755287&r2=1755288&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStoreMonitor.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStoreMonitor.java Fri Aug  5 11:09:45 2016
@@ -34,6 +34,11 @@ interface FileStoreMonitor {
         public void reclaimed(long bytes) {
 
         }
+        
+        @Override
+        public void flushed() {
+            
+        }
     };
 
     /**
@@ -49,4 +54,9 @@ interface FileStoreMonitor {
      * @param bytes number of bytes reclaimed
      */
     void reclaimed(long bytes);
+    
+    /**
+     * Notifies the monitor when journal data is flushed to disk.
+     */
+    void flushed();
 }

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStoreStats.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStoreStats.java?rev=1755288&r1=1755287&r2=1755288&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStoreStats.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStoreStats.java Fri Aug  5 11:09:45 2016
@@ -34,16 +34,20 @@ import static org.apache.jackrabbit.stat
 public class FileStoreStats implements FileStoreStatsMBean, FileStoreMonitor {
     public static final String SEGMENT_REPO_SIZE = "SEGMENT_REPO_SIZE";
     public static final String SEGMENT_WRITES = "SEGMENT_WRITES";
+    public static final String JOURNAL_WRITES = "JOURNAL_WRITES";
+    
     private final StatisticsProvider statisticsProvider;
     private final FileStore store;
     private final MeterStats writeStats;
     private final CounterStats repoSize;
-
+    private final MeterStats journalWriteStats;
+    
     public FileStoreStats(StatisticsProvider statisticsProvider, FileStore store, long initialSize) {
         this.statisticsProvider = statisticsProvider;
         this.store = store;
         this.writeStats = statisticsProvider.getMeter(SEGMENT_WRITES, StatsOptions.DEFAULT);
         this.repoSize = statisticsProvider.getCounterStats(SEGMENT_REPO_SIZE, StatsOptions.DEFAULT);
+        this.journalWriteStats = statisticsProvider.getMeter(JOURNAL_WRITES, StatsOptions.DEFAULT);
         repoSize.inc(initialSize);
     }
 
@@ -59,6 +63,11 @@ public class FileStoreStats implements F
     public void reclaimed(long size) {
         repoSize.dec(size);
     }
+    
+    @Override
+    public void flushed() {
+        journalWriteStats.mark();
+    }
 
     //~--------------------------------< FileStoreStatsMBean >
 
@@ -91,6 +100,11 @@ public class FileStoreStats implements F
                 IOUtils.humanReadableByteCount(getApproximateSize()),
                 getTarFileCount());
     }
+    
+    @Override
+    public CompositeData getJournalWriteStats() {
+        return asCompositeData(getTimeSeries(JOURNAL_WRITES), JOURNAL_WRITES);
+    }
 
     private TimeSeries getTimeSeries(String name) {
         return statisticsProvider.getStats().getTimeSeries(name, true);

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStoreStatsMBean.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStoreStatsMBean.java?rev=1755288&r1=1755287&r2=1755288&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStoreStatsMBean.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStoreStatsMBean.java Fri Aug  5 11:09:45 2016
@@ -40,4 +40,9 @@ public interface FileStoreStatsMBean {
     CompositeData getRepositorySize();
 
     String fileStoreInfoAsString();
+    
+    /**
+     * @return  time series of the writes to journal
+     */
+    CompositeData getJournalWriteStats();
 }