]> granicus.if.org Git - postgresql/commitdiff
Update FAQ_DEV.
authorBruce Momjian <bruce@momjian.us>
Sun, 3 Nov 2002 04:02:32 +0000 (04:02 +0000)
committerBruce Momjian <bruce@momjian.us>
Sun, 3 Nov 2002 04:02:32 +0000 (04:02 +0000)
doc/FAQ_DEV
doc/src/FAQ/FAQ_DEV.html

index 948132f539bd638b914ff2d05a89bce32ce0be82..7ab830832080fe158ab6089a98aef0f29bfa3591 100644 (file)
@@ -1,7 +1,7 @@
 
           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)
    
@@ -19,7 +19,8 @@
    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:
index 6b2e1363f21e1235e35cadb601181c96bb3b5de2..24baab3eb3358da1d8762a4af51b60e4a870727a 100644 (file)
@@ -12,7 +12,7 @@
     <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>
@@ -39,7 +39,9 @@
      <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, &amp;insert your favorite wizz-bang feature 
+     here&amp;?<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, &amp;insert your favorite wizz-bang feature 
+     here&amp;?</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>