Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1Vu2Tx-0003r1-74 for pgsql-hackers@arkaria.postgresql.org; Fri, 20 Dec 2013 15:59:21 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.80) (envelope-from ) id 1Vu2Tw-0004Mt-Mm for pgsql-hackers@arkaria.postgresql.org; Fri, 20 Dec 2013 15:59:20 +0000 Received: from makus.postgresql.org ([2001:4800:7903:4::125]) by malur.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1Vu2Tv-0004Ml-95 for pgsql-hackers@postgresql.org; Fri, 20 Dec 2013 15:59:19 +0000 Received: from smtp-outbound-1.vmware.com ([208.91.2.12]) by makus.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1Vu2Tn-0008AW-4S for pgsql-hackers@postgresql.org; Fri, 20 Dec 2013 15:59:17 +0000 Received: from sc9-mailhost1.vmware.com (sc9-mailhost1.vmware.com [10.113.161.71]) by smtp-outbound-1.vmware.com (Postfix) with ESMTP id B963F29906; Fri, 20 Dec 2013 07:59:09 -0800 (PST) Received: from zcs-prod-ext-mta-2.vmware.com (zcs-prod-ext-mta-2.vmware.com [10.113.62.224]) by sc9-mailhost1.vmware.com (Postfix) with ESMTP id B61071849F; Fri, 20 Dec 2013 07:59:09 -0800 (PST) Received: from zcs-prod-ext-mta-2.vmware.com (localhost.localdomain [127.0.0.1]) by zcs-prod-ext-mta-2.vmware.com (Postfix) with ESMTP id 2D8BBC005F; Fri, 20 Dec 2013 07:59:37 -0800 (PST) Received: from [192.168.1.90] (zimbra-prod-ext-proxy-vip.vmware.com [10.113.63.87]) by zcs-prod-ext-mta-2.vmware.com (Postfix) with ESMTPSA; Fri, 20 Dec 2013 07:59:35 -0800 (PST) Message-ID: <52B4694A.3060201@vmware.com> Date: Fri, 20 Dec 2013 17:59:06 +0200 From: Heikki Linnakangas Organization: VMware User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20131005 Icedove/17.0.9 MIME-Version: 1.0 To: obartunov@gmail.com CC: Alexander Korotkov , Alvaro Herrera , Tomas Vondra , pgsql-hackers Subject: Re: GIN improvements part 1: additional information References: <20131106153604.GM5809@eldon.alvh.no-ip.org> <528CEB34.7080702@vmware.com> <52950F46.2080009@vmware.com> <5298615C.7060102@vmware.com> <5298E834.4090408@vmware.com> <52A58AD5.6030808@vmware.com> <52A62771.3070800@vmware.com> <52AEE445.1060206@vmware.com> <52AF837C.3040201@vmware.com> <52B1B63F.6030104@vmware.com> <52B2B1D7.2050802@vmware.com> In-Reply-To: <52B2B1D7.2050802@vmware.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Pg-Spam-Score: -7.4 (-------) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-hackers Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org On 12/19/2013 10:44 AM, Heikki Linnakangas wrote: > On 12/19/2013 08:37 AM, Oleg Bartunov wrote: >> Guys, >> >> before digging deep into the art of comp/decomp world I'd like to know >> if you familiar with results of >> http://wwwconference.org/www2008/papers/pdf/p387-zhangA.pdf paper and >> some newer research ? > > Yeah, I saw that paper. > >> Do we agree in what we really want ? Basically, >> there are three main features: size, compression, decompression speed >> - we should take two :) > > According to that Zhang et al paper you linked, the Vbyte method > actually performs the worst on all of those measures. The other > algorithms are quite similar in terms of size (PForDelta being the most > efficient), while PForDelta is significantly faster to compress/decompress. > > Just by looking at those numbers, PForDelta looks like a clear winner. > However, it operates on much bigger batches than the other algorithms; I > haven't looked at it in detail, but Zhang et al used 128 integer > batches, and they say that 32 integers is the minimum batch size. If we > want to use it for the inline posting lists stored in entry tuples, that > would be quite wasteful if there are only a few item pointers on the tuple. > > Also, in the tests I've run, the compression/decompression speed is not > a significant factor in total performance, with either varbyte encoding > or Simple9-like encoding I hacked together. One disadvantage of Simple9 and other encodings that operate in batches is that removing a value from the middle can increase the number of bytes required for the remaining values. That's a problem during vacuum; it's possible that after vacuuming away one item pointer, the remaining items no longer fit on the page. - Heikki -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers