Hi Enrico, Could you review https://github.com/apache/pulsar/pull/14542? Thanks for your time!
Thanks, Zixuan Enrico Olivelli <eolive...@gmail.com> 于2022年3月6日周日 04:55写道: > 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 > > > > > > > > >