Commit Graph

375 Commits

Author SHA1 Message Date
Trustin Lee
7eb0f6105d Fix memory leaks 2013-06-13 13:32:47 +09:00
Trustin Lee
14158070bf Revamp the core API to reduce memory footprint and consumption
The API changes made so far turned out to increase the memory footprint
and consumption while our intention was actually decreasing them.

Memory consumption issue:

When there are many connections which does not exchange data frequently,
the old Netty 4 API spent a lot more memory than 3 because it always
allocates per-handler buffer for each connection unless otherwise
explicitly stated by a user.  In a usual real world load, a client
doesn't always send requests without pausing, so the idea of having a
buffer whose life cycle if bound to the life cycle of a connection
didn't work as expected.

Memory footprint issue:

The old Netty 4 API decreased overall memory footprint by a great deal
in many cases.  It was mainly because the old Netty 4 API did not
allocate a new buffer and event object for each read.  Instead, it
created a new buffer for each handler in a pipeline.  This works pretty
well as long as the number of handlers in a pipeline is only a few.
However, for a highly modular application with many handlers which
handles connections which lasts for relatively short period, it actually
makes the memory footprint issue much worse.

Changes:

All in all, this is about retaining all the good changes we made in 4 so
far such as better thread model and going back to the way how we dealt
with message events in 3.

To fix the memory consumption/footprint issue mentioned above, we made a
hard decision to break the backward compatibility again with the
following changes:

- Remove MessageBuf
- Merge Buf into ByteBuf
- Merge ChannelInboundByte/MessageHandler and ChannelStateHandler into ChannelInboundHandler
  - Similar changes were made to the adapter classes
- Merge ChannelOutboundByte/MessageHandler and ChannelOperationHandler into ChannelOutboundHandler
  - Similar changes were made to the adapter classes
- Introduce MessageList which is similar to `MessageEvent` in Netty 3
- Replace inboundBufferUpdated(ctx) with messageReceived(ctx, MessageList)
- Replace flush(ctx, promise) with write(ctx, MessageList, promise)
- Remove ByteToByteEncoder/Decoder/Codec
  - Replaced by MessageToByteEncoder<ByteBuf>, ByteToMessageDecoder<ByteBuf>, and ByteMessageCodec<ByteBuf>
- Merge EmbeddedByteChannel and EmbeddedMessageChannel into EmbeddedChannel
- Add SimpleChannelInboundHandler which is sometimes more useful than
  ChannelInboundHandlerAdapter
- Bring back Channel.isWritable() from Netty 3
- Add ChannelInboundHandler.channelWritabilityChanges() event
- Add RecvByteBufAllocator configuration property
  - Similar to ReceiveBufferSizePredictor in Netty 3
  - Some existing configuration properties such as
    DatagramChannelConfig.receivePacketSize is gone now.
- Remove suspend/resumeIntermediaryDeallocation() in ByteBuf

This change would have been impossible without @normanmaurer's help. He
fixed, ported, and improved many parts of the changes.
2013-06-10 16:10:39 +09:00
Norman Maurer
81e3c1719a [maven-release-plugin] prepare for next development iteration 2013-05-18 09:59:13 +02:00
Norman Maurer
99caefdf39 [maven-release-plugin] prepare release netty-4.0.0.CR3 2013-05-18 09:57:11 +02:00
Trustin Lee
41f5d5650d Add Javadoc to tarball / Upgrade maven-compiler-plugin
- Fixes #1360
2013-05-17 18:32:27 +09:00
Andrei.Pozolotin
feab823bfb use barchardt-udt 2.3.0 release. This fixes #1290 and 1329 2013-05-14 06:54:46 +02:00
Andrei Pozolotin
57a459d970 updated udt and connection test 2013-05-14 06:46:07 +02:00
Trustin Lee
c3b0a9c6b8 Fix duplicate invocation of same plugins due to needless fork of maven-source-plugin
- Fixes #1355
2013-05-13 16:03:00 +09:00
Norman Maurer
c43950a03f [maven-release-plugin] prepare for next development iteration 2013-05-08 18:19:51 +02:00
Norman Maurer
ae76502040 [maven-release-plugin] prepare release netty-4.0.0.CR2 2013-05-08 18:19:38 +02:00
kerr
4bac0443e8 update to barchart-udt 2.2.6
* which fix https://github.com/barchart/barchart-udt/issues/48
2013-04-28 10:52:34 +02:00
Trustin Lee
6bb00cea6f Fix failures in testsuite-osgi-deps
- Make only netty-common depend on javassist at compile scope, and
  all others at test scope
2013-04-19 05:57:53 +09:00
Trustin Lee
7ccbcb90af Upgrade to netty-build-19 2013-04-05 05:38:24 +09:00
Andrei Pozolotin
a3e760a003 fix #1234 - duplicate package-info.java errors in eclipse requires release of netty-build v 19 and netty-parent update. 2013-04-05 05:38:05 +09:00
Prajwal Tuladhar
05850da863 enable checkstyle for test source directory and fix checkstyle errors 2013-03-30 13:18:57 +01:00
Prajwal Tuladhar
c2cd99d90c upgrade to maven 3.0.5
As Netty is using its own CI now
2013-03-28 21:49:36 +01:00
Norman Maurer
59012390f6 Fix version numbering 2013-03-25 08:01:11 +01:00
Norman Maurer
7d7b676eeb [maven-release-plugin] prepare for next development iteration 2013-03-22 15:20:35 +01:00
Norman Maurer
60fc7dac4d [maven-release-plugin] prepare release netty-4.0.0.CR1 2013-03-22 15:20:11 +01:00
Trustin Lee
e147615ddd Upgrade to the latest maven-checkstyle-plugin 2013-03-22 14:49:37 +09:00
Trustin Lee
ffdc2a6b11 Upgrade dependencies 2013-03-22 11:57:15 +09:00
kerr
9175abc451 Update pom.xml
update the barchart-udt to 2.2.5
2013-03-21 08:38:48 +01:00
Trustin Lee
f70babcd94 Upgrade to Karaf 3.0.0.RC1 2013-03-19 15:56:20 +09:00
Trustin Lee
2a87950784 [maven-release-plugin] prepare for next development iteration 2013-03-16 18:41:36 +09:00
Trustin Lee
adfb29330b [maven-release-plugin] prepare release netty-4.0.0.Beta3 2013-03-16 18:40:59 +09:00
Trustin Lee
e69b99fca4 Allow overriding JVM options for tests 2013-03-16 10:15:42 +09:00
Trustin Lee
8372e2ffc9 Skip OSGi testsuite if 'no-osgi' profile is active 2013-03-14 17:21:53 +09:00
Trustin Lee
c25513d5e1 Upgrade to protobuf 2.5 and take advantage of MessageLite.getParserFromType()
- also fall back to MessageBuilder if getParserFromType() is not available.
2013-03-12 16:25:35 +09:00
Trustin Lee
27b2f1304b Why don't CI services upgrade to Maven 3.0.5?
Do they just wait for someone to exploit the vulnerability?
2013-03-11 09:11:11 +09:00
Trustin Lee
49aa907bd0 [maven-release-plugin] prepare for next development iteration 2013-02-26 16:55:07 -08:00
Trustin Lee
5026c2f359 [maven-release-plugin] prepare release netty-4.0.0.Beta2 2013-02-26 16:54:53 -08:00
Trustin Lee
671f9d48d4 Use ConcurrentHashMapV8 wherever possible
- Fixes #1052
2013-02-26 15:54:51 -08:00
Trustin Lee
e65e17c724 Require Maven 3.0.5 to stop users from using insecure 3.0.4 2013-02-23 21:10:53 -08:00
Norman Maurer
b56f60c7ff Make jzlib dependency avaible in example for zlib 2013-02-21 06:59:16 +01:00
Atsuhiko Yamanaka
8fdf788cbd [#1012] Replace forked jzlib with official jzlib and add a test. 2013-02-20 12:49:05 +01:00
Trustin Lee
ee58de0698 Require Maven 3.0.4
.. because testsuite-osgi already requires that
2013-02-15 15:58:09 -08:00
Trustin Lee
d68a04a879 [maven-release-plugin] prepare for next development iteration 2013-02-14 12:56:24 -08:00
Trustin Lee
59e638f8f5 [maven-release-plugin] prepare release netty-4.0.0.Beta1 2013-02-14 12:56:15 -08:00
Trustin Lee
27e0ec1586 Indentation fixes 2013-02-14 12:21:30 -08:00
Trustin Lee
ba4c0e6194 Add microbench to the module list 2013-02-14 11:52:28 -08:00
Trustin Lee
e0cdeaaa2a Revert the bad commit from maven-release-plugin 2013-02-14 11:47:03 -08:00
Trustin Lee
aa64209f9f [maven-release-plugin] rollback the release of netty-4.0.0.Beta1 2013-02-14 11:45:49 -08:00
Trustin Lee
6fc86d0454 Comment out compiler options to work around MRELEASE-715 2013-02-14 11:37:49 -08:00
Trustin Lee
1e32835fbc Include testsuite-osgi as part of the build 2013-02-14 11:33:51 -08:00
Trustin Lee
c457c3e6d6 Rename verify -> testsuite-osgi / Ensure testsuite-osgi runs without ~/.m2/settings.xml changes 2013-02-14 11:27:26 -08:00
Trustin Lee
1f3068fc6a Remove UTF-8 encoding configuration spread over poms 2013-02-14 11:19:05 -08:00
Trustin Lee
54d44c6ac1 Use byte code generation if Javassist is available. 2013-02-08 21:45:14 +09:00
Norman Maurer
d98fbf7a82 Upgrade to new barchart-udt-bundle 2013-02-06 21:31:30 +01:00
Andrei Pozolotin
f24872c566 [#1010] Add verify module to check osgi bundles 2013-02-06 20:13:07 +01:00
Norman Maurer
56b1a18de0 Upgrade barchart udt bundle 2013-02-06 08:04:49 +01:00