Developer's Frequently Asked Questions (FAQ) for PostgreSQL
- Last updated: Tue Aug 13 16:41:02 EDT 2002
+ Last updated: Sat Nov 2 23:02:16 EST 2002
Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us)
1.6) What books are good for developers?
1.7) What is configure all about?
1.8) How do I add a new port?
- 1.9) Why don't we use threads in the backend?
+ 1.9) Why don't you use threads/raw devices/async-I/O, &insert your
+ favorite wizz-bang feature here&?
1.10) How are RPM's packaged?
1.11) How are CVS branches handled?
1.12) Where can I get a copy of the SQL standards?
src/makefiles directory for port-specific Makefile handling. There is
a backend/port directory if you need special files for your OS.
- 1.9) Why don't we use threads in the backend?
+ 1.9) Why don't you use threads/raw devices/async-I/O, &insert your favorite
+ wizz-bang feature here&?
- There are several reasons threads are not used:
+ There is always a temptation to use the newest operating system
+ features as soon as they arrive. We resist that temptation.
+
+ First, we support 15+ operating systems, so any new feature has to be
+ well established before we will consider it. Second, most new
+ wizz-bang features don't provide dramatic improvements. Third, the
+ usually have some downside, such as decreased reliability or
+ additional code required. Therefore, we don't rush to use new features
+ but rather wait for the feature to be established, then ask for
+ testing to show that a measurable improvement is possible.
+
+ As an example, threads are not currently used in the backend code
+ because:
* Historically, threads were unsupported and buggy.
* An error in one backend can corrupt other backends.
* Speed improvements using threads are small compared to the
remaining backend startup time.
* The backend code would be more complex.
+ So, we are not "asleep at the switch" as they say with regard to new
+ features, it is just that we are cautious about their adoption. The
+ TODO list often contains links to discussions showing our reasoning in
+ these areas.
+
1.10) How are RPM's packaged?
This was written by Lamar Owen:
<H1>Developer's Frequently Asked Questions (FAQ) for
PostgreSQL</H1>
- <P>Last updated: Tue Aug 13 16:41:02 EDT 2002</P>
+ <P>Last updated: Sat Nov 2 23:02:16 EST 2002</P>
<P>Current maintainer: Bruce Momjian (<A href=
"mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR>
<A href="#1.6">1.6</A>) What books are good for developers?<BR>
<A href="#1.7">1.7</A>) What is configure all about?<BR>
<A href="#1.8">1.8</A>) How do I add a new port?<BR>
- <A href="#1.9">1.9</A>) Why don't we use threads in the backend?<BR>
+ <A href="#1.9">1.9</A>) Why don't you use threads/raw
+ devices/async-I/O, &insert your favorite wizz-bang feature
+ here&?<BR>
<A href="#1.10">1.10</A>) How are RPM's packaged?<BR>
<A href="#1.11">1.11</A>) How are CVS branches handled?<BR>
<A href="#1.12">1.12</A>) Where can I get a copy of the SQL
handling. There is a <I>backend/port</I> directory if you need
special files for your OS.</P>
- <H3><A name="1.9">1.9</A>) Why don't we use threads in the
- backend?</H3>
+ <H3><A name="1.9">1.9</A>) Why don't you use threads/raw
+ devices/async-I/O, &insert your favorite wizz-bang feature
+ here&?</H3>
- <P>There are several reasons threads are not used:</P>
+ <P>There is always a temptation to use the newest operating system
+ features as soon as they arrive. We resist that temptation.</P>
+
+ <P>First, we support 15+ operating systems, so any new feature has
+ to be well established before we will consider it. Second, most new
+ <I>wizz-bang</I> features don't provide <I>dramatic</I>
+ improvements. Third, the usually have some downside, such as
+ decreased reliability or additional code required. Therefore, we
+ don't rush to use new features but rather wait for the feature to be
+ established, then ask for testing to show that a measurable
+ improvement is possible.</P>
+
+ <P>As an example, threads are not currently used in the backend code
+ because:</P>
<UL>
<LI>Historically, threads were unsupported and buggy.</LI>
<LI>The backend code would be more complex.</LI>
</UL>
+ <P>So, we are not "asleep at the switch" as they say with regard to
+ new features, it is just that we are cautious about their
+ adoption. The TODO list often contains links to discussions
+ showing our reasoning in these areas.</P>
+
<H3><A name="1.10">1.10</A>) How are RPM's packaged?</H3>
<P>This was written by Lamar Owen:</P>