Hi Mattison,

Thanks for your feedback!  I think using two configurations is more
flexible, and users can set up different compression types.

Best,
Zixuan

mattison chao <mattisonc...@gmail.com> 于2022年3月6日周日 08:41写道:

> Hi, Zi Xuan
>
> After deep think, I have another question:
>
> Why don't we combine ledger compaction and cursor compaction into one
> configuration switch?
>
> I’m not sure, do we have users who need to set the compression
> configuration for ledger and cursor separately? I think if they were to be
> set, they would all be set to the same.
>
>
> We could add new configurations ``xxxxxxxCompressionType``  to control the
> ledger and cursor compress and deprecate the
> ``managedLedgerInfoCompressionType`` for compatibility.
>
> After that, if users set ``managedLedgerInfoCompressionType``, we just
> compress the ledger, if the user set another configuration
> ``xxxxxxxCompressionType `` we will compress the ledger and cursor.
>
>
> It’s just a question or suggestion. You can feel free to go ahead.
>
> Best,
> Mattison
>
>
>
> > On Mar 6, 2022, at 8:22 AM, mattison chao <mattisonc...@gmail.com>
> wrote:
> >
> >
> > Great work!
> >
> > I have no other comments other than the compatibility everybody
> mentioned.
> >
> > Best,
> > Mattison
> >
> >> On Mar 6, 2022, at 4:55 AM, Enrico Olivelli <eolive...@gmail.com>
> wrote:
> >>
> >> Good proposal.
> >> It is important that this is disabled by default otherwise we cannot
> easily
> >> support the rollback
> >>
> >> Apart from that I don't have other comments
> >>
> >>
> >>
> >> Enrico
> >>
> >> Il Sab 5 Mar 2022, 11:22 PengHui Li <peng...@apache.org> ha scritto:
> >>
> >>> Hi Zixuan,
> >>>
> >>> We should add the compatibility part to the proposal.
> >>> And should also provide steps to roll back to the old version which
> >>> enabled the compression in the new version.
> >>>
> >>> I don't have objections to the proposal, and we have done
> >>> the same enhancement for topic metadata
> >>> https://github.com/apache/pulsar/pull/11490,
> >>> and this proposal also follows the same way.
> >>>
> >>> Thanks,
> >>> Penghui
> >>>
> >>> On Thu, Mar 3, 2022 at 10:26 AM Zixuan Liu <node...@gmail.com> wrote:
> >>>
> >>>> Thank you for your feedback.
> >>>>
> >>>> Forward compatibility is required:
> >>>>
> >>>> 1. Get CursorInfo from the metadata store: We will check the cursor
> data
> >>>> header, if it is compressed, we will parse the bytes data by
> compressed
> >>>> format, otherwise we will parse the cursor data directly by the
> original
> >>>> way.
> >>>>
> >>>> 2. Add/Update CursorInfo to the metadata store: The default is to use
> >>>> compression if the compression type is specified, otherwise we will
> put
> >>>> this data to the metadata store directly.
> >>>>
> >>>>
> >>>>
> >>>>> 2022年3月2日 下午11:48,Zike Yang <zky...@streamnative.io.INVALID> 写道:
> >>>>>
> >>>>> Hi, Zixuan
> >>>>> Thanks for creating this PIP.  Here are my thoughts.
> >>>>>
> >>>>>> CursorInfo compression format
> >>>>>>
> >>>>>> [MAGIC_NUMBER] + [METADATA_SIZE] + [METADATA_PAYLOAD] +
> >>>> [MANAGED_CURSOR_INFO_PAYLOAD]
> >>>>>>
> >>>>>> MAGIC_NUMBER: Ox4779
> >>>>>
> >>>>> Since we change the ManagedCursorInfo data format here. How do we
> >>>>> handle the old data format in the ZK. Could you explain the
> >>>>> compatibility for this PIP?
> >>>>>
> >>>>> Thanks,
> >>>>> Zike Yang
> >>>>>
> >>>>> On Wed, Mar 2, 2022 at 3:34 PM Zixuan Liu <node...@gmail.com
> <mailto:
> >>>> node...@gmail.com>> wrote:
> >>>>>>
> >>>>>> Hi Pulsar Community,
> >>>>>>
> >>>>>> I create a proposal that ManagedCursorInfo compression. The proposal
> >>>> can be found: https://github.com/apache/pulsar/issues/14529 <
> >>>> https://github.com/apache/pulsar/issues/14529> <
> >>>> https://github.com/apache/pulsar/issues/14529 <
> >>>> https://github.com/apache/pulsar/issues/14529>>
> >>>>>>
> >>>>>> Thanks,
> >>>>>> Zixuan
> >>>>>>
> >>>>>> ------------------
> >>>>>>
> >>>>>> Motivation
> >>>>>>
> >>>>>> The cursor data is managed by ZooKeeper/etcd metadata store. When
> >>>> cursor data becomes more and more, the data size will increase and
> will
> >>>> take a lot of time to pull the data. Therefore, it is necessary to add
> >>>> compression for the cursor, which can reduce the size of data and
> reduce
> >>>> the time of pulling data.
> >>>>>>
> >>>>>> Goal
> >>>>>>
> >>>>>> Support use the LZ4/ZLIB/ZSTD/SNAPPY to compress the
> >>> ManagedCursorInfo.
> >>>>>>
> >>>>>> Implementation
> >>>>>>
> >>>>>> CursorInfo compression format
> >>>>>>
> >>>>>> [MAGIC_NUMBER] + [METADATA_SIZE] + [METADATA_PAYLOAD] +
> >>>> [MANAGED_CURSOR_INFO_PAYLOAD]
> >>>>>>
> >>>>>> MAGIC_NUMBER: Ox4779
> >>>>>>
> >>>>>> METADATA
> >>>>>> Add a named ManagedCursorInfoMetadata message to MLDataFormats.proto
> >>>>>>
> >>>>>> message ManagedCursorInfoMetadata {
> >>>>>>  required CompressionType compressionType = 1;
> >>>>>>  required int32 uncompressedSize = 2;
> >>>>>> }
> >>>>>> CursorInfo compression and decompression design
> >>>>>>
> >>>>>> Currently, these compressions types have been defined and
> implemented
> >>>> by Pulsar, we only need to deal with compression and decompression of
> the
> >>>> ManagedCursorInfo data:
> >>>>>>
> >>>>>> Get CursorInfo from the metadata store
> >>>>>> We will check the cursor data header, if it is compressed, we will
> >>>> parse the bytes data by compressed format, otherwise by the original
> way.
> >>>>>>
> >>>>>> Add/Update CursorInfo to the metadata store
> >>>>>> The default is to use compression if the compression type is
> >>> specified.
> >>>>>>
> >>>>>> CursorInfo compression type configuration
> >>>>>>
> >>>>>> Add managedCursorInfoCompressionType in
> >>>> org.apache.pulsar.broker.ServiceConfiguration and
> >>>> org.apache.bookkeeper.mledger.ManagedLedgerFactoryConfig.
> >>>>>>
> >>>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> Zike Yang
> >>>>
> >>>>
> >>>
> >
>
>

Reply via email to