[jboss-dev-forums] [Design of Messaging on JBoss (Messaging/JBoss)] - Integrating Netty into JBM2
trustin
do-not-reply at jboss.com
Tue Jul 1 06:21:33 EDT 2008
Hi,
I've been trying to integrate Netty into JBM2 since the end of last week. I enountered a problem while implementing MessagingBuffer. According to the source code, a MessagingBuffer implementation is supposed to increase its capacity automatically when it runs out of space. It's what exactly MINA IoBuffer does. Netty has a CompositeByteArray which does similar thing, but it's different from IoBuffer in that it doesn't have position and limit, which means there's no need for flip or rewind. Also, automatic expansion of the buffer is implemented very differently - it's not reallocation and copy but adding a new chunk to the end of the list.
There are a few ways to resolve this differences (in the order of better performance):
1) Replace MINA stuff with Netty and remove position(), limit(), flip(), rewind() and etc from MessagingBuffer.
2) Emulate the current behavior with NIO BuyeBuffer classes.
3) Emulate the current behavior with Netty classes
Of course, the option 1 involves the biggest change among the three and will require the changes in unit tests, while it would be fun for me.
Another alternative is the option 2 - most part of the code is done in NIO ByteBuffer so the implementation shouldn't be that difficult, but I still have to deal with auto-expansion, which leads to unnecessary memory copy.
Option 3 is the worst of all because we are going to build something on top of something built on top of existing buffer (or byte array).
Which option shall I go with? Whichever option we choose, we should make all the existing tests pass.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4161721#4161721
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4161721
More information about the jboss-dev-forums
mailing list