Modified: incubator/directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/RoundRobinAllocationPolicyTest.java URL: http://svn.apache.org/viewvc/incubator/directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/RoundRobinAllocationPolicyTest.java?rev=1295522&r1=1295521&r2=1295522&view=diff ============================================================================== --- incubator/directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/RoundRobinAllocationPolicyTest.java (original) +++ incubator/directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/RoundRobinAllocationPolicyTest.java Thu Mar 1 11:41:34 2012 @@ -23,10 +23,12 @@ import static org.junit.Assert.assertEqu import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import java.io.IOException; +import java.nio.ByteBuffer; import java.util.ArrayList; -import java.util.Date; import java.util.List; +import org.apache.directmemory.memory.allocator.ByteBufferAllocator; import org.junit.Before; import org.junit.Test; @@ -41,52 +43,52 @@ public class RoundRobinAllocationPolicyT private static final int NUMBER_OF_BUFFERS = 4; - List<OffHeapMemoryBuffer<Object>> buffers; + List<ByteBufferAllocator> allocators; - RoundRobinAllocationPolicy<Object> allocationPolicy; + RoundRobinAllocationPolicy allocationPolicy; @Before public void initAllocationPolicy() { - buffers = new ArrayList<OffHeapMemoryBuffer<Object>>(); + allocators = new ArrayList<ByteBufferAllocator>(); for ( int i = 0; i < NUMBER_OF_BUFFERS; i++ ) { - buffers.add( new DummyOffHeapMemoryBufferImpl() ); + allocators.add( new DummyByteBufferAllocator() ); } - allocationPolicy = new RoundRobinAllocationPolicy<Object>(); - allocationPolicy.init( buffers ); + allocationPolicy = new RoundRobinAllocationPolicy(); + allocationPolicy.init( allocators ); } @Test public void testSequence() { - assertEquals( buffers.get( 0 ), allocationPolicy.getActiveBuffer( null, 1 ) ); - assertEquals( buffers.get( 1 ), allocationPolicy.getActiveBuffer( null, 1 ) ); - assertEquals( buffers.get( 2 ), allocationPolicy.getActiveBuffer( null, 1 ) ); - assertEquals( buffers.get( 3 ), allocationPolicy.getActiveBuffer( null, 1 ) ); - assertEquals( buffers.get( 0 ), allocationPolicy.getActiveBuffer( null, 1 ) ); - assertEquals( buffers.get( 1 ), allocationPolicy.getActiveBuffer( null, 1 ) ); - assertEquals( buffers.get( 2 ), allocationPolicy.getActiveBuffer( null, 1 ) ); - assertEquals( buffers.get( 3 ), allocationPolicy.getActiveBuffer( null, 1 ) ); - - assertNotNull( allocationPolicy.getActiveBuffer( null, 1 ) ); - assertNotNull( allocationPolicy.getActiveBuffer( null, 2 ) ); - assertNull( allocationPolicy.getActiveBuffer( null, 3 ) ); + assertEquals( allocators.get( 0 ), allocationPolicy.getActiveAllocator( null, 1 ) ); + assertEquals( allocators.get( 1 ), allocationPolicy.getActiveAllocator( null, 1 ) ); + assertEquals( allocators.get( 2 ), allocationPolicy.getActiveAllocator( null, 1 ) ); + assertEquals( allocators.get( 3 ), allocationPolicy.getActiveAllocator( null, 1 ) ); + assertEquals( allocators.get( 0 ), allocationPolicy.getActiveAllocator( null, 1 ) ); + assertEquals( allocators.get( 1 ), allocationPolicy.getActiveAllocator( null, 1 ) ); + assertEquals( allocators.get( 2 ), allocationPolicy.getActiveAllocator( null, 1 ) ); + assertEquals( allocators.get( 3 ), allocationPolicy.getActiveAllocator( null, 1 ) ); + + assertNotNull( allocationPolicy.getActiveAllocator( null, 1 ) ); + assertNotNull( allocationPolicy.getActiveAllocator( null, 2 ) ); + assertNull( allocationPolicy.getActiveAllocator( null, 3 ) ); allocationPolicy.reset(); - assertEquals( buffers.get( 0 ), allocationPolicy.getActiveBuffer( null, 1 ) ); - assertEquals( buffers.get( 1 ), allocationPolicy.getActiveBuffer( null, 1 ) ); - assertEquals( buffers.get( 2 ), allocationPolicy.getActiveBuffer( null, 1 ) ); - assertEquals( buffers.get( 3 ), allocationPolicy.getActiveBuffer( null, 1 ) ); - assertEquals( buffers.get( 0 ), allocationPolicy.getActiveBuffer( null, 1 ) ); - assertEquals( buffers.get( 1 ), allocationPolicy.getActiveBuffer( null, 1 ) ); - assertEquals( buffers.get( 2 ), allocationPolicy.getActiveBuffer( null, 1 ) ); - assertEquals( buffers.get( 3 ), allocationPolicy.getActiveBuffer( null, 1 ) ); + assertEquals( allocators.get( 0 ), allocationPolicy.getActiveAllocator( null, 1 ) ); + assertEquals( allocators.get( 1 ), allocationPolicy.getActiveAllocator( null, 1 ) ); + assertEquals( allocators.get( 2 ), allocationPolicy.getActiveAllocator( null, 1 ) ); + assertEquals( allocators.get( 3 ), allocationPolicy.getActiveAllocator( null, 1 ) ); + assertEquals( allocators.get( 0 ), allocationPolicy.getActiveAllocator( null, 1 ) ); + assertEquals( allocators.get( 1 ), allocationPolicy.getActiveAllocator( null, 1 ) ); + assertEquals( allocators.get( 2 ), allocationPolicy.getActiveAllocator( null, 1 ) ); + assertEquals( allocators.get( 3 ), allocationPolicy.getActiveAllocator( null, 1 ) ); } @@ -97,9 +99,9 @@ public class RoundRobinAllocationPolicyT allocationPolicy.setMaxAllocations( 1 ); - assertNotNull( allocationPolicy.getActiveBuffer( null, 1 ) ); - assertNull( allocationPolicy.getActiveBuffer( null, 2 ) ); - assertNull( allocationPolicy.getActiveBuffer( null, 3 ) ); + assertNotNull( allocationPolicy.getActiveAllocator( null, 1 ) ); + assertNull( allocationPolicy.getActiveAllocator( null, 2 ) ); + assertNull( allocationPolicy.getActiveAllocator( null, 3 ) ); } @@ -107,96 +109,44 @@ public class RoundRobinAllocationPolicyT /** * Dummy {@link OffHeapMemoryBuffer} that do nothing. */ - private static class DummyOffHeapMemoryBufferImpl - implements OffHeapMemoryBuffer<Object> + private static class DummyByteBufferAllocator + implements ByteBufferAllocator { @Override - public int used() - { - return 0; - } - - @Override - public int capacity() - { - return 0; - } - - @Override - public int getBufferNumber() - { - return 0; + public void free( ByteBuffer buffer ) + { } @Override - public Pointer<Object> store( byte[] payload ) + public ByteBuffer allocate( int size ) { return null; } @Override - public Pointer<Object> store( byte[] payload, Date expires ) - { - return null; - } - - @Override - public Pointer<Object> store( byte[] payload, long expiresIn ) - { - return null; - } - - @Override - public byte[] retrieve( Pointer<Object> pointer ) - { - return null; - } - - @Override - public int free( Pointer<Object> pointer2free ) - { - return 0; - } - - @Override public void clear() - { + { } @Override - public void disposeExpiredRelative() - { - } - - @Override - public void disposeExpiredAbsolute() - { - } - - @Override - public long collectExpired() + public int getCapacity() { return 0; } @Override - public long collectLFU( int limit ) + public int getNumber() { return 0; } @Override - public Pointer<Object> update( Pointer<Object> pointer, byte[] payload ) + public void close() + throws IOException { - return null; - } - - @Override - public <V> Pointer<Object> allocate( Class<V> type, int size, long expiresIn, long expires ) - { - // TODO Auto-generated method stub - return null; + } + } }
Modified: incubator/directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/Starter.java URL: http://svn.apache.org/viewvc/incubator/directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/Starter.java?rev=1295522&r1=1295521&r2=1295522&view=diff ============================================================================== --- incubator/directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/Starter.java (original) +++ incubator/directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/Starter.java Thu Mar 1 11:41:34 2012 @@ -70,6 +70,16 @@ public class Starter logger.info( "************************************************" ); } + private static void dump( MemoryManagerService<Object> mms ) + { + logger.info( "off-heap - allocated: " + Ram.inMb( mms.capacity() ) ); + logger.info( "off-heap - used: " + Ram.inMb( mms.used() ) ); + logger.info( "heap - max: " + Ram.inMb( Runtime.getRuntime().maxMemory() ) ); + logger.info( "heap - allocated: " + Ram.inMb( Runtime.getRuntime().totalMemory() ) ); + logger.info( "heap - free : " + Ram.inMb( Runtime.getRuntime().freeMemory() ) ); + logger.info( "************************************************" ); + } + public void rawInsert( int megabytes, int howMany ) { OffHeapMemoryBuffer<Object> mem = OffHeapMemoryBufferImpl.createNew( megabytes * 1024 * 1024 ); @@ -116,10 +126,7 @@ public class Starter logger.info( "...done in " + ( System.currentTimeMillis() - start ) + " msecs." ); logger.info( "---------------------------------" ); - for ( OffHeapMemoryBuffer<Object> buf : MemoryManager.getBuffers() ) - { - dump( buf ); - } + dump( MemoryManager.getMemoryManager() ); } Added: incubator/directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/allocator/FixedSizeByteBufferAllocatorImplTest.java URL: http://svn.apache.org/viewvc/incubator/directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/allocator/FixedSizeByteBufferAllocatorImplTest.java?rev=1295522&view=auto ============================================================================== --- incubator/directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/allocator/FixedSizeByteBufferAllocatorImplTest.java (added) +++ incubator/directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/allocator/FixedSizeByteBufferAllocatorImplTest.java Thu Mar 1 11:41:34 2012 @@ -0,0 +1,111 @@ +package org.apache.directmemory.memory.allocator; + +import java.nio.ByteBuffer; + +import junit.framework.Assert; + +import org.junit.Test; + +public class FixedSizeByteBufferAllocatorImplTest +{ + @Test + public void allocationTest() + { + + ByteBufferAllocator allocator = new FixedSizeByteBufferAllocatorImpl( 0, 5000, 256, 1 ); + + ByteBuffer bf1 = allocator.allocate( 250 ); + Assert.assertEquals( 256, bf1.capacity() ); + Assert.assertEquals( 250, bf1.limit() ); + + ByteBuffer bf2 = allocator.allocate( 251 ); + Assert.assertEquals( 256, bf2.capacity() ); + Assert.assertEquals( 251, bf2.limit() ); + + ByteBuffer bf3 = allocator.allocate( 200 ); + Assert.assertEquals( 256, bf3.capacity() ); + Assert.assertEquals( 200, bf3.limit() ); + + ByteBuffer bf4 = allocator.allocate( 2000 ); + Assert.assertNull( bf4 ); + + ByteBuffer bf5 = allocator.allocate( 298 ); + Assert.assertNull( bf5 ); + + ByteBuffer bf6 = allocator.allocate( 128 ); + Assert.assertEquals( 256, bf6.capacity() ); + Assert.assertEquals( 128, bf6.limit() ); + + } + + + @Test + public void releaseTest() + { + + ByteBufferAllocator allocator = new FixedSizeByteBufferAllocatorImpl( 0, 1000, 256, 1 ); + + ByteBuffer bf1 = allocator.allocate( 250 ); + Assert.assertEquals( 256, bf1.capacity() ); + Assert.assertEquals( 250, bf1.limit() ); + + ByteBuffer bf2 = allocator.allocate( 251 ); + Assert.assertEquals( 256, bf2.capacity() ); + Assert.assertEquals( 251, bf2.limit() ); + + ByteBuffer bf3 = allocator.allocate( 252 ); + Assert.assertEquals( 256, bf3.capacity() ); + Assert.assertEquals( 252, bf3.limit() ); + + ByteBuffer bf4 = allocator.allocate( 500 ); + Assert.assertNull( bf4 ); + + allocator.free( bf1 ); + allocator.free( bf2 ); + + ByteBuffer bf5 = allocator.allocate( 500 ); + Assert.assertNull( bf5 ); + + ByteBuffer bf6 = allocator.allocate( 249 ); + Assert.assertEquals( 256, bf6.capacity() ); + Assert.assertEquals( 249, bf6.limit() ); + + ByteBuffer bf7 = allocator.allocate( 248 ); + Assert.assertEquals( 256, bf7.capacity() ); + Assert.assertEquals( 248, bf7.limit() ); + + } + + @Test + public void allocateAndFreeTest() + { + + ByteBufferAllocator allocator = new FixedSizeByteBufferAllocatorImpl( 0, 1000, 256, 1 ); + + for (int i = 0; i < 1000; i++) + { + ByteBuffer bf1 = allocator.allocate( 250 ); + Assert.assertEquals( 256, bf1.capacity() ); + Assert.assertEquals( 250, bf1.limit() ); + + allocator.free( bf1 ); + } + + + ByteBuffer bf2 = allocator.allocate( 1000 ); + Assert.assertNull( bf2 ); + + for (int i = 0; i < 3; i++) + { + ByteBuffer bf3 = allocator.allocate( 250 ); + Assert.assertEquals( 256, bf3.capacity() ); + Assert.assertEquals( 250, bf3.limit() ); + + } + + ByteBuffer bf4 = allocator.allocate( 238 ); + Assert.assertNull( bf4 ); + + } + +} Added: incubator/directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/allocator/MergingByteBufferAllocatorImplTest.java URL: http://svn.apache.org/viewvc/incubator/directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/allocator/MergingByteBufferAllocatorImplTest.java?rev=1295522&view=auto ============================================================================== --- incubator/directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/allocator/MergingByteBufferAllocatorImplTest.java (added) +++ incubator/directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/allocator/MergingByteBufferAllocatorImplTest.java Thu Mar 1 11:41:34 2012 @@ -0,0 +1,169 @@ +package org.apache.directmemory.memory.allocator; + +import java.nio.BufferOverflowException; +import java.nio.ByteBuffer; + +import junit.framework.Assert; + +import org.junit.Test; + +public class MergingByteBufferAllocatorImplTest +{ + @Test + public void allocationTest() + { + + ByteBufferAllocator allocator = new MergingByteBufferAllocatorImpl( 0, 5000 ); + + ByteBuffer bf1 = allocator.allocate( 250 ); + Assert.assertEquals( 250, bf1.capacity() ); + Assert.assertEquals( 250, bf1.limit() ); + + ByteBuffer bf2 = allocator.allocate( 251 ); + Assert.assertEquals( 251, bf2.capacity() ); + Assert.assertEquals( 251, bf2.limit() ); + + ByteBuffer bf3 = allocator.allocate( 200 ); + Assert.assertEquals( 200, bf3.capacity() ); + Assert.assertEquals( 200, bf3.limit() ); + + ByteBuffer bf4 = allocator.allocate( 2000 ); + Assert.assertEquals( 2000, bf4.capacity() ); + Assert.assertEquals( 2000, bf4.limit() ); + + ByteBuffer bf5 = allocator.allocate( 2001 ); + Assert.assertEquals( 2001, bf5.capacity() ); + Assert.assertEquals( 2001, bf5.limit() ); + + ByteBuffer bf6 = allocator.allocate( 298 ); + Assert.assertEquals( 298, bf6.capacity() ); + Assert.assertEquals( 298, bf6.limit() ); + + ByteBuffer bf7 = allocator.allocate( 128 ); + Assert.assertNull( bf7 ); + + } + + + @Test + public void releaseTest() + { + + ByteBufferAllocator allocator = new MergingByteBufferAllocatorImpl( 0, 1000 ); + + ByteBuffer bf1 = allocator.allocate( 250 ); + Assert.assertEquals( 250, bf1.capacity() ); + Assert.assertEquals( 250, bf1.limit() ); + + ByteBuffer bf2 = allocator.allocate( 251 ); + Assert.assertEquals( 251, bf2.capacity() ); + Assert.assertEquals( 251, bf2.limit() ); + + ByteBuffer bf3 = allocator.allocate( 252 ); + Assert.assertEquals( 252, bf3.capacity() ); + Assert.assertEquals( 252, bf3.limit() ); + + ByteBuffer bf4 = allocator.allocate( 500 ); + Assert.assertNull( bf4 ); + + allocator.free( bf1 ); + allocator.free( bf2 ); + + ByteBuffer bf5 = allocator.allocate( 500 ); + Assert.assertEquals( 501, bf5.capacity() ); + Assert.assertEquals( 500, bf5.limit() ); + + } + + @Test + public void allocateAndFreeTest() + { + + ByteBufferAllocator allocator = new MergingByteBufferAllocatorImpl( 0, 1000 ); + + for (int i = 0; i < 1000; i++) + { + ByteBuffer bf1 = allocator.allocate( 250 ); + Assert.assertEquals( 250, bf1.capacity() ); + Assert.assertEquals( 250, bf1.limit() ); + + allocator.free( bf1 ); + } + + + ByteBuffer bf2 = allocator.allocate( 1000 ); + Assert.assertEquals( 1000, bf2.capacity() ); + Assert.assertEquals( 1000, bf2.limit() ); + + } + + @Test + public void allocationWithoutSplittingPointerTest() + { + + ByteBufferAllocator allocator = new MergingByteBufferAllocatorImpl( 0, 200 ); + + ByteBuffer bf1 = allocator.allocate( 180 ); + Assert.assertEquals( 200, bf1.capacity() ); + Assert.assertEquals( 180, bf1.limit() ); + + ByteBuffer bf2 = allocator.allocate( 5 ); + Assert.assertNull( bf2 ); + + allocator.free( bf1 ); + + + ByteBuffer bf3 = allocator.allocate( 10 ); + Assert.assertEquals( 10, bf3.capacity() ); + Assert.assertEquals( 10, bf3.limit() ); + + ByteBuffer bf4 = allocator.allocate( 20 ); + Assert.assertEquals( 20, bf4.capacity() ); + Assert.assertEquals( 20, bf4.limit() ); + + ByteBuffer bf5 = allocator.allocate( 30 ); + Assert.assertEquals( 30, bf5.capacity() ); + Assert.assertEquals( 30, bf5.limit() ); + + allocator.free( bf4 ); + allocator.free( bf3 ); + + ByteBuffer bf6 = allocator.allocate( 25 ); + Assert.assertEquals( 30, bf6.capacity() ); + Assert.assertEquals( 25, bf6.limit() ); + + } + + @Test + public void allocationWithDifferentRatioTest() + { + + MergingByteBufferAllocatorImpl allocator = new MergingByteBufferAllocatorImpl( 0, 200 ); + allocator.setSizeRatioThreshold( 0.95 ); + + allocator.setSizeRatioThreshold( 10 ); + + ByteBuffer bf1 = allocator.allocate( 180 ); + Assert.assertEquals( 180, bf1.capacity() ); + Assert.assertEquals( 180, bf1.limit() ); + + ByteBuffer bf2 = allocator.allocate( 10 ); + Assert.assertEquals( 20, bf2.capacity() ); + Assert.assertEquals( 10, bf2.limit() ); + + } + + + @Test(expected = BufferOverflowException.class) + public void allocationThrowingBOExceptionTest() + { + + MergingByteBufferAllocatorImpl allocator = new MergingByteBufferAllocatorImpl( 0, 200 ); + allocator.setReturnNullWhenBufferIsFull( false ); + + allocator.allocate( 210 ); + Assert.fail(); + } + + +} Added: incubator/directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/allocator/SlabByteBufferAllocatorImplTest.java URL: http://svn.apache.org/viewvc/incubator/directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/allocator/SlabByteBufferAllocatorImplTest.java?rev=1295522&view=auto ============================================================================== --- incubator/directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/allocator/SlabByteBufferAllocatorImplTest.java (added) +++ incubator/directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/allocator/SlabByteBufferAllocatorImplTest.java Thu Mar 1 11:41:34 2012 @@ -0,0 +1,57 @@ +package org.apache.directmemory.memory.allocator; + +import java.nio.ByteBuffer; +import java.util.ArrayList; +import java.util.List; + +import junit.framework.Assert; + +import org.junit.Test; + +public class SlabByteBufferAllocatorImplTest +{ + @Test + public void allocationTest() + { + + List<FixedSizeByteBufferAllocatorImpl> slabs = new ArrayList<FixedSizeByteBufferAllocatorImpl>(); + slabs.add( new FixedSizeByteBufferAllocatorImpl( 0, 1024, 128, 1 ) ); + slabs.add( new FixedSizeByteBufferAllocatorImpl( 1, 1024, 256, 1 ) ); + slabs.add( new FixedSizeByteBufferAllocatorImpl( 2, 1024, 512, 1 ) ); + slabs.add( new FixedSizeByteBufferAllocatorImpl( 3, 1024, 1024, 1 ) ); + + + ByteBufferAllocator allocator = new SlabByteBufferAllocatorImpl( 0, slabs, false ); + + ByteBuffer bf1 = allocator.allocate( 250 ); + Assert.assertEquals( 256, bf1.capacity() ); + Assert.assertEquals( 250, bf1.limit() ); + + ByteBuffer bf2 = allocator.allocate( 251 ); + Assert.assertEquals( 256, bf2.capacity() ); + Assert.assertEquals( 251, bf2.limit() ); + + ByteBuffer bf3 = allocator.allocate( 200 ); + Assert.assertEquals( 256, bf3.capacity() ); + Assert.assertEquals( 200, bf3.limit() ); + + ByteBuffer bf4 = allocator.allocate( 100 ); + Assert.assertEquals( 128, bf4.capacity() ); + Assert.assertEquals( 100, bf4.limit() ); + + ByteBuffer bf5 = allocator.allocate( 550 ); + Assert.assertEquals( 1024, bf5.capacity() ); + Assert.assertEquals( 550, bf5.limit() ); + + ByteBuffer bf6 = allocator.allocate( 800 ); + Assert.assertNull( bf6 ); + + allocator.free( bf5 ); + + ByteBuffer bf7 = allocator.allocate( 800 ); + Assert.assertEquals( 1024, bf7.capacity() ); + Assert.assertEquals( 800, bf7.limit() ); + + } + +} Modified: incubator/directmemory/trunk/integrations/ehcache/src/main/java/org/apache/directmemory/ehcache/DirectMemoryCache.java URL: http://svn.apache.org/viewvc/incubator/directmemory/trunk/integrations/ehcache/src/main/java/org/apache/directmemory/ehcache/DirectMemoryCache.java?rev=1295522&r1=1295521&r2=1295522&view=diff ============================================================================== --- incubator/directmemory/trunk/integrations/ehcache/src/main/java/org/apache/directmemory/ehcache/DirectMemoryCache.java (original) +++ incubator/directmemory/trunk/integrations/ehcache/src/main/java/org/apache/directmemory/ehcache/DirectMemoryCache.java Thu Mar 1 11:41:34 2012 @@ -46,14 +46,14 @@ public class DirectMemoryCache<K, V> public DirectMemoryCache( int numberOfBuffers, int size, int initialCapacity, int concurrencyLevel ) { MemoryManagerService<V> memoryManager = - new MemoryManagerServiceWithAllocationPolicyImpl<V>( new RoundRobinAllocationPolicy<V>(), false ); + new MemoryManagerServiceWithAllocationPolicyImpl<V>( new RoundRobinAllocationPolicy(), false ); cacheService = new DirectMemory<K, V>().setMemoryManager( memoryManager ) .setNumberOfBuffers( numberOfBuffers ) .setSize( size ) .setInitialCapacity( initialCapacity ) .setConcurrencyLevel( concurrencyLevel ) - .newCacheService();; + .newCacheService(); } public DirectMemoryCache( int numberOfBuffers, int size ) @@ -138,22 +138,12 @@ public class DirectMemoryCache<K, V> public long sizeInBytes() { - long i = 0; - for ( OffHeapMemoryBuffer<V> buffer : getMemoryManager().getBuffers() ) - { - i += buffer.used(); - } - return i; + return getMemoryManager().used(); } public long capacityInBytes() { - long i = 0; - for ( OffHeapMemoryBuffer<V> buffer : getMemoryManager().getBuffers() ) - { - i += buffer.capacity(); - } - return i; + return getMemoryManager().capacity(); } public void dump( OffHeapMemoryBuffer<V> mem ) Modified: incubator/directmemory/trunk/integrations/ehcache/src/main/java/org/apache/directmemory/ehcache/DirectMemoryStore.java URL: http://svn.apache.org/viewvc/incubator/directmemory/trunk/integrations/ehcache/src/main/java/org/apache/directmemory/ehcache/DirectMemoryStore.java?rev=1295522&r1=1295521&r2=1295522&view=diff ============================================================================== --- incubator/directmemory/trunk/integrations/ehcache/src/main/java/org/apache/directmemory/ehcache/DirectMemoryStore.java (original) +++ incubator/directmemory/trunk/integrations/ehcache/src/main/java/org/apache/directmemory/ehcache/DirectMemoryStore.java Thu Mar 1 11:41:34 2012 @@ -34,7 +34,6 @@ import net.sf.ehcache.store.disk.StoreUp import net.sf.ehcache.writer.CacheWriterManager; import org.apache.directmemory.cache.CacheServiceImpl; import org.apache.directmemory.measures.Ram; -import org.apache.directmemory.memory.OffHeapMemoryBuffer; import org.apache.directmemory.memory.Pointer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -98,7 +97,7 @@ public class DirectMemoryStore logger.info( "default buffer size = " + DEFAULT_BUFFER_SIZE ); logger.info( "off heap size = " + offHeapSizeBytes ); int numberOfBuffers = (int) ( offHeapSizeBytes / DEFAULT_BUFFER_SIZE ); - numberOfBuffers = DEFAULT_NUMBER_BYTE_BUFFERS; +// numberOfBuffers = DEFAULT_NUMBER_BYTE_BUFFERS; logger.info( "no of buffers = " + numberOfBuffers ); this.bufferLocks = new ArrayList<ReentrantLock>( numberOfBuffers ); @@ -109,6 +108,7 @@ public class DirectMemoryStore directMemoryCache = new DirectMemoryCache<Object, Element>( numberOfBuffers, (int) ( offHeapSizeBytes / numberOfBuffers ) ); + } @Override @@ -586,16 +586,10 @@ public class DirectMemoryStore public void dumpTotal() { - long capacity = 0; - long used = 0; - for ( OffHeapMemoryBuffer<Element> buffer : directMemoryCache.getMemoryManager().getBuffers() ) - { - capacity += buffer.capacity(); - used += buffer.used(); - } + long capacity = directMemoryCache.getMemoryManager().capacity(); + long used = directMemoryCache.getMemoryManager().used(); + logger.info( "***Totals***************************************" ); - logger.info( - format( "off-heap - # buffers: \t%1d", directMemoryCache.getMemoryManager().getBuffers().size() ) ); logger.info( format( "off-heap - allocated: \t%1s", Ram.inMb( capacity ) ) ); logger.info( format( "off-heap - used: \t%1s", Ram.inMb( used ) ) ); logger.info( format( "heap - max: \t%1s", Ram.inMb( Runtime.getRuntime().maxMemory() ) ) ); Modified: incubator/directmemory/trunk/integrations/ehcache/src/test/java/org/apache/directmemory/ehcache/EHCacheTest.java URL: http://svn.apache.org/viewvc/incubator/directmemory/trunk/integrations/ehcache/src/test/java/org/apache/directmemory/ehcache/EHCacheTest.java?rev=1295522&r1=1295521&r2=1295522&view=diff ============================================================================== --- incubator/directmemory/trunk/integrations/ehcache/src/test/java/org/apache/directmemory/ehcache/EHCacheTest.java (original) +++ incubator/directmemory/trunk/integrations/ehcache/src/test/java/org/apache/directmemory/ehcache/EHCacheTest.java Thu Mar 1 11:41:34 2012 @@ -74,7 +74,7 @@ public class EHCacheTest { if ( ( i % 1000 ) == 0 ) { - System.out.println( "heatbeat " + i ); + System.out.println( "heatbeat 2 " + i ); stats( ehcache ); } element = new Element( i, new byte[1024] ); Modified: incubator/directmemory/trunk/itests/osgi/src/test/java/org/apache/directmemory/tests/osgi/cache/CacheServiceExportingActivator.java URL: http://svn.apache.org/viewvc/incubator/directmemory/trunk/itests/osgi/src/test/java/org/apache/directmemory/tests/osgi/cache/CacheServiceExportingActivator.java?rev=1295522&r1=1295521&r2=1295522&view=diff ============================================================================== --- incubator/directmemory/trunk/itests/osgi/src/test/java/org/apache/directmemory/tests/osgi/cache/CacheServiceExportingActivator.java (original) +++ incubator/directmemory/trunk/itests/osgi/src/test/java/org/apache/directmemory/tests/osgi/cache/CacheServiceExportingActivator.java Thu Mar 1 11:41:34 2012 @@ -43,7 +43,7 @@ public class CacheServiceExportingActiva public void start( BundleContext context ) throws Exception { - AllocationPolicy<SimpleObject> allocationPolicy = new RoundRobinAllocationPolicy<SimpleObject>(); + AllocationPolicy allocationPolicy = new RoundRobinAllocationPolicy(); MemoryManagerService<SimpleObject> memoryManager = new MemoryManagerServiceWithAllocationPolicyImpl<SimpleObject>( allocationPolicy, true ); this.cacheService =
