X-Original-To: pgsql-performance-postgresql.org@localhost.postgresql.org Received: from localhost (av.hub.org [200.46.204.144]) by svr1.postgresql.org (Postfix) with ESMTP id EA32B52D58 for ; Fri, 19 Aug 2005 05:24:08 -0300 (ADT) Received: from svr1.postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 29025-05 for ; Fri, 19 Aug 2005 08:24:04 +0000 (GMT) Received: from web32915.mail.mud.yahoo.com (web32915.mail.mud.yahoo.com [68.142.206.62]) by svr1.postgresql.org (Postfix) with SMTP id A39C352CEA for ; Fri, 19 Aug 2005 05:24:02 -0300 (ADT) Received: (qmail 53753 invoked by uid 60001); 19 Aug 2005 08:24:04 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:Received:Date:From:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=QEFBL9/jqKbUl/eHyZ2CWh/w//9L6anHWaJUkX/5A9UHFP9xuUFfIPQF22XtubMz6C+UUk08f3Lq3crR+DP0V2Jtuw++n1iTzgQDh8V37Gvtf4+n35KAoxvN9T5uZQZSYL4sWAA3Ibwf7u9lPsRM/TULTmjSj+ta2lISmxoVHCk= ; Message-ID: <20050819082404.53751.qmail@web32915.mail.mud.yahoo.com> Received: from [66.56.49.200] by web32915.mail.mud.yahoo.com via HTTP; Fri, 19 Aug 2005 01:24:04 PDT Date: Fri, 19 Aug 2005 01:24:04 -0700 (PDT) From: Mark Cotner Subject: sustained update load of 1-2k/sec To: pgsql-performance@postgresql.org MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, hits=0.28 required=5 tests=[AWL=-0.093, DNS_FROM_RFC_ABUSE=0.374] X-Spam-Level: X-Archive-Number: 200508/250 X-Sequence-Number: 13997 Hi all, I bet you get tired of the same ole questions over and over. I'm currently working on an application that will poll thousands of cable modems per minute and I would like to use PostgreSQL to maintain state between polls of each device. This requires a very heavy amount of updates in place on a reasonably large table(100k-500k rows, ~7 columns mostly integers/bigint). Each row will be refreshed every 15 minutes, or at least that's how fast I can poll via SNMP. I hope I can tune the DB to keep up. The app is threaded and will likely have well over 100 concurrent db connections. Temp tables for storage aren't a preferred option since this is designed to be a shared nothing approach and I will likely have several polling processes. Here are some of my assumptions so far . . . HUGE WAL Vacuum hourly if not more often I'm getting 1700tx/sec from MySQL and I would REALLY prefer to use PG. I don't need to match the number, just get close. Is there a global temp table option? In memory tables would be very beneficial in this case. I could just flush it to disk occasionally with an insert into blah select from memory table. Any help or creative alternatives would be greatly appreciated. :) 'njoy, Mark -- Writing software requires an intelligent person, creating functional art requires an artist. -- Unknown