Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1WAMFN-0007Hr-JC for pgsql-hackers@arkaria.postgresql.org; Mon, 03 Feb 2014 16:19:45 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.80) (envelope-from ) id 1WAMFN-0000gq-13 for pgsql-hackers@arkaria.postgresql.org; Mon, 03 Feb 2014 16:19:45 +0000 Received: from makus.postgresql.org ([2001:4800:7903:4::125]) by malur.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1WAMFM-0000gc-0V for pgsql-hackers@postgresql.org; Mon, 03 Feb 2014 16:19:44 +0000 Received: from mail.gransy.com ([2001:1528:137::f1]) by makus.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1WAMFI-0001jw-8f for pgsql-hackers@postgresql.org; Mon, 03 Feb 2014 16:19:43 +0000 Received: from antispam.gransy.com (antispam.gransy.com [77.78.104.124]) by mail.gransy.com (Postfix) with ESMTP id C094D508D3C for ; Mon, 3 Feb 2014 17:19:38 +0100 (CET) X-Virus-Scanned: G-Hosting.cz + Station.cz + Klenot.cz + Subreg.cz amavisd-new at antispam.gransy.com Received: from mail.gransy.com ([82.208.29.194]) by antispam.gransy.com (antispam.gransy.com [77.78.104.124]) (amavisd-new, port 10024) with ESMTP id duN0x38emVHv for ; Mon, 3 Feb 2014 17:19:48 +0100 (CET) Received: from sq.gransy.com (elizabeth.gransy.com [89.187.132.199]) (Authenticated sender: tv@fuzzy.cz) by mail.gransy.com (Postfix) with ESMTPA id DEA4E508D38; Mon, 3 Feb 2014 17:19:36 +0100 (CET) Received: from 212.47.19.46 (SquirrelMail authenticated user tv@fuzzy.cz) by sq.gransy.com with HTTP; Mon, 3 Feb 2014 17:19:34 +0100 Message-ID: <368f0edae6c56767e78da2e45eb43a93.squirrel@sq.gransy.com> In-Reply-To: References: <51D00FB6.9030008@vmware.com> <528533D9.3040501@vmware.com> <52E141BA.5000302@vmware.com> <52E4141E.60609@fuzzy.cz> <52E42AD0.5060600@vmware.com> <52E4AA3A.9000607@fuzzy.cz> <52E53458.2010106@vmware.com> <07ed535f7ee700a6c5b36e2d9d2d27b6.squirrel@sq.gransy.com> Date: Mon, 3 Feb 2014 17:19:34 +0100 Subject: Re: GIN improvements part2: fast scan From: "Tomas Vondra" To: "Alexander Korotkov" Cc: "Tomas Vondra" , "pgsql-hackers" , "Heikki Linnakangas" User-Agent: SquirrelMail/1.4.22 MIME-Version: 1.0 Content-Type: text/plain;charset=utf-8 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-Pg-Spam-Score: -1.9 (-) 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 3 Únor 2014, 17:08, Alexander Korotkov wrote: > On Mon, Feb 3, 2014 at 7:24 PM, Tomas Vondra wrote: > >> On 3 Únor 2014, 15:31, Alexander Korotkov wrote: >> > >> > I found my patch "0005-Ternary-consistent-implementation.patch" to be >> > completely wrong. It introduces ternary consistent function to >> opclass, >> > but >> > don't uses it, because I forgot to include ginlogic.c change into >> patch. >> > So, it shouldn't make any impact on performance. However, testing >> results >> > with that patch significantly differs. That makes me very uneasy. Can >> we >> > now reproduce exact same? >> >> Do I understand it correctly that the 0005 patch should give exactly the >> same performance as the 9.4-heikki branch (as it was applied on it, and >> effectively did no change). This wasn't exactly what I measured, >> although >> the differences were not that significant. >> > > Do I undestand correctly it's 9.4-heikki and 9.4-alex-1 here: > http://www.fuzzy.cz/tmp/gin/# Yes. > In some queries it differs in times. I wonder why. Not sure. > I can rerun the tests, if that's what you're asking for. I'll improve the >> test a bit - e.g. I plan to average multiple runs, to filter out random >> noise (which might be significant for such short queries). >> >> > Right version of these two patches in one against current head is >> > attached. >> > I've rerun tests with it, results are >> > /mnt/sas-raid10/gin-testing/queries/9.4-fast-scan-10. Could you rerun >> > postprocessing including graph drawing? >> >> Yes, I'll do that. However I'll have to rerun the other tests too, >> because >> the >> previous runs were done on a different machine. >> >> I'm a bit confused right now. The previous patches (0005 + 0007) were >> supposed >> to be applied on top of the 4 from Heikki (0001-0004), right? AFAIK >> those >> were >> not commited yet, so why is this version against HEAD? >> >> To summarize, I know of these patch sets: >> >> 9.4-heikki (old version) >> 0001-Optimize-GIN-multi-key-queries.patch >> 0002-Further-optimize-the-multi-key-GIN-searches.patch >> 0003-Further-optimize-GIN-multi-key-searches.patch >> 0004-Add-the-concept-of-a-ternary-consistent-check-and-us.patch >> >> 9.4-alex-1 (based on 9.4-heikki) >> 0005-Ternary-consistent-implementation.patch >> >> 9.4-alex-1 (based on 9.4-alex-1) >> 0006-Sort-entries.patch >> > > From these patches I only need to compare 9.4-heikki (old version) and > 9.4-alex-1 to release my doubts. OK, understood. > > 9.4-heikki (new version) >> gin-ternary-logic+binary-heap+preconsistent-only-on-new-page.patch >> >> 9.4-alex-2 (new version) >> gin-fast-scan.10.patch.gz >> >> Or did I get that wrong? >> > > Only you mentioned 9.4-alex-1 twice. I afraid to have some mess in > numbering. You're right. It should have been like this: 9.4-alex-1 (based on 9.4-heikki) 0005-Ternary-consistent-implementation.patch 9.4-alex-2 (based on 9.4-alex-1) 0006-Sort-entries.patch 9.4-alex-3 (new version, not yet tested) gin-fast-scan.10.patch.gz > > > Sometimes test cases are not what we expect. For example: >> > >> > =# explain SELECT id FROM messages WHERE body_tsvector @@ >> > to_tsquery('english','(5alpha1-initdb''d)'); >> > QUERY PLAN >> > >> > >> ──────────────────────────────────────────────────────────────────────────────── >> > Bitmap Heap Scan on messages (cost=84.00..88.01 rows=1 width=4) >> > Recheck Cond: (body_tsvector @@ '''5alpha1-initdb'' & ''5alpha1'' & >> > ''initdb'' & ''d'''::tsquery) >> > -> Bitmap Index Scan on messages_body_tsvector_idx >> (cost=0.00..84.00 >> > rows=1 width=0) >> > Index Cond: (body_tsvector @@ '''5alpha1-initdb'' & >> ''5alpha1'' >> & >> > ''initdb'' & ''d'''::tsquery) >> > Planning time: 0.257 ms >> > (5 rows) >> > >> > 5alpha1-initdb'd is 3 gin entries with different frequencies. >> >> Why do you find that strange? The way the query is formed or the way >> it's >> evaluated? >> >> The query generator certainly is not perfect, so it may produce some >> strange queries. >> > > I just mean that in this case 3 words doesn't mean 3 gin entries. Isn't that expected? I mean, that's what to_tsquery may do, right? Tomas -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers