<title>Proceedings and Articles</title>
<para>This section is for articles and newsletters.</para>
+ <biblioentry id="ports12">
+ <biblioset relation="article">
+ <title><ulink url="https://arxiv.org/pdf/1208.4179">Serializable Snapshot Isolation in PostgreSQL</ulink></title>
+ <authorgroup>
+ <author>
+ <firstname>D.</firstname>
+ <surname>Ports</surname>
+ </author>
+ <author>
+ <firstname>K.</firstname>
+ <surname>Grittner</surname>
+ </author>
+ </authorgroup>
+ </biblioset>
+ <confgroup>
+ <conftitle>VLDB Conference</conftitle>
+ <confdates>August 2012</confdates>
+ <address>Istanbul, Turkey</address>
+ </confgroup>
+ </biblioentry>
+
+ <biblioentry id="berenson95">
+ <biblioset relation="article">
+ <title><ulink url="https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/tr-95-51.pdf">A Critique of ANSI SQL Isolation Levels</ulink></title>
+ <authorgroup>
+ <author>
+ <firstname>H.</firstname>
+ <surname>Berenson</surname>
+ </author>
+ <author>
+ <firstname>P.</firstname>
+ <surname>Bernstein</surname>
+ </author>
+ <author>
+ <firstname>J.</firstname>
+ <surname>Gray</surname>
+ </author>
+ <author>
+ <firstname>J.</firstname>
+ <surname>Melton</surname>
+ </author>
+ <author>
+ <firstname>E.</firstname>
+ <surname>O'Neil</surname>
+ </author>
+ <author>
+ <firstname>P.</firstname>
+ <surname>O'Neil</surname>
+ </author>
+ </authorgroup>
+ </biblioset>
+ <confgroup>
+ <conftitle>ACM-SIGMOD Conference on Management of Data</conftitle>
+ <confdates>June 1995</confdates>
+ <address>San Jose, California</address>
+ </confgroup>
+ </biblioentry>
+
<biblioentry id="OLSON93">
<title>Partial indexing in POSTGRES: research project</title>
<titleabbrev>Olson, 1993</titleabbrev>
of explicit locks to block conflicting transactions.
</para>
+ <para>
+ The Repeatable Read isolation level is implemented using a technique
+ known in academic database literature and in some other database products
+ as <firstterm>Snapshot Isolation</firstterm>. Differences in behavior
+ and performance may be observed when compared with systems that use a
+ traditional locking technique that reduces concurrency. Some other
+ systems may even offer Repeatable Read and Snapshot Isolation as distinct
+ isolation levels with different behavior. The permitted phenomena that
+ distinguish the two techniques were not formalized by database researchers
+ until after the SQL standard was developed, and are outside the scope of
+ this manual. For a full treatment, please see
+ <xref linkend="berenson95">.
+ </para>
+
<note>
<para>
Prior to <productname>PostgreSQL</productname> version 9.1, a request
</listitem>
</itemizedlist>
</para>
+
+ <para>
+ The Serializable isolation level is implemented using a technique known
+ in academic database literature as Serializable Snapshot Isolation, which
+ builds on Snapshot Isolation by adding checks for serialization anomalies.
+ Some differences in behavior and performance may be observed when compared
+ with other systems that use a traditional locking technique. Please see
+ <xref linkend="ports12"> for detailed information.
+ </para>
</sect2>
</sect1>
see a transient state that is inconsistent with any serial execution
of the transactions on the master.
</para>
+
+ <para>
+ Internal access to the system catalogs is not done using the isolation
+ level of the current transaction. This means that newly created database
+ objects such as tables are visible to concurrent Repeatable Read and
+ Serializable transactions, even though the rows they contain are not. In
+ contrast, queries that explicitly examine the system catalogs don't see
+ rows representing concurrently created database objects, in the higher
+ isolation levels.
+ </para>
</sect1>
<sect1 id="locking-indexes">