Re: [PATCH] zram: add zstd to the supported algorithms list

From: Joonsoo Kim
Date: Thu Aug 24 2017 - 22:02:23 EST


On Fri, Aug 25, 2017 at 01:35:35AM +0000, Nick Terrell wrote:
> On 8/24/17, 5:49 PM, "Joonsoo Kim" <iamjoonsoo.kim@xxxxxxx> wrote:
> > On Thu, Aug 24, 2017 at 09:33:54PM +0000, Nick Terrell wrote:
> > > On Thu, Aug 24, 2017 at 10:49:36AM +0900, Sergey Senozhatsky wrote:
> > > > Add ZSTD to the list of supported compression algorithms.
> > > >
> > > > Official benchmarks [1]:
> > >
> > > Awesome! Let me know if you need anything from me.
> > >
> > Hello, Nick.
> >
> > Awesome work!!!
> >
> > Let me ask a question.
> > Zram compress and decompress a small data (a page) and your github
> > site says that using predefined dictionary would be helpful in this
> > situation. However, it seems that compression crypto API for zstd
> > doesn't use ZSTD_compress_usingDict(). Is there any plan to support
> > it?
>
> I think using dictionaries in zram could be very interesting. We could for

Yes!

> example, take a random sample of the RAM and use that as the dictionary
> for compression. E.g. take 32 512B samples from RAM and build a 16 KB
> dictionary (sizes may vary).
>
> I'm not sure how you would pass a dictionary into the crypto compression
> API, but I'm sure we can make something work if dictionary compression
> proves to be beneficial enough.

Okay. I'm also not sure how we can pass a dictionary into the crypto
compression API so I ask you that you have a plan to implement it. :)

>
> What data have you, or anyone, used for benchmarking compression ratio and
> speed for RAM? Since it is such a specialized application, the standard
> compression benchmarks aren't very applicable.

For three month ago, I worked zram deduplication feature. It wasn't
merged due to some problems however it tells us that
zram's data has many similiar (even some of them is perfectly the
same) parts in some cases. I think that this similarity between data
and predefined dictionary would lead to a good result.

lkml.kernel.org/r/<1494556204-25796-3-git-send-email-iamjoonsoo.kim@xxxxxxx>

Thanks.