Hi fuyou,

Thanks for your feedback. Basically, if both broker and clients support v2
serialization, we can minimize the cost of serialization and
deserialization a lot. If clients remained v1 and brokers upgraded, extra
overhead would be minimal, within an acceptable boundary.

Here are a few blogs discussing pros and cos of this style of serde, among
implementations.

https://engineering.fb.com/2015/07/31/android/improving-facebook-s-performance-on-android-with-flatbuffers/
https://capnproto.org/news/2014-06-17-capnproto-flatbuffers-sbe.html

Zhanhui Li

On Tue, Oct 11, 2022 at 10:02 AM fuyou <[email protected]> wrote:

> Great RIP,
> one question:
> we thought about  zero copy when consumers pull messages,if we support
> v2,zero copy can't support.
>
> Zhanhui Li <[email protected]> 于2022年10月10日周一 15:57写道:
>
> > Hi zhimin,
> >
> > >> 1. About the length of Topic, 128 can meet most scenarios. Even if the
> > >> storage module supports store long topic data,
> > >>    I still recommend that the length of this non-system topic‘s
> > >> length should not exceed the 128 limit.
> > >>    For system topics, such as the retry topic name of pop consumption
> > >> can increase the upper limit.
> >
> > Storage layer, IMO, is not the best place to apply such limit. Broker
> > module might be a better option; Normally, we should store a logical,
> fixed
> > width number in the storage system and let the upper layer to interpret
> the
> > actual name.
> >
> >
> > >>  For the system properties in the message, there should be its own
> > >> namespace to distinguish it from the user's properties and protect it
> > >> from being modified by the user.
> >
> > Yes! This is what this RIP is going to do.
> >
> > >> Is it necessary to store the server IP in every message? This
> > >> design will waste more storage space.
> >
> > Yes, this is indeed an issue. Actually, two questions need to be
> answered:
> > 1, how does store IP help; 2, How to define store IP?  The first node
> that
> > saves the message or the node that serves the message pull request.
> >
> > >> The "topic remapping" needs to consider the compatibility with the
> > >> existing design, It is recommended to discuss it as another
> > >> improvement.
> >
> > As pointed out in the previous section, most storage system stores
> logical,
> > fixed width number and let the business layer interpret the actual topic
> > name. This matters in this RIP as it decides what to store in the storage
> > tier. Logical fixed with number or string name or both during migration.
> >
> > >> We should consider compression and columnar storage in the new
> > >> storage format.
> >
> > Compression can be made transparent, similar to what RocsDB/LevelDB does
> > for SST files at the bottom most level.
> >
> >
> > On Mon, Oct 10, 2022 at 2:50 PM zhimin li <[email protected]> wrote:
> >
> > > This is a great improvement plan, I have the following thoughts:
> > >
> > > 1. About the length of Topic, 128 can meet most scenarios. Even if the
> > > storage module supports store long topic data,
> > >     I still recommend that the length of this non-system topic‘s
> > > length should not exceed the 128 limit.
> > >     For system topics, such as the retry topic name of pop consumption
> > > can increase the upper limit.
> > >
> > > 2. For the system properties in the message, there should be its own
> > > namespace to distinguish it from the user's properties and protect it
> > > from being modified by the user.
> > >
> > > 3. Is it necessary to store the server IP in every message? This
> > > design will waste more storage space.
> > >
> > > 4. The "topic remapping" needs to consider the compatibility with the
> > > existing design, It is recommended to discuss it as another
> > > improvement.
> > >
> > > 5. We should consider compression and columnar storage in the new
> > > storage format.
> > >
> >
>
>
> --
>    =============================================
>
>   fuyou001
> Best Regards
>

Reply via email to