Received: from localhost (unknown [200.46.204.183]) by mail.postgresql.org (Postfix) with ESMTP id 6A36265035B for ; Fri, 12 Dec 2008 13:37:19 -0400 (AST) Received: from mail.postgresql.org ([200.46.204.86]) by localhost (mx1.hub.org [200.46.204.183]) (amavisd-maia, port 10024) with ESMTP id 15953-02 for ; Fri, 12 Dec 2008 13:37:12 -0400 (AST) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from hook.sigaev.ru (hook.sigaev.ru [212.192.243.50]) by mail.postgresql.org (Postfix) with ESMTP id E8C5E64FD3C for ; Fri, 12 Dec 2008 13:37:11 -0400 (AST) Received: by hook.sigaev.ru (Postfix, from userid 1003) id 079763990E; Fri, 12 Dec 2008 20:37:10 +0300 (MSK) Received: from xor.sai.msu.ru (toulouse.jfg-networks.net [82.224.249.154]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: teodor) by hook.sigaev.ru (Postfix) with ESMTPSA id D166B39911; Fri, 12 Dec 2008 20:37:03 +0300 (MSK) Message-ID: <4942A137.3000502@sigaev.ru> Date: Fri, 12 Dec 2008 20:36:55 +0300 From: Teodor Sigaev User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.8.1.18) Gecko/20081116 SeaMonkey/1.1.13 MIME-Version: 1.0 To: Heikki Linnakangas CC: Tom Lane , Pgsql Hackers Subject: Re: [PATCHES] GIN improvements References: <483FD205.4090904@sigaev.ru> <486BC501.6060605@sigaev.ru> <27880.1215810535@sss.pgh.pa.us> <487A6E0C.3090600@sigaev.ru> <8993.1216843701@sss.pgh.pa.us> <4888A594.6010102@sigaev.ru> <490B07BA.6030109@sigaev.ru> <492F04D9.5070404@enterprisedb.com> In-Reply-To: <492F04D9.5070404@enterprisedb.com> Content-Type: multipart/mixed; boundary="------------070305080603080403040307" X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=0 tagged_above=0 required=5 tests=none X-Spam-Level: X-Archive-Number: 200812/966 X-Sequence-Number: 129595 This is a multi-part message in MIME format. --------------070305080603080403040307 Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 7bit Changes: - added vacuum_delay_point() in gininsertcleanup - add trigger to run vacuum by number of inserted tuples from last vacuum. Number of inserted tuples represents number of really inserted tuples in index and it is calculated as tuples_inserted + tuples_updated - tuples_hot_updated. Trigger fires on instuples > vac_base_thresh because search time is linear on number of pending pages (tuples) -- Teodor Sigaev E-mail: teodor@sigaev.ru WWW: http://www.sigaev.ru/ --------------070305080603080403040307 Content-Type: application/x-tar; name="fast_insert_gin-0.17.gz" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="fast_insert_gin-0.17.gz" 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 --------------070305080603080403040307--