You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directmemory.apache.org by no...@apache.org on 2012/11/01 15:28:06 UTC
svn commit: r1404610 - in /directmemory/trunk/directmemory-cache/src:
main/java/org/apache/directmemory/memory/
test/java/org/apache/directmemory/memory/
Author: noctarius
Date: Thu Nov 1 14:28:06 2012
New Revision: 1404610
URL: http://svn.apache.org/viewvc?rev=1404610&view=rev
Log:
Made Pointer::BufferNumber a final field of the PointerImpl implementation since there can't be a non MemoryBuffer pointer anymore. This has an advantage in the memory visibility of the field when cleaning short living pointers.
Modified:
directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/memory/MemoryManagerServiceImpl.java
directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/memory/Pointer.java
directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/memory/PointerImpl.java
directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/memory/UnsafeMemoryManagerServiceImpl.java
directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/AbstractMemoryManagerServiceTest.java
directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/SlabMemoryManagerServiceTest.java
Modified: directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/memory/MemoryManagerServiceImpl.java
URL: http://svn.apache.org/viewvc/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/memory/MemoryManagerServiceImpl.java?rev=1404610&r1=1404609&r2=1404610&view=diff
==============================================================================
--- directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/memory/MemoryManagerServiceImpl.java (original)
+++ directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/memory/MemoryManagerServiceImpl.java Thu Nov 1 14:28:06 2012
@@ -269,10 +269,9 @@ public class MemoryManagerServiceImpl<V>
final long expires )
{
- Pointer<V> p = new PointerImpl<V>( buffer );
+ Pointer<V> p = new PointerImpl<V>( buffer, allocatorIndex );
p.setExpiration( expires, expiresIn );
- p.setBufferNumber( allocatorIndex );
p.setFree( false );
p.createdNow();
Modified: directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/memory/Pointer.java
URL: http://svn.apache.org/viewvc/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/memory/Pointer.java?rev=1404610&r1=1404609&r2=1404610&view=diff
==============================================================================
--- directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/memory/Pointer.java (original)
+++ directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/memory/Pointer.java Thu Nov 1 14:28:06 2012
@@ -40,8 +40,6 @@ public interface Pointer<T>
int getBufferNumber();
- void setBufferNumber( int bufferNumber );
-
long getSize();
void hit();
Modified: directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/memory/PointerImpl.java
URL: http://svn.apache.org/viewvc/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/memory/PointerImpl.java?rev=1404610&r1=1404609&r2=1404610&view=diff
==============================================================================
--- directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/memory/PointerImpl.java (original)
+++ directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/memory/PointerImpl.java Thu Nov 1 14:28:06 2012
@@ -33,6 +33,8 @@ public class PointerImpl<T>
public final MemoryBuffer memoryBuffer;
+ public final int bufferNumber;
+
public long created;
public long expires;
@@ -45,13 +47,12 @@ public class PointerImpl<T>
public AtomicLong lastHit = new AtomicLong();
- public int bufferNumber;
-
public Class<? extends T> clazz;
- public PointerImpl( MemoryBuffer memoryBuffer )
+ public PointerImpl( MemoryBuffer memoryBuffer, int bufferNumber )
{
this.memoryBuffer = memoryBuffer;
+ this.bufferNumber = bufferNumber;
}
@Override
@@ -156,12 +157,6 @@ public class PointerImpl<T>
}
@Override
- public void setBufferNumber( int bufferNumber )
- {
- this.bufferNumber = bufferNumber;
- }
-
- @Override
public void setExpiration( long expires, long expiresIn )
{
this.expires = expires;
Modified: directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/memory/UnsafeMemoryManagerServiceImpl.java
URL: http://svn.apache.org/viewvc/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/memory/UnsafeMemoryManagerServiceImpl.java?rev=1404610&r1=1404609&r2=1404610&view=diff
==============================================================================
--- directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/memory/UnsafeMemoryManagerServiceImpl.java (original)
+++ directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/memory/UnsafeMemoryManagerServiceImpl.java Thu Nov 1 14:28:06 2012
@@ -45,7 +45,7 @@ public class UnsafeMemoryManagerServiceI
protected Pointer<V> instanciatePointer( int size, long expiresIn, long expires )
{
- Pointer<V> p = new PointerImpl<V>( allocator.allocate( size ) );
+ Pointer<V> p = new PointerImpl<V>( allocator.allocate( size ), 1 );
p.setExpiration( expires, expiresIn );
p.setFree( false );
Modified: directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/AbstractMemoryManagerServiceTest.java
URL: http://svn.apache.org/viewvc/directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/AbstractMemoryManagerServiceTest.java?rev=1404610&r1=1404609&r2=1404610&view=diff
==============================================================================
--- directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/AbstractMemoryManagerServiceTest.java (original)
+++ directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/AbstractMemoryManagerServiceTest.java Thu Nov 1 14:28:06 2012
@@ -327,7 +327,7 @@ public abstract class AbstractMemoryMana
public void testUpdate()
{
- final int NUMBER_OF_OBJECTS = 1;
+ final int NUMBER_OF_OBJECTS = 2;
final int BUFFER_SIZE = NUMBER_OF_OBJECTS * SMALL_PAYLOAD_LENGTH;
mms = instanciateMemoryManagerService( BUFFER_SIZE );
@@ -349,10 +349,17 @@ public abstract class AbstractMemoryMana
final Pointer<Object> evenAnotherPointer = mms.update( otherPointer, evenAnotherPayload );
Assert.assertNotNull( evenAnotherPointer );
// Assert.assertEquals( pointer.getStart(), evenAnotherPointer.getStart() );
- Assert.assertEquals( pointer.getSize() / 2, evenAnotherPointer.getSize() );
+ Assert.assertEquals( pointer.getSize(), evenAnotherPointer.getSize() );
// Assert.assertEquals( 2, new String( mms.retrieve( evenAnotherPointer ) ).length() );
Assert.assertTrue( new String( mms.retrieve( evenAnotherPointer ) ).startsWith( new String( evenAnotherPayload ) ) );
+ final byte[] andAnotherPayload = MemoryTestUtils.generateRandomPayload( SMALL_PAYLOAD_LENGTH * 2 );
+ final Pointer<Object> andAnotherPointer = mms.update( otherPointer, andAnotherPayload );
+ Assert.assertNotNull( andAnotherPointer );
+ // Assert.assertEquals( pointer.getStart(), evenAnotherPointer.getStart() );
+ Assert.assertEquals( pointer.getSize() * 2, andAnotherPointer.getSize() );
+ // Assert.assertEquals( 2, new String( mms.retrieve( evenAnotherPointer ) ).length() );
+ Assert.assertTrue( new String( mms.retrieve( andAnotherPointer ) ).startsWith( new String( andAnotherPayload ) ) );
}
@Test
Modified: directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/SlabMemoryManagerServiceTest.java
URL: http://svn.apache.org/viewvc/directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/SlabMemoryManagerServiceTest.java?rev=1404610&r1=1404609&r2=1404610&view=diff
==============================================================================
--- directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/SlabMemoryManagerServiceTest.java (original)
+++ directmemory/trunk/directmemory-cache/src/test/java/org/apache/directmemory/memory/SlabMemoryManagerServiceTest.java Thu Nov 1 14:28:06 2012
@@ -34,21 +34,24 @@ public class SlabMemoryManagerServiceTes
@Override
protected MemoryManagerService<Object> instanciateMemoryManagerService( int bufferSize )
{
- final MemoryManagerService<Object> mms = new MemoryManagerServiceImpl<Object>() {
+ final MemoryManagerService<Object> mms = new MemoryManagerServiceImpl<Object>()
+ {
@Override
protected Allocator instanciateByteBufferAllocator( int allocatorNumber, int size )
{
Collection<FixedSizeByteBufferAllocatorImpl> slabs = new HashSet<FixedSizeByteBufferAllocatorImpl>();
-
- slabs.add( new FixedSizeByteBufferAllocatorImpl(0, size, SMALL_PAYLOAD_LENGTH / 2, 1) );
- slabs.add( new FixedSizeByteBufferAllocatorImpl(1, size, SMALL_PAYLOAD_LENGTH, 1) );
-
- final SlabByteBufferAllocatorImpl allocator = new SlabByteBufferAllocatorImpl( allocatorNumber, slabs, false );
-
+
+ slabs.add( new FixedSizeByteBufferAllocatorImpl( 0, size, SMALL_PAYLOAD_LENGTH / 2, 1 ) );
+ slabs.add( new FixedSizeByteBufferAllocatorImpl( 1, size, SMALL_PAYLOAD_LENGTH, 1 ) );
+ slabs.add( new FixedSizeByteBufferAllocatorImpl( 2, size, SMALL_PAYLOAD_LENGTH * 2, 1 ) );
+
+ final SlabByteBufferAllocatorImpl allocator =
+ new SlabByteBufferAllocatorImpl( allocatorNumber, slabs, false );
+
return allocator;
}
-
+
};
mms.init( 1, bufferSize );
return mms;
@@ -58,22 +61,21 @@ public class SlabMemoryManagerServiceTes
@Test
public void testFullFillAndFreeAndClearBuffer()
{
-
+
}
-
+
@Override
@Test
public void testStoreAllocAndFree()
{
-
+
}
-
-
+
@Override
@Test
public void testAllocate()
{
-
+
}
-
+
}