Author: fhanik
Date: Thu May 18 11:25:46 2006
New Revision: 407603

URL: http://svn.apache.org/viewvc?rev=407603&view=rev
Log:
Remove the byte[] pool, its the wrong approach, will implement a buffer cache 
instead
Add in the ability to calculate the size of a data package without serializing 
it

Removed:
    
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/BytePool.java
    
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/BytePool15Impl.java
Modified:
    
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/ThroughputInterceptor.java
    
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/ChannelData.java
    
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/XByteBuffer.java
    
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/membership/MemberImpl.java

Modified: 
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/ThroughputInterceptor.java
URL: 
http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/ThroughputInterceptor.java?rev=407603&r1=407602&r2=407603&view=diff
==============================================================================
--- 
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/ThroughputInterceptor.java
 (original)
+++ 
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/ThroughputInterceptor.java
 Thu May 18 11:25:46 2006
@@ -45,7 +45,7 @@
     int addrlength = 0;
 
     public void sendMessage(Member[] destination, ChannelMessage msg, 
InterceptorPayload payload) throws ChannelException {
-        long bytes = 
XByteBuffer.getDataPackageLength(((ChannelData)msg).getDataPackageLength(addrlength));
+        long bytes = 
XByteBuffer.getDataPackageLength(((ChannelData)msg).getDataPackageLength());
         long start = System.currentTimeMillis();
         super.sendMessage(destination,msg,payload);
         long stop = System.currentTimeMillis();

Modified: 
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/ChannelData.java
URL: 
http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/ChannelData.java?rev=407603&r1=407602&r2=407603&view=diff
==============================================================================
--- 
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/ChannelData.java
 (original)
+++ 
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/ChannelData.java
 Thu May 18 11:25:46 2006
@@ -164,14 +164,14 @@
         setUniqueId(data);
     }
 
-    public int getDataPackageLength(int addrlength) {
+    public int getDataPackageLength() {
         int length = 
             4 + //options
             8 + //timestamp  off=4
             4 + //unique id length off=12
             uniqueId.length+ //id data off=12+uniqueId.length
             4 + //addr length off=12+uniqueId.length+4
-            addrlength+ //member data off=12+uniqueId.length+4+add.length
+            ((MemberImpl)address).getDataLength()+ //member data 
off=12+uniqueId.length+4+add.length
             4 + //message length off=12+uniqueId.length+4+add.length+4
             message.getLength();
         return length;
@@ -184,7 +184,7 @@
      */
     public byte[] getDataPackage()  {
         byte[] addr = ((MemberImpl)address).getData(false);
-        int length = getDataPackageLength(addr.length);
+        int length = getDataPackageLength();
         byte[] data = new byte[length];
         int offset = 0;
         XByteBuffer.toBytes(options,data,offset);

Modified: 
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/XByteBuffer.java
URL: 
http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/XByteBuffer.java?rev=407603&r1=407602&r2=407603&view=diff
==============================================================================
--- 
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/XByteBuffer.java
 (original)
+++ 
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/XByteBuffer.java
 Thu May 18 11:25:46 2006
@@ -94,8 +94,7 @@
      * @todo use a pool of byte[] for performance
      */
     public XByteBuffer(int size, boolean discard) {
-        //buf = new byte[size];
-        buf = BytePool.getBytePool().getArray(size);
+        buf = new byte[size];
         this.discard = discard;
     }
     
@@ -105,13 +104,12 @@
     
     public XByteBuffer(byte[] data, int size,boolean discard) {
         int length = Math.max(data.length,size);
-        //buf = new byte[length];
-        buf = BytePool.getBytePool().getArray(length);
+        buf = new byte[length];
         System.arraycopy(data,0,buf,0,data.length);
         bufSize = data.length;
         this.discard = discard;
     }
-
+    
     public int getLength() {
         return bufSize;
     }
@@ -130,8 +128,7 @@
      * Returns the bytes in the buffer, in its exact length
      */
     public byte[] getBytes() {
-        //byte[] b = new byte[bufSize];
-        byte[] b = BytePool.getBytePool().getFixedArray(bufSize);
+        byte[] b = new byte[bufSize];
         System.arraycopy(buf,0,b,0,bufSize);
         return b;
     }
@@ -239,8 +236,7 @@
 
     public void expand(int newcount) {
         //don't change the allocation strategy
-        //byte newbuf[] = new byte[Math.max(buf.length << 1, newcount)];
-        byte newbuf[] = BytePool.getBytePool().getArray(Math.max(buf.length << 
1, newcount));
+        byte newbuf[] = new byte[Math.max(buf.length << 1, newcount)];
         System.arraycopy(buf, 0, newbuf, 0, bufSize);
         buf = newbuf;
     }
@@ -311,8 +307,7 @@
         int psize = countPackages(true);
         if (psize == 0) throw new java.lang.IllegalStateException("No package 
exists in XByteBuffer");
         int size = toInt(buf, START_DATA.length);
-        //byte[] data = new byte[size];
-        byte[] data = BytePool.getBytePool().getFixedArray(size);
+        byte[] data = new byte[size];
         System.arraycopy(buf, START_DATA.length + 4, data, 0, size);
         if (clearFromBuffer) {
             int totalsize = START_DATA.length + 4 + size + END_DATA.length;
@@ -352,8 +347,7 @@
     
     public static byte[] createDataPackage(byte[] data) {
         int length = getDataPackageLength(data.length);
-        //byte[] result = new byte[length];
-        byte[] result = BytePool.getBytePool().getFixedArray(length);
+        byte[] result = new byte[length];
         return createDataPackage(data,0,data.length,result,0);
     }
     

Modified: 
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/membership/MemberImpl.java
URL: 
http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/membership/MemberImpl.java?rev=407603&r1=407602&r2=407603&view=diff
==============================================================================
--- 
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/membership/MemberImpl.java
 (original)
+++ 
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/membership/MemberImpl.java
 Thu May 18 11:25:46 2006
@@ -24,7 +24,6 @@
 import org.apache.catalina.tribes.Member;
 import org.apache.catalina.tribes.io.XByteBuffer;
 import org.apache.catalina.tribes.transport.SenderState;
-import org.apache.catalina.tribes.io.BytePool;
 
 /**
  * A <b>membership</b> implementation using simple multicast.
@@ -151,6 +150,11 @@
         return getData(getalive,false);
     }
     
+    
+    public int getDataLength() {
+        return 8+4+1+host.length+16+4+payload.length;
+    }
+    
     /**
      * 
      * @param getalive boolean - calculate memberAlive time
@@ -180,13 +184,10 @@
         //uniqueId - 16 bytes
         //payload length - 4 bytes
         //payload plen bytes
-        
-        
         byte[] addr = host;
         long alive=System.currentTimeMillis()-getServiceStartTime();
         byte hl = (byte)addr.length;
-        //byte[] data = new byte[8+4+1+addr.length+16+4+payload.length];
-        byte[] data = 
BytePool.getBytePool().getFixedArray(8+4+1+addr.length+16+4+payload.length);
+        byte[] data = new byte[getDataLength()];
         int pos = 0;
         //alive data
         XByteBuffer.toBytes((long)alive,data,0);
@@ -258,7 +259,6 @@
        member.payload = payload;
        
        member.dataPkg = new byte[data.length];
-       //member.dataPkg = BytePool.getBytePool().getFixedArray(data.length);
        System.arraycopy(data,0,member.dataPkg,0,data.length);
        
        return member;
@@ -409,8 +409,7 @@
 
     public void readExternal(ObjectInput in) throws IOException, 
ClassNotFoundException {
         int length = in.readInt();
-        //byte[] message = new byte[length];
-        byte[] message = BytePool.getBytePool().getFixedArray(length);
+        byte[] message = new byte[length];
         in.read(message);
         getMember(message,this);
         



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to