dnrusakov opened a new pull request #3282: STREAMCOMP-2724: Stream Manager 
migrated to mainly use smart pointers instead of a manual memory management
URL: https://github.com/apache/incubator-heron/pull/3282
 
 
   This PR contains the following changes:
   
   1. Stream Manager has been migrated to mainly use smart pointers instead of 
manual memory management.
   
   2. The way how we use object pool has been changed. Previously we had 
several places where we released objects back to the pool, but those objects 
were not previously acquired from the pool. This might cause memory leaks. This 
PR reduces the overall amount of use cases where we use pool-based allocations. 
Actually, now there are just three most "high load" message types 
(`HeronTupleSet2`, `HeronTupleSet`, `TupleStreamMessage`) left which are 
managed by the memory pool. And for such use cases i verified that we release 
back only objects which has been previously acquired from the pool. All other 
message types are not on the "high load" path, so i switched them back to use 
system memory allocator and smart pointers.
   
   Testing.
   It successfully passed unit and integration tests.
   Also tested both `StreamManager` and `TMaster` on my laptop by running a 
`WordCountTopology` under `valgrind` within 24 hours. I haven't found any 
memory leaks in the `valgrind` logs.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to