You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sirona.apache.org by ol...@apache.org on 2014/03/06 02:04:08 UTC
svn commit: r1574735 - in /incubator/sirona/trunk:
agent/store/cube/src/main/java/org/apache/sirona/cube/CubePathTrackingDataStore.java
core/src/main/java/org/apache/sirona/store/tracking/InMemoryPathTrackingDataStore.java
Author: olamy
Date: Thu Mar 6 01:04:08 2014
New Revision: 1574735
URL: http://svn.apache.org/r1574735
Log:
as we record Path tracking entries regulary we can free pointer already sended
Modified:
incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/CubePathTrackingDataStore.java
incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/InMemoryPathTrackingDataStore.java
Modified: incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/CubePathTrackingDataStore.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/CubePathTrackingDataStore.java?rev=1574735&r1=1574734&r2=1574735&view=diff
==============================================================================
--- incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/CubePathTrackingDataStore.java (original)
+++ incubator/sirona/trunk/agent/store/cube/src/main/java/org/apache/sirona/cube/CubePathTrackingDataStore.java Thu Mar 6 01:04:08 2014
@@ -24,7 +24,6 @@ import org.apache.sirona.store.tracking.
import org.apache.sirona.store.tracking.CollectorPathTrackingDataStore;
import org.apache.sirona.tracking.PathTrackingEntry;
-import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutorService;
@@ -65,7 +64,11 @@ public class CubePathTrackingDataStore
{
for ( Pointer pointer : entry.getValue() )
{
- cube.postBytes( readBytes( pointer ), PathTrackingEntry.class.getName() );
+ if ( !pointer.isFree() )
+ {
+ cube.postBytes( readBytes( pointer ), PathTrackingEntry.class.getName() );
+ pointer.freeMemory();
+ }
}
}
}
Modified: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/InMemoryPathTrackingDataStore.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/InMemoryPathTrackingDataStore.java?rev=1574735&r1=1574734&r2=1574735&view=diff
==============================================================================
--- incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/InMemoryPathTrackingDataStore.java (original)
+++ incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/tracking/InMemoryPathTrackingDataStore.java Thu Mar 6 01:04:08 2014
@@ -43,7 +43,6 @@ public class InMemoryPathTrackingDataSto
{
-
/**
* store path track tracking entries list per path tracking id
* the value is the memory address
@@ -160,6 +159,8 @@ public class InMemoryPathTrackingDataSto
long offheapPointer;
+ boolean free;
+
public int getSize()
{
return size;
@@ -169,6 +170,20 @@ public class InMemoryPathTrackingDataSto
{
return offheapPointer;
}
+
+ public void freeMemory()
+ {
+ if ( !free )
+ {
+ UnsafeUtils.getUnsafe().freeMemory( offheapPointer );
+ free = true;
+ }
+ }
+
+ public boolean isFree()
+ {
+ return free;
+ }
}
private List<Pointer> serialize( Collection<PathTrackingEntry> entries )
@@ -204,7 +219,8 @@ public class InMemoryPathTrackingDataSto
// clear entries to not wait gc
for ( Pointer pointer : entry.getValue() )
{
- UnsafeUtils.getUnsafe().freeMemory( pointer.offheapPointer );
+ //UnsafeUtils.getUnsafe().freeMemory( pointer.offheapPointer );
+ pointer.freeMemory();
}
}
pathTrackingEntries = new ConcurrentHashMap<String, List<Pointer>>( 50 );