diff --git a/doc/FAQ_DEV b/doc/FAQ_DEV index 948132f539bd638b914ff2d05a89bce32ce0be82..7ab830832080fe158ab6089a98aef0f29bfa3591 100644 --- a/doc/FAQ_DEV +++ b/doc/FAQ_DEV @@ -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? @@ -316,15 +317,33 @@ 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: diff --git a/doc/src/FAQ/FAQ_DEV.html b/doc/src/FAQ/FAQ_DEV.html index 6b2e1363f21e1235e35cadb601181c96bb3b5de2..24baab3eb3358da1d8762a4af51b60e4a870727a 100644 --- a/doc/src/FAQ/FAQ_DEV.html +++ b/doc/src/FAQ/FAQ_DEV.html @@ -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, &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 @@ -381,10 +383,24 @@ 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> @@ -397,6 +413,11 @@ <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>