[ https://issues.apache.org/jira/browse/FLINK-8178?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16272500#comment-16272500 ]
ASF GitHub Bot commented on FLINK-8178: --------------------------------------- GitHub user pnowojski opened a pull request: https://github.com/apache/flink/pull/5105 [FLINK-8178][network] Introduce not threadsafe write only BufferBuilder This pr depends on #5104 While Buffer class is used in multithreaded context it requires synchronisation. Previously it was miss-leading and unclear, suggesting that RecordSerializer should take into account synchronisation of the Buffer that's holding. With NotThreadSafe BufferBuilder there is now clear separation between single-threaded writing/creating a BufferBuilder and multithreaded Buffer handling/retaining/recycling. ## Verifying this change *(Please pick either of the following options)* This change is already covered by existing tests in `flink-runtime`. ## Does this pull request potentially affect one of the following parts: - Dependencies (does it add or upgrade a dependency): (yes / **no**) - The public API, i.e., is any changed class annotated with `@Public(Evolving)`: (yes / **no**) - The serializers: (yes / **no** / don't know) - The runtime per-record code paths (performance sensitive): (**YES** / no / don't know) - Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (yes / **no** / don't know) - The S3 file system connector: (yes / **no** / don't know) ## Documentation - Does this pull request introduce a new feature? (yes / **no**) - If yes, how is the feature documented? (not applicable / docs / **JavaDocs** / not documented) You can merge this pull request into a Git repository by running: $ git pull https://github.com/pnowojski/flink f8178 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/flink/pull/5105.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #5105 ---- commit d807b9246a2f68e0ea8991047954396adc4703c2 Author: Piotr Nowojski <piotr.nowoj...@gmail.com> Date: 2017-11-28T15:49:37Z [FLINK-8172][network] Write to memorySegment directly in RecordSerializer This increases throughput of network stack by factor of 2, because previously method getMemorySegment() was called twice per record and it is a synchronized method on recycleLock, while RecordSerializer is sole owner of the Buffer at this point, so synchronisation is not needed. commit e88506d15885b0d7e60fdc9f930725e83e959fbb Author: Piotr Nowojski <piotr.nowoj...@gmail.com> Date: 2017-11-29T15:33:06Z [hotfix][network] Drop redundant this reference usages commit 245363a0b6e0f9a93405f71be50ad00d4083c9c5 Author: Piotr Nowojski <piotr.nowoj...@gmail.com> Date: 2017-11-29T16:58:56Z [FLINK-8178][network] Introduce not threadsafe write only BufferBuilder While Buffer class is used in multithreaded context it requires synchronisation. Previously it was miss-leading and unclear, suggesting that RecordSerializer should take into account synchronisation of the Buffer that's holding. With NotThreadSafe BufferBuilder there is now clear separation between single-threaded writing/creating a BufferBuilder and multithreaded Buffer handling/retaining/recycling. ---- > Introduce not threadsafe write only BufferBuilder > ------------------------------------------------- > > Key: FLINK-8178 > URL: https://issues.apache.org/jira/browse/FLINK-8178 > Project: Flink > Issue Type: Improvement > Components: Network > Reporter: Piotr Nowojski > Fix For: 1.5.0 > > > While Buffer class is used in multithreaded context it requires > synchronisation. Now it is miss-leading/unclear and suggesting that > RecordSerializer should take into account synchronisation of the Buffer > that's holding. With NotThreadSafe BufferBuilder there would be clear > separation between single-threaded writing/creating a BufferBuilder and > multithreaded Buffer handling/retaining/recycling. -- This message was sent by Atlassian JIRA (v6.4.14#64029)