Github user dawidwys commented on the issue:
https://github.com/apache/flink/pull/6205
Hi @Aitozi ,
Thanks for the work here. I think we could improve a bit separation of
concerns in the SharedBuffer. I am a bit afraid this class will become too
complex once again. How about we split the SharedBuffer into two layers:
caching one(SharedBuffer) and accessing buffer e.g. `SharedBufferAccessor`. We
could make the accessor `AutoCloseable`. I think it would give more explicit
information about the necessity to flush the buffer.
We could move to `SharedBufferAccessor` methods like:
- registerEvent
- put
- extractPatterns
- materializeMatch
- materializeMatch
- lockNode
- releaseNode
- removeNode
- lockEvent
- releaseEvent
In the `SharedBuffer` we would leave only the caching package-protected
methods. We would also add a method there to get the `SharedBufferAccessor`
that would `flush` the changes on `close`. This way we would have a cleaner
separation, plus we would make the flushing more intuitive.
What do you think?
---