From: James Riordan <james.riordan@gmail.com>
To: pgsql-performance@postgresql.org
Subject: Dispatch-Merge pattern
Date: Tue, 13 Mar 2007 14:36:47 +0100
Message-ID: <eb4939fe0703130636r664d32e9qd8d3975635c7786c@mail.gmail.com> (raw)
Howdy-
I am currently using PostgreSQL to store and process a high-bandwidth
event stream. I do not need old events but the delete and vacuum does
not terminate due to the large number of events being inserted (it
just pushes me over the tipping point of where the machine can keep up
with the events).
I ended up implementing a scheme where a trigger is used to redirect
the events (round robin based on time) to a series of identically
structured tables. I can then use TRUNCATE older tables rather than
DELETE and VACUUM (which is a significant speed up).
It worked out pretty well so thought post the idea to find out if
- it is stupid way of doing things and there is a correct database
abstraction for doing this
or
- it is a reasonable way of solving this problem and might be of use
to other folks using rdbs as event processing
I then use a view to merge the tables. Obviously update would be a
problem for my purposes, and I suppose a lot of event processing, it
isn't an issue.
Either way, details are at:
http://unsyntax.net/james/blog/tools+and+programming/2007/03/08/Dispatch-Merge-Database-Pattern
Cheers,
James
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-performance@postgresql.org
Cc: james.riordan@gmail.com
Subject: Re: Dispatch-Merge pattern
In-Reply-To: <eb4939fe0703130636r664d32e9qd8d3975635c7786c@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox