MVCC and Implications for (Near) Real-Time Application - Mailing list pgsql-performance

From Steve Wong
Subject MVCC and Implications for (Near) Real-Time Application
Date
Msg-id 203952.56702.qm@web111712.mail.gq1.yahoo.com
Whole thread Raw
Responses Re: MVCC and Implications for (Near) Real-Time Application  ("A.M." <agentm@themactionfaction.com>)
Re: MVCC and Implications for (Near) Real-Time Application  ("Kevin Grittner" <Kevin.Grittner@wicourts.gov>)
Re: MVCC and Implications for (Near) Real-Time Application  ("Pierre C" <lists@peufeu.com>)
List pgsql-performance
Hi experts,

I have a (near) real-time application in which inserts into the database needs to be visible to queries from other threads with minimal delay. The inserts are triggered by real-time events and are therefore asynchronous (i.e. many performance tips I read related to batch inserts or copy do not apply here, since these events cannot be predicted or batched), and the inserted data need to be available within a couple of seconds to other threads (for example, an inserted row that only appears to other query threads 5 seconds or more after the insert is not acceptable). The delay should be under 2 seconds maximum, sub-1 second would be great.

My questions are: (1) Does the MVCC architecture introduce significant delays between insert by a thread and visibility by other threads (I am unclear about how multiple versions are "collapsed" or reconciled, as well as how different query threads are seeing which version)? (2) Are there any available benchmarks that can measure this delay? (3) What are relevant config parameters that will reduce this delay?

Thanks for your patience with my ignorance of MVCC (still learning more about it),
Steve

pgsql-performance by date:

Previous
From: "Christian Elmerot @ One.com"
Date:
Subject: CPUs for new databases
Next
From: Damon Snyder
Date:
Subject: Re: Stored procedure declared as VOLATILE => no good optimization is done