[jira] [Comment Edited] (MESOS-6972) Improve performance of protobuf message passing by removing RepeatedPtrField to vector conversion.
[ https://issues.apache.org/jira/browse/MESOS-6972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16279048#comment-16279048 ] Michael Park edited comment on MESOS-6972 at 12/5/17 11:05 PM: --- {noformat} commit 8670d2e9224485b94a40654d4a2102d8340fe4ac Author: Michael ParkDate: Mon Dec 4 17:25:36 2017 -0800 Added `lambda::partial` to . Review: https://reviews.apache.org/r/64274/ {noformat} {noformat} commit 3b9db404cb0b50edef1958423b26364e63ccaa27 Author: Michael Park Date: Mon Dec 4 17:25:33 2017 -0800 Added `cpp17::invoke` in . Review: https://reviews.apache.org/r/64248/ {noformat} was (Author: mcypark): {noformat} commit 8670d2e9224485b94a40654d4a2102d8340fe4ac (private/ci/mpark/utility, ci/mpark/utility) Author: Michael Park Date: Mon Dec 4 17:25:36 2017 -0800 Added `lambda::partial` to . Review: https://reviews.apache.org/r/64274/ {noformat} {noformat} commit 3b9db404cb0b50edef1958423b26364e63ccaa27 Author: Michael Park Date: Mon Dec 4 17:25:33 2017 -0800 Added `cpp17::invoke` in . Review: https://reviews.apache.org/r/64248/ {noformat} > Improve performance of protobuf message passing by removing RepeatedPtrField > to vector conversion. > -- > > Key: MESOS-6972 > URL: https://issues.apache.org/jira/browse/MESOS-6972 > Project: Mesos > Issue Type: Improvement >Reporter: Benjamin Mahler > Labels: performance, tech-debt > > Currently, all protobuf message handlers must take a {{vector}} for repeated > fields, rather than a {{RepeatedPtrField}}. > This requires that a copy be performed of the repeated field's entries (see > [here|https://github.com/apache/mesos/blob/9228ebc239dac42825390bebc72053dbf3ae7b09/3rdparty/libprocess/include/process/protobuf.hpp#L78-L87]), > which can be very expensive in some cases. We should avoid requiring this > expense on the callers. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Comment Edited] (MESOS-6972) Improve performance of protobuf message passing by removing RepeatedPtrField to vector conversion.
[ https://issues.apache.org/jira/browse/MESOS-6972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16279122#comment-16279122 ] Michael Park edited comment on MESOS-6972 at 12/5/17 7:54 PM: -- {noformat} commit 6839897c5464fce6b8cbd253d959a7e2efd72987 Author: Dmitry ZhukDate: Tue Dec 5 11:21:27 2017 -0800 Made `Event` move-only in libprocess. Review: https://reviews.apache.org/r/64347/ {noformat} {noformat} commit c9e6a03c02e9f8dc040b937ccd5ae89e5530fd7e Author: Dmitry Zhuk Date: Tue Dec 5 11:21:11 2017 -0800 Used `std::move` for `Event`s consumption in the master. Review: https://reviews.apache.org/r/63641/ {noformat} {noformat} commit 8014e3f9e1838745a6f3af7c1e2a557bd74349b0 Author: Dmitry Zhuk Date: Tue Dec 5 11:20:55 2017 -0800 Added `CallableOnce` support in `Future`. `Future` guarantees that callbacks are called at most once, so it can use `lambda::CallableOnce` to expicitly declare this, and allow corresponding optimizations with moves. Review: https://reviews.apache.org/r/63638/ {noformat} {noformat} commit 09b72e9bbf87793ce84df5d5f9d5f292c60fa5ee Author: Dmitry Zhuk Date: Tue Dec 5 11:20:41 2017 -0800 Added `CallableOnce` support in `defer`. This allows `defer` result to be converted to `CallableOnce`, ensuring that bound arguments are moved, when call is made, and avoiding making copies of bound arguments. Review: https://reviews.apache.org/r/63637/ {noformat} was (Author: mcypark): {noformat} commit 6839897c5464fce6b8cbd253d959a7e2efd72987 (HEAD -> master, upstream/master) Author: Dmitry Zhuk Date: Tue Dec 5 11:21:27 2017 -0800 Made `Event` move-only in libprocess. Review: https://reviews.apache.org/r/64347/ {noformat} {noformat} commit c9e6a03c02e9f8dc040b937ccd5ae89e5530fd7e Author: Dmitry Zhuk Date: Tue Dec 5 11:21:11 2017 -0800 Used `std::move` for `Event`s consumption in the master. Review: https://reviews.apache.org/r/63641/ {noformat} {noformat} commit 8014e3f9e1838745a6f3af7c1e2a557bd74349b0 Author: Dmitry Zhuk Date: Tue Dec 5 11:20:55 2017 -0800 Added `CallableOnce` support in `Future`. `Future` guarantees that callbacks are called at most once, so it can use `lambda::CallableOnce` to expicitly declare this, and allow corresponding optimizations with moves. Review: https://reviews.apache.org/r/63638/ {noformat} {noformat} commit 09b72e9bbf87793ce84df5d5f9d5f292c60fa5ee Author: Dmitry Zhuk Date: Tue Dec 5 11:20:41 2017 -0800 Added `CallableOnce` support in `defer`. This allows `defer` result to be converted to `CallableOnce`, ensuring that bound arguments are moved, when call is made, and avoiding making copies of bound arguments. Review: https://reviews.apache.org/r/63637/ {noformat} > Improve performance of protobuf message passing by removing RepeatedPtrField > to vector conversion. > -- > > Key: MESOS-6972 > URL: https://issues.apache.org/jira/browse/MESOS-6972 > Project: Mesos > Issue Type: Improvement >Reporter: Benjamin Mahler > Labels: performance, tech-debt > > Currently, all protobuf message handlers must take a {{vector}} for repeated > fields, rather than a {{RepeatedPtrField}}. > This requires that a copy be performed of the repeated field's entries (see > [here|https://github.com/apache/mesos/blob/9228ebc239dac42825390bebc72053dbf3ae7b09/3rdparty/libprocess/include/process/protobuf.hpp#L78-L87]), > which can be very expensive in some cases. We should avoid requiring this > expense on the callers. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Comment Edited] (MESOS-6972) Improve performance of protobuf message passing by removing RepeatedPtrField to vector conversion.
[ https://issues.apache.org/jira/browse/MESOS-6972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16279050#comment-16279050 ] Michael Park edited comment on MESOS-6972 at 12/5/17 7:02 PM: -- {noformat} commit c9462f4927cfffb1f3a90827467ded730c0f40b9 Author: Dmitry Zhuk dz...@twopensource.com Date: Tue Dec 5 10:11:28 2017 -0800 Migrated to use the `EventConsumer` interface. Review: https://reviews.apache.org/r/63632/ {noformat} {noformat} commit 6b91f62769a1f8c525162fc716b1d5c231c77811 Author: Dmitry Zhuk dz...@twopensource.com Date: Tue Dec 5 10:11:23 2017 -0800 Separated `Event` visitation and consumption. This introduces the `EventConsumer` interface, which add support of `Event`s with move-only data. This allows consumers to move data out of `Event`, rather than copying it. This is required to implement move-only objects support in `defer` to guarantee that deferred function object is invoked only once, allowing deferred parameters to be moved into call. Review: https://reviews.apache.org/r/63631/ {noformat} {noformat} commit 1074a9c3fd7aa9d2e4b484f86dbe657271abecc0 Author: Dmitry Zhuk dz...@twopensource.com Date: Tue Dec 5 07:23:28 2017 -0800 Fixed the signature of `CallableOnce::operator()`. This changes `operator()` signature to match the one defined in `CallableOnce` template parameter. Previously used form incorrectly specifies that `operator()` can be invoked with arbitrary number and types of parameters, which can break other templates using SFINAE to check if function object can be invoked with specific parameters. Review: https://reviews.apache.org/r/64337/ {noformat} was (Author: mcypark): {noformat} commit c9462f4927cfffb1f3a90827467ded730c0f40b9 Author: Dmitry Zhuk dz...@twopensource.com Date: Tue Dec 5 10:11:28 2017 -0800 Migrated to use the `EventConsumer` interface. Review: https://reviews.apache.org/r/63632/ {noformat} {noformat} commit 6b91f62769a1f8c525162fc716b1d5c231c77811 Author: Dmitry Zhuk dz...@twopensource.com Date: Tue Dec 5 10:11:23 2017 -0800 Separated `Event` visitation and consumption. This introduces the `EventConsumer` interface, which add support of `Event`s with move-only data. This allows consumers to move data out of `Event`, rather than copying it. This is required to implement move-only objects support in `defer` to guarantee that deferred function object is invoked only once, allowing deferred parameters to be moved into call. Review: https://reviews.apache.org/r/63631/ {noformat} {noformat} commit 1074a9c3fd7aa9d2e4b484f86dbe657271abecc0 Author: Dmitry Zhuk dz...@twopensource.com Date: Tue Dec 5 07:23:28 2017 -0800 Fixed the signature of `CallableOnce::operator()`. This changes `operator()` signature to match the one defined in `CallableOnce` template parameter. Previously used form incorrectly specifies that `operator()` can be invoked with arbitrary number and types of parameters, which can break other templates using SFINAE to check if function object can be invoked with specific parameters. Review: https://reviews.apache.org/r/64337/ {noformat} > Improve performance of protobuf message passing by removing RepeatedPtrField > to vector conversion. > -- > > Key: MESOS-6972 > URL: https://issues.apache.org/jira/browse/MESOS-6972 > Project: Mesos > Issue Type: Improvement >Reporter: Benjamin Mahler > Labels: performance, tech-debt > > Currently, all protobuf message handlers must take a {{vector}} for repeated > fields, rather than a {{RepeatedPtrField}}. > This requires that a copy be performed of the repeated field's entries (see > [here|https://github.com/apache/mesos/blob/9228ebc239dac42825390bebc72053dbf3ae7b09/3rdparty/libprocess/include/process/protobuf.hpp#L78-L87]), > which can be very expensive in some cases. We should avoid requiring this > expense on the callers. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Comment Edited] (MESOS-6972) Improve performance of protobuf message passing by removing RepeatedPtrField to vector conversion.
[ https://issues.apache.org/jira/browse/MESOS-6972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16279050#comment-16279050 ] Michael Park edited comment on MESOS-6972 at 12/5/17 7:02 PM: -- {noformat} commit c9462f4927cfffb1f3a90827467ded730c0f40b9 Author: Dmitry Zhuk dz...@twopensource.com Date: Tue Dec 5 10:11:28 2017 -0800 Migrated to use the `EventConsumer` interface. Review: https://reviews.apache.org/r/63632/ {noformat} {noformat} commit 6b91f62769a1f8c525162fc716b1d5c231c77811 Author: Dmitry Zhuk dz...@twopensource.com Date: Tue Dec 5 10:11:23 2017 -0800 Separated `Event` visitation and consumption. This introduces the `EventConsumer` interface, which add support of `Event`s with move-only data. This allows consumers to move data out of `Event`, rather than copying it. This is required to implement move-only objects support in `defer` to guarantee that deferred function object is invoked only once, allowing deferred parameters to be moved into call. Review: https://reviews.apache.org/r/63631/ {noformat} {noformat} commit 1074a9c3fd7aa9d2e4b484f86dbe657271abecc0 Author: Dmitry Zhuk dz...@twopensource.com Date: Tue Dec 5 07:23:28 2017 -0800 Fixed the signature of `CallableOnce::operator()`. This changes `operator()` signature to match the one defined in `CallableOnce` template parameter. Previously used form incorrectly specifies that `operator()` can be invoked with arbitrary number and types of parameters, which can break other templates using SFINAE to check if function object can be invoked with specific parameters. Review: https://reviews.apache.org/r/64337/ {noformat} was (Author: mcypark): {noformat} commit c9462f4927cfffb1f3a90827467ded730c0f40b9 Author: Dmitry Zhuk dz...@twopensource.com Date: Tue Dec 5 10:11:28 2017 -0800 Migrated to use the `EventConsumer` interface. Review: https://reviews.apache.org/r/63632/ {noformat} {noformat} commit 6b91f62769a1f8c525162fc716b1d5c231c77811 Author: Dmitry Zhuk dz...@twopensource.com Date: Tue Dec 5 10:11:23 2017 -0800 Separated `Event` visitation and consumption. This introduces the `EventConsumer` interface, which add support of `Event`s with move-only data. This allows consumers to move data out of `Event`, rather than copying it. This is required to implement move-only objects support in `defer` to guarantee that deferred function object is invoked only once, allowing deferred parameters to be moved into call. Review: https://reviews.apache.org/r/63631/ {noformat} {noformat} commit 1074a9c3fd7aa9d2e4b484f86dbe657271abecc0 Author: Dmitry Zhuk dz...@twopensource.com Date: Tue Dec 5 07:23:28 2017 -0800 Fixed the signature of `CallableOnce::operator()`. This changes `operator()` signature to match the one defined in `CallableOnce` template parameter. Previously used form incorrectly specifies that `operator()` can be invoked with arbitrary number and types of parameters, which can break other templates using SFINAE to check if function object can be invoked with specific parameters. Review: https://reviews.apache.org/r/64337/ {noformat} > Improve performance of protobuf message passing by removing RepeatedPtrField > to vector conversion. > -- > > Key: MESOS-6972 > URL: https://issues.apache.org/jira/browse/MESOS-6972 > Project: Mesos > Issue Type: Improvement >Reporter: Benjamin Mahler > Labels: performance, tech-debt > > Currently, all protobuf message handlers must take a {{vector}} for repeated > fields, rather than a {{RepeatedPtrField}}. > This requires that a copy be performed of the repeated field's entries (see > [here|https://github.com/apache/mesos/blob/9228ebc239dac42825390bebc72053dbf3ae7b09/3rdparty/libprocess/include/process/protobuf.hpp#L78-L87]), > which can be very expensive in some cases. We should avoid requiring this > expense on the callers. -- This message was sent by Atlassian JIRA (v6.4.14#64029)