【Ratis】ratis-grpc支持零拷贝系列之引入ZeroCopyMessageMarshaller工具类
https://github.com/GoogleCloudPlatform/grpc-gcp-java/pull/77 : Added an option to use zero-copy marshaller for the gRPC read operation
https://issues.apache.org/jira/browse/RATIS-1932 : Create zero-copy Marshaller
https://issues.apache.org/jira/browse/RATIS-1925 : Support Zero-Copy in GrpcClientProtocolService
脉络梳理
RATIS-1932,创建了一个zero-copy的消息marshaller,用来替换默认的marshaller。
这里marshaller的意思其实就是序列化,unmarshaller就是反序列化。
RATIS-1932其思路是源自google的grpc-gcp-java项目的一个PR,代码也是基本全copy移植过来的,链接我都放在上面了。
本文重点了解一下zero-copy marshaller优化背后的细节。
首先给出https://github.com/GoogleCloudPlatform/grpc-gcp-java/pull/77里首先引入零拷贝marshaller所做的benchmark测试效果。
经过测试,在grpc-java benchmark里