flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-8178) Introduce not threadsafe write only BufferBuilder
Date Thu, 30 Nov 2017 10:38:00 GMT

    [ 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.nowojski@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.nowojski@gmail.com>
Date:   2017-11-29T15:33:06Z

    [hotfix][network] Drop redundant this reference usages

commit 245363a0b6e0f9a93405f71be50ad00d4083c9c5
Author: Piotr Nowojski <piotr.nowojski@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)

Mime
View raw message