Thread: Re: Roadmap for a Win32 port

Re: Roadmap for a Win32 port

From
"Dann Corbit"
Date:
> -----Original Message-----
> From: Bruce Momjian [mailto:pgman@candle.pha.pa.us]
> Sent: Tuesday, June 04, 2002 9:34 PM
> To: PostgreSQL-development
> Subject: [HACKERS] Roadmap for a Win32 port
>
>
> OK, I think I am now caught up on the Win32/cygwin
> discussion, and would
> like to make some remarks.
>
> First, are we doing enough to support the Win32 platform?  I think the
> answer is clearly "no".  There are 3-5 groups/companies
> working on Win32
> ports of PostgreSQL.  We always said there would not be
> PostgreSQL forks
> if we were doing our job to meet user needs.  Well,
> obviously, a number
> of groups see a need for a better Win32 port and we aren't
> meeting that
> need, so they are.  I believe this is one of the few cases
> where groups
> are going out on their own because we are falling behind.
>
> So, there is no question in my mind we need to do more to encourage
> Win32 ports.  Now, on to the details.
>
> INSTALLER
> ---------
>
> We clearly need an installer that is zero-hassle for users.
> We need to
> decide on a direction for this.
>
> GUI
> ---
>
> We need a slick GUI.  pgadmin2 seems to be everyone's favorite, with
> pgaccess on Win32 also an option.  What else do we need here?

Nothing else.  It is better than any commercial tools in current use.
An excellent piece of work.
> BINARY
> ------
>
> This is the big daddy.   It is broken down into several sections:
>
> FORK()
>
> How do we handle fork()?  Do we use the cygwin method that copies the
> whole data segment, or put the global data in shared memory and copy
> that small part manually after we create a new process?

Do not try to do a fork() on Win32.  The one at PW32 is better, but
still awful.  Win32 just does not have fascilities for fork().

If you use Cygwin, it will kill the project for commercial use (at least
for many institutions).  That's fine, but it will become an academic
exercise instead of a viable commercial tool.  If they are comfortable
in that [Cygwin] environment, it makes no sense to use Cygwin instead of
Redhat.  The Redhat version will fork() 100 times faster.  After all, if
they are going to use unix tools in a unix interface with Unix scripts
you might as well use UNIX.  And Cygwin requires a license for
commercial use.
http://cygwin.com/licensing.html
> THREADING
>
> Related to fork(), do we implement an optionally threaded postmaster,
> which eliminates CreateProcess() entirely?  I don't think we will have
> superior performance on Win32 without it.  (This would greatly help
> Solaris as well.)

CreateProcess() works well for Win32.  That is the approach that we used
and also the approach used by the Japanese team.
It is very simple.  Simply do a create process call and then perform the
same operations that were done up to that point.  It isn't difficult.
Threading is another possibility.  I think create process is better,
because you can clone the rights of the one who attaches for the spawned
server (if you want to do that).

>
> IPC
>
> We can use Cygwin, MinGW, Apache, or our own code for this. Are there
> other options?

We wrote our own from scratch.  Cygwin will kill it.  If there is a
MinGW version it might be OK, but if MinGW is GPL, that will kill it.
Have a look at ACE:
http://www.cs.wustl.edu/~schmidt/ACE.html
Their license is on the same level as a BSD license.  Now, they use C++,
but you can always write:
extern "C" {
}
wrappers for stuff and keep PostgreSQL itself in pure, vanilla C.  GCC
does come with a C++ compiler, so it isn't going to cut anyone off.
> ENVIRONMENT
>
> Lots of our code requires a Unix shell and utilities.  Will
> we continue
> using cygwin for this?

We wrote our own utilities from scratch (e.g. initdb).  The Japanese
group that did the port did the same thing.
> --------------------------------------------------------------
> -------------
>
> As a roadmap, it would be good to get consensus on as many of these
> items as possible so people can start working in these areas.  We can
> keep a web page of decisions we have made to help rally developers to
> the project.

If you want a roadmap, the Japanese group laid it out for you.   They
did the exact same steps as we did.  Now, I don't know if we will be
able to contribute or not (it is very much up in the air).  And we had
to do a lot of hacking of the source, so you might not want it if we
volunteered.

Suggestion:
Ask the Japanese group if they would like to post their changes back or
expose them so that the programming team can get ideas form it.

I actually like what they did better than what we did (A giant DLL and
all the binaries are microscopic -- it was how I suggested to do it here
but it was vetoed).

Anyway, here is a roadmap laid out for you exactly.  Just do what it
says and you will be fine:
http://hp.vector.co.jp/authors/VA023283/PostgreSQLe.html

Look at where it says "Gists for patch" and do that.


Re: Roadmap for a Win32 port

From
Jason Tishler
Date:
Dan,

The following is to help keep the archives accurate and should not be
construed as an argument against the native Win32 port.

On Tue, Jun 04, 2002 at 10:02:14PM -0700, Dann Corbit wrote:
> And Cygwin requires a license for commercial use.
> http://cygwin.com/licensing.html

The above is not necessarily true:
   Red Hat sells a special Cygwin License for customers who are unable   to provide their application in open source
codeform.
 

Note that the above only comes into play if your application links
with the Cygwin DLL.  This is easily avoidable by using JDBC, ODBC,
Win32 libpq, etc.  Hence, most people will not be required to purchase
this license from Red Hat.

Jason


Re: Roadmap for a Win32 port

From
Bruce Momjian
Date:
Jason Tishler wrote:
> Dan,
> 
> The following is to help keep the archives accurate and should not be
> construed as an argument against the native Win32 port.
> 
> On Tue, Jun 04, 2002 at 10:02:14PM -0700, Dann Corbit wrote:
> > And Cygwin requires a license for commercial use.
> > http://cygwin.com/licensing.html
> 
> The above is not necessarily true:
> 
>     Red Hat sells a special Cygwin License for customers who are unable
>     to provide their application in open source code form.
> 
> Note that the above only comes into play if your application links
> with the Cygwin DLL.  This is easily avoidable by using JDBC, ODBC,
> Win32 libpq, etc.  Hence, most people will not be required to purchase
> this license from Red Hat.

So apps written using client libraries are BSD, while server-side
changes would have to release source.  Makes sense, though we have never
had this distinction before.  I assume plpgsql stored procedures would
have be open source, but of course those are stored in plaintext on the
server so that isn't a problem.  If companies created custom C stored
procedures, those would have to be open source if using cygwin.

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026
 


Re: Roadmap for a Win32 port

From
"Dann Corbit"
Date:
> -----Original Message-----
> From: Thomas Lockhart [mailto:thomas@fourpalms.org]
> Sent: Wednesday, June 05, 2002 3:03 PM
> To: Bruce Momjian
> Cc: Igor Kovalenko; PostgreSQL-development
> Subject: Re: [HACKERS] Roadmap for a Win32 port
>
>
> ...
> > Good summary.  I think we would support both threaded and fork()
> > operation, and users can control which they prefer.  For a
> web backend
> > where many sessions are a single query, people may want to
> give up the
> > stability of fork() and go with threads, even on Unix.
>
> I would think that we would build on our strengths of having
> a fork/exec
> model for separate clients. A threaded model *could* benefit
> individual
> clients who are doing queries on multiprocessor servers, and
> I would be
> supportive of efforts to enable that.
>
> But the requirements for that may be less severe than for managing
> multiple clients within the same process, and imho there is not strong
> requirement to enable the latter for our current crop of well
> supported
> targets. If it came for free then great, but if it came with
> a high cost
> then the choice is not as obvious. It is also not a
> *requirement* if we
> were instead able to do the multiple threads for a single client
> scenerio first.

Notion:
Have one version do both.  Your server can fork(), and your sever can
thread.  It can fork() and thread, it can fork() or thread.

That gives the best of all worlds.  One client who has his attachments
to a database all setup might want to do a bunch of similar queries.
Hence a threaded model is nice.

A server may be set up to clone the rights of the attaching process for
security reasons.  Then you launch a new server with fork().


Re: Roadmap for a Win32 port

From
Thomas Lockhart
Date:
...
> Notion:
> Have one version do both.  Your server can fork(), and your sever can
> thread.  It can fork() and thread, it can fork() or thread.
> That gives the best of all worlds.  One client who has his attachments
> to a database all setup might want to do a bunch of similar queries.
> Hence a threaded model is nice.
> A server may be set up to clone the rights of the attaching process for
> security reasons.  Then you launch a new server with fork().

Right. If/when that is possible then let's do it, as long as the cost is
not too high. But the intermediate steps are a possibility also, and are
not precluded from discussion.

This will all work out as a *convergence* of interests imho. And there
is no great identifiable benefit for our current crop of platforms for
going to a threaded model *unless* that enables queries for a single
client to execute in parallel (all imho of course ;). 

So our convergence of interests for all platforms is in enabling
threading for these two purposes, and focusing on enabling the
multithreaded single client *first* means that the current crop of
clients don't have to accept all negatives while we start on the road to
better support of Win32 machines.
                 - Thomas


Re: Roadmap for a Win32 port

From
"Dave Page"
Date:

> -----Original Message-----
> From: Steve Howe [mailto:howe@carcass.dhs.org]
> Sent: 06 June 2002 02:37
> To: Bruce Momjian
> Cc: PostgreSQL-development
> Subject: Re: Roadmap for a Win32 port
>
>
> Hello Bruce,
>
> Wednesday, June 5, 2002, 1:33:44 AM, you wrote:
>
> BM> INSTALLER
> BM> ---------
>
> BM> We clearly need an installer that is zero-hassle for
> users.  We need
> BM> to decide on a direction for this.
> I suggest Nullsoft install system
> (http://www.nullsoft.com/free/nsis/). It's > real good and very
> simple to use. I can help on this if you want.

I think that a Windows Installer compatible package would be better as
it would allow us to build the package as a merge module which others
could use in their installers for their PostgreSQL based apps, allowing
one installation to install everything they require easily and (more
importantly) correctly. An example of this can be found in the psqlODBC
installer.

I can handle this if required.

> BM> ENVIRONMENT
>
> I also would like to empathize that probably a small GUI for
> controlling the PostgreSQL service/application would be nice.

I'm happy to add such code to pgAdmin - seems like the natural thing to
do (to me at least!).

Regards, Dave.


Re: Roadmap for a Win32 port

From
"Dave Page"
Date:

> -----Original Message-----
> From: Bruce Momjian [mailto:pgman@candle.pha.pa.us]
> Sent: 08 June 2002 22:48
> To: Peter Eisentraut
> Cc: PostgreSQL-development
> Subject: Re: Roadmap for a Win32 port
>
>
> >
> > > Also, it seems Win32 doesn't need these scripts, except initdb.
> >
> > The utility of these programs is independent of the
> platform.  If we
> > think pg_dumpall is not useful, then let's remove it.
>
> I think the first two targets for C-ification would be
> pg_dumpall and initdb.  The others have SQL equivalents.
> Maybe pg_ctl too.

I looked at this issue some time ago & came to the conclusion that the
only scripts that Win32 really needed were pg_dumpall, initdb &
initlocation.

The others have SQL equivalents as you say, apart from pg_ctl which
under Windows should probably (and generally is) be replaced by the SCM
(Service Control Manager). The only thing that comes to mind that the
SCM can't do is a reload.

Regards, Dave.


Re: Roadmap for a Win32 port

From
"Dann Corbit"
Date:
> -----Original Message-----
> From: Bruce Momjian [mailto:pgman@candle.pha.pa.us]
> Sent: Monday, June 17, 2002 6:01 PM
> To: Jan Wieck
> Cc: Peter Eisentraut; PostgreSQL-development
> Subject: Re: [HACKERS] Roadmap for a Win32 port
>
>
> Jan Wieck wrote:
> > > And pg_ctl will be run with a symlink to postmaster like postgres,
> > > right?  Makes sense.
> >
> > No symlink. Windows doesn't have symlinks, the "link" stuff you
> > see is just some file with a special meaning for the Windows
> > explorer. There is absolutely no support built into the OS. They
> > really haven't learned alot since the DOS times, when they added
> > "." and ".." entries to directories to "look" similar to UNIX.
> > Actually, they never really understood what a hardlink is in the
> > first place, so why do you expect them to know how to implement
> > symbolic ones?
> >
> > It will be at least another copy of the postmaster (dot exe).
>
> Yea, I just liked the idea of the postmaster binary somehow reporting
> the postmaster status.  Seems it is in a better position to
> do that than
> a shell script.

Architectural notion:
The Postmaster is about 100x bigger than it needs to be.

The Postmaster needs to set up shared memory and launch servers.  It
does not need to know anything about SQL grammar or any of that
rigamarole.

It could be a 15K executable.

Why not have an itty-bitty Postmaster that does nothing but a spawn or a
create process to create threaded Postgres instances?

Just a notion.


Re: Roadmap for a Win32 port

From
Bruce Momjian
Date:
Dann Corbit wrote:
> > > It will be at least another copy of the postmaster (dot exe).
> > 
> > Yea, I just liked the idea of the postmaster binary somehow reporting
> > the postmaster status.  Seems it is in a better position to 
> > do that than
> > a shell script.
> 
> Architectural notion:
> The Postmaster is about 100x bigger than it needs to be.
> 
> The Postmaster needs to set up shared memory and launch servers.  It
> does not need to know anything about SQL grammar or any of that
> rigamarole.
> 
> It could be a 15K executable.
> 
> Why not have an itty-bitty Postmaster that does nothing but a spawn or a
> create process to create threaded Postgres instances?

Can't.  postmaster/postgres are symlinks to the same file, and we fork()
from postmaster to create backends.  All the code has to be in the
postmaster so the fork works.

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026
 


Re: Roadmap for a Win32 port

From
"Dann Corbit"
Date:
> -----Original Message-----
> From: Bruce Momjian [mailto:pgman@candle.pha.pa.us]
> Sent: Monday, June 17, 2002 6:20 PM
> To: Dann Corbit
> Cc: Jan Wieck; Peter Eisentraut; PostgreSQL-development
> Subject: Re: [HACKERS] Roadmap for a Win32 port
>
>
> Dann Corbit wrote:
> > > > It will be at least another copy of the postmaster (dot exe).
> > >
> > > Yea, I just liked the idea of the postmaster binary
> somehow reporting
> > > the postmaster status.  Seems it is in a better position to
> > > do that than
> > > a shell script.
> >
> > Architectural notion:
> > The Postmaster is about 100x bigger than it needs to be.
> >
> > The Postmaster needs to set up shared memory and launch servers.  It
> > does not need to know anything about SQL grammar or any of that
> > rigamarole.
> >
> > It could be a 15K executable.
> >
> > Why not have an itty-bitty Postmaster that does nothing but
> a spawn or a
> > create process to create threaded Postgres instances?
>
> Can't.  postmaster/postgres are symlinks to the same file,
> and we fork()
> from postmaster to create backends.  All the code has to be in the
> postmaster so the fork works.

Is fork() faster than creation of a new process via exec()?  After the
creation of the shared memory, the information needed to use it could be
passed to the Postgres servers on the command line.

The startup stuff for PostgreSQL is just a few files.  It does not seem
insurmountable to change it.  But it is none of my business.  If it is a
major hassle (for reasons which I am not aware) then I see no driving
reason to change it.


Re: Roadmap for a Win32 port

From
Bruce Momjian
Date:
Dann Corbit wrote:
> > Can't.  postmaster/postgres are symlinks to the same file, 
> > and we fork()
> > from postmaster to create backends.  All the code has to be in the
> > postmaster so the fork works.
> 
> Is fork() faster than creation of a new process via exec()?  After the
> creation of the shared memory, the information needed to use it could be
> passed to the Postgres servers on the command line.
> 
> The startup stuff for PostgreSQL is just a few files.  It does not seem
> insurmountable to change it.  But it is none of my business.  If it is a
> major hassle (for reasons which I am not aware) then I see no driving
> reason to change it.

We used to fork() and exec(), but that was slow.  Now we preload stuff
in the postmaster for each backend.  It is faster.

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026
 


Re: Roadmap for a Win32 port

From
Jan Wieck
Date:
Dann Corbit wrote:
> 
> > -----Original Message-----
> > From: Bruce Momjian [mailto:pgman@candle.pha.pa.us]
> > Sent: Monday, June 17, 2002 6:20 PM
> > To: Dann Corbit
> > Cc: Jan Wieck; Peter Eisentraut; PostgreSQL-development
> > Subject: Re: [HACKERS] Roadmap for a Win32 port
> >
> >
> > Dann Corbit wrote:
> > > > > It will be at least another copy of the postmaster (dot exe).
> > > >
> > > > Yea, I just liked the idea of the postmaster binary
> > somehow reporting
> > > > the postmaster status.  Seems it is in a better position to
> > > > do that than
> > > > a shell script.
> > >
> > > Architectural notion:
> > > The Postmaster is about 100x bigger than it needs to be.
> > >
> > > The Postmaster needs to set up shared memory and launch servers.  It
> > > does not need to know anything about SQL grammar or any of that
> > > rigamarole.
> > >
> > > It could be a 15K executable.
> > >
> > > Why not have an itty-bitty Postmaster that does nothing but
> > a spawn or a
> > > create process to create threaded Postgres instances?
> >
> > Can't.  postmaster/postgres are symlinks to the same file,
> > and we fork()
> > from postmaster to create backends.  All the code has to be in the
> > postmaster so the fork works.
> 
> Is fork() faster than creation of a new process via exec()?  After the
> creation of the shared memory, the information needed to use it could be
> passed to the Postgres servers on the command line.

exec() does NOT create new processes. It loads another executable file
into the existing, calling process. 

fork() duplicates the calling process. In modern unix variants, this is
done in a very efficient way, so that the text segment (program code) is
shared readonly and everything else (data and stack segments) are shared
copy on write. Thus, fork() itself doesn't even cause memory copying.
That happens later when one of the now two processes writes to a memory
page the first time.

Windows does not have these two separate steps. It wants the full blown
expensive "create process and load executable", or the "let's all muck
around with the same handles" modell, called threading. 

> 
> The startup stuff for PostgreSQL is just a few files.  It does not seem
> insurmountable to change it.  But it is none of my business.  If it is a
> major hassle (for reasons which I am not aware) then I see no driving
> reason to change it.

It has to be changed for Windows, it is a major hassle for reasons I
wasn't aware of, and I am half way through ;-)


Jan

-- 

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== JanWieck@Yahoo.com #


Re: Roadmap for a Win32 port

From
Greg Copeland
Date:
On Tue, 2002-06-18 at 09:07, Jan Wieck wrote:
> Dann Corbit wrote:
> >
> > The startup stuff for PostgreSQL is just a few files.  It does not seem
> > insurmountable to change it.  But it is none of my business.  If it is a
> > major hassle (for reasons which I am not aware) then I see no driving
> > reason to change it.
>
> It has to be changed for Windows, it is a major hassle for reasons I
> wasn't aware of, and I am half way through ;-)
>

Well, if you're going to go through the trouble of rewriting postmaster
to be win32 specific, you might as well make it hook into the services
control panel.

If I recall, shared memory is "owned" by a process in Win32 (please
correct as needed...as I've slept since I last looked).  That means that
the postmaster process not only owns the shared memory but needs to make
sure that it's persists as the rest of postgres is expecting.

Please provide more details as to the nature of your Win32 changes.  I'm
certainly curious.  If you've already covered them, just say so...I have
no problem going back to the archives! :)

Greg


Re: Roadmap for a Win32 port

From
Serge Adda
Date:
Hello,

I am new to PostgreSQL, but I am interested in the Win32 port.
I have studied the architecture of other databases like Oracle.

They have had to turn their multi-process model used on Unix into a fully
multi-threaded one on Win32. I have the feeling that they have had the same
debate that the one you have.

The CreateProcess() syscall is very costly on Windows. Some improvements
have been done in Windows XP but it is still far more costly than a Unix
fork().

I have been programming with threads on NT for a long time now.
They are quiet robust and efficient. I fear that it is the only successful
way to port PostgreSQL.

Sorry for this interruption,
Serge

-----Original Message-----
From: Jan Wieck [mailto:JanWieck@Yahoo.com] 
Sent: Tuesday, June 18, 2002 16:07
To: Dann Corbit
Cc: Bruce Momjian; Peter Eisentraut; PostgreSQL-development
Subject: Re: [HACKERS] Roadmap for a Win32 port

Dann Corbit wrote:
> 
> > -----Original Message-----
> > From: Bruce Momjian [mailto:pgman@candle.pha.pa.us]
> > Sent: Monday, June 17, 2002 6:20 PM
> > To: Dann Corbit
> > Cc: Jan Wieck; Peter Eisentraut; PostgreSQL-development
> > Subject: Re: [HACKERS] Roadmap for a Win32 port
> >
> >
> > Dann Corbit wrote:
> > > > > It will be at least another copy of the postmaster (dot exe).
> > > >
> > > > Yea, I just liked the idea of the postmaster binary
> > somehow reporting
> > > > the postmaster status.  Seems it is in a better position to
> > > > do that than
> > > > a shell script.
> > >
> > > Architectural notion:
> > > The Postmaster is about 100x bigger than it needs to be.
> > >
> > > The Postmaster needs to set up shared memory and launch servers.  It
> > > does not need to know anything about SQL grammar or any of that
> > > rigamarole.
> > >
> > > It could be a 15K executable.
> > >
> > > Why not have an itty-bitty Postmaster that does nothing but
> > a spawn or a
> > > create process to create threaded Postgres instances?
> >
> > Can't.  postmaster/postgres are symlinks to the same file,
> > and we fork()
> > from postmaster to create backends.  All the code has to be in the
> > postmaster so the fork works.
> 
> Is fork() faster than creation of a new process via exec()?  After the
> creation of the shared memory, the information needed to use it could be
> passed to the Postgres servers on the command line.

exec() does NOT create new processes. It loads another executable file
into the existing, calling process. 

fork() duplicates the calling process. In modern unix variants, this is
done in a very efficient way, so that the text segment (program code) is
shared readonly and everything else (data and stack segments) are shared
copy on write. Thus, fork() itself doesn't even cause memory copying.
That happens later when one of the now two processes writes to a memory
page the first time.

Windows does not have these two separate steps. It wants the full blown
expensive "create process and load executable", or the "let's all muck
around with the same handles" modell, called threading. 

> 
> The startup stuff for PostgreSQL is just a few files.  It does not seem
> insurmountable to change it.  But it is none of my business.  If it is a
> major hassle (for reasons which I am not aware) then I see no driving
> reason to change it.

It has to be changed for Windows, it is a major hassle for reasons I
wasn't aware of, and I am half way through ;-)


Jan

-- 

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== JanWieck@Yahoo.com #

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org


Re: Roadmap for a Win32 port

From
"Marek Mosiewicz"
Date:
I know that Apache Group created special library to handle difference
between different platforms (including win32). They had similar problems
porting Apache to Windows. They build very portable threads api (win32,
POSIX, native Linux thread and more) There is also all IPC stuff (mutex,
signals mmap etc.) and many more. This functions work both on unix and
windows and use most effective implementation (e.g. POSIX functions on
Winodws are slow compared to native).

http://apr.apache.org/



-----Original Message-----
From: pgsql-hackers-owner@postgresql.org
[mailto:pgsql-hackers-owner@postgresql.org] On Behalf Of Serge Adda
Sent: Tuesday, June 18, 2002 6:43 PM
To: 'Jan Wieck'; 'Dann Corbit'
Cc: 'Bruce Momjian'; 'Peter Eisentraut'; 'PostgreSQL-development'
Subject: Re: [HACKERS] Roadmap for a Win32 port

Hello,

I am new to PostgreSQL, but I am interested in the Win32 port.
I have studied the architecture of other databases like Oracle.

They have had to turn their multi-process model used on Unix into a
fully
multi-threaded one on Win32. I have the feeling that they have had the
same
debate that the one you have.

The CreateProcess() syscall is very costly on Windows. Some improvements
have been done in Windows XP but it is still far more costly than a Unix
fork().

I have been programming with threads on NT for a long time now.
They are quiet robust and efficient. I fear that it is the only
successful
way to port PostgreSQL.

Sorry for this interruption,
Serge

-----Original Message-----
From: Jan Wieck [mailto:JanWieck@Yahoo.com] 
Sent: Tuesday, June 18, 2002 16:07
To: Dann Corbit
Cc: Bruce Momjian; Peter Eisentraut; PostgreSQL-development
Subject: Re: [HACKERS] Roadmap for a Win32 port

Dann Corbit wrote:
> 
> > -----Original Message-----
> > From: Bruce Momjian [mailto:pgman@candle.pha.pa.us]
> > Sent: Monday, June 17, 2002 6:20 PM
> > To: Dann Corbit
> > Cc: Jan Wieck; Peter Eisentraut; PostgreSQL-development
> > Subject: Re: [HACKERS] Roadmap for a Win32 port
> >
> >
> > Dann Corbit wrote:
> > > > > It will be at least another copy of the postmaster (dot exe).
> > > >
> > > > Yea, I just liked the idea of the postmaster binary
> > somehow reporting
> > > > the postmaster status.  Seems it is in a better position to
> > > > do that than
> > > > a shell script.
> > >
> > > Architectural notion:
> > > The Postmaster is about 100x bigger than it needs to be.
> > >
> > > The Postmaster needs to set up shared memory and launch servers.
It
> > > does not need to know anything about SQL grammar or any of that
> > > rigamarole.
> > >
> > > It could be a 15K executable.
> > >
> > > Why not have an itty-bitty Postmaster that does nothing but
> > a spawn or a
> > > create process to create threaded Postgres instances?
> >
> > Can't.  postmaster/postgres are symlinks to the same file,
> > and we fork()
> > from postmaster to create backends.  All the code has to be in the
> > postmaster so the fork works.
> 
> Is fork() faster than creation of a new process via exec()?  After the
> creation of the shared memory, the information needed to use it could
be
> passed to the Postgres servers on the command line.

exec() does NOT create new processes. It loads another executable file
into the existing, calling process. 

fork() duplicates the calling process. In modern unix variants, this is
done in a very efficient way, so that the text segment (program code) is
shared readonly and everything else (data and stack segments) are shared
copy on write. Thus, fork() itself doesn't even cause memory copying.
That happens later when one of the now two processes writes to a memory
page the first time.

Windows does not have these two separate steps. It wants the full blown
expensive "create process and load executable", or the "let's all muck
around with the same handles" modell, called threading. 

> 
> The startup stuff for PostgreSQL is just a few files.  It does not
seem
> insurmountable to change it.  But it is none of my business.  If it is
a
> major hassle (for reasons which I am not aware) then I see no driving
> reason to change it.

It has to be changed for Windows, it is a major hassle for reasons I
wasn't aware of, and I am half way through ;-)


Jan

-- 

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== JanWieck@Yahoo.com #

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org

---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/users-lounge/docs/faq.html



Democracy and organisation : let's make a revolution in the Debian way

From
Jean-Michel POURE
Date:
Le Mardi 18 Juin 2002 18:42, Serge Adda a écrit :
> I am new to PostgreSQL, but I am interested in the Win32 port.
> I have studied the architecture of other databases like Oracle.

Hello,

It seems clear that several teams are working without central point management
and contact:

- W32 port: at least a Japase team, a PostgreSQL hacker team and a company are
working separately. This makes three separate efforts for the most important
project this year.

- Replication: development is slow although a lot of people would be
interested in helping. But there is no central organization apart from the
hackers-list.

- Web site: a www list is working on several issues. Is there a central design
for all PostgreSQL site, like PHP does?

- Marketing: MySQL sucks and has a team of marketing sending junk technical
emails and writing false benchmarks. Who is in charge of marketing at
PostgreSQL? Where can I find a list of PostgreSQL features?

Personnaly, I agree with someone who wrote "Remember Betamax. It was the best
technical standard, but it died for commercial reasons". I don't want
PostgreSQL to be the next Betamax.

Some projects, like Debian, have a democratic organisation. The team leader is
elected for a year. Why not settle a similar organization? This would help
take decisions ... and not loose time on important issues.

PostgreSQL is a software but it is also a community. If we believe in
democracy, I suggest we should organize in a democratic way and elect a
leader for a year.

Just my 2 cents.
Cheers.
Jean-Michel POURE


On Thu, Jun 20, 2002 at 12:01:53PM +0200, Jean-Michel POURE wrote:

> Some projects, like Debian, have a democratic organisation. The team leader is 
> elected for a year. Why not settle a similar organization? This would help 
IMHO there is not problem with organization -- I don't know what doyou want to organize on actual number of developers
/contributors:-)The PostgreSQL is not project like Debian -- if you want to work on Debian you must know package system
andDebian standards only. But if you want to work on PostgreSQL you must be at the least average programmer (means
severalyears experience) and you must know a great many of current PostgreSQL code.
 
> PostgreSQL is a software but it is also a community. If we believe in 
> democracy, I suggest we should organize in a democratic way and elect a 
> leader for a year.
What is non-democratic now?
   Karel

-- Karel Zak  <zakkr@zf.jcu.cz>http://home.zf.jcu.cz/~zakkr/C, PostgreSQL, PHP, WWW, http://docs.linux.cz,
http://mape.jcu.cz


Re: Democracy and organisation : let's make a revolution in the Debian way

From
Jean-Michel POURE
Date:
Le Jeudi 20 Juin 2002 13:39, Karel Zak a écrit :
>  IMHO there is not problem with organization -- I don't know what do
>  you want to organize on actual number of developers / contributors

Dear Karel,

My previous e-mail points out several projects where, IMHO, a leadership would
benefit the community at large :
- replication,
- W32 port,
- marketing (read the post "Read this and puke").

>  What is non-democratic now?

The current processes are based on discussion, and therefore are democratic.
My proposal does not intend to change discussion processes between
pgsql-hackers.

But, in order to face companies like MySQL AB, Oracle or Micro$oft, the
community needs to take important decisions that will help team work. A
clarified organization would help.

Please note I am not a PostgreSQL hacker myself, as I do not contribute code
to PostgreSQL main sources. But, as an outside spectator, I would only like
to point out that some efforts need coordination.

Debian is a very interesting example of Open-Source organization, as for all
aspects linked to "decision making". Usually, at Debian, when a discussion is
driven, a clear choice arizes after a limited time. Projects are sometimes
slow, but always reach their goals.

As for current PostgreSQL organization, can someone explain me which W32 port
will make its way to PostgreSQL main source code? Can someone publish a
schedule for replication availability? Who is in charge of explaining newbees
that MySQL InnoDB is just a marketing lie? What is the current PostgreSQL
market share?

In other words, we should ask ourselves the question of PostgreSQL future
organization. We come to point where PostgreSQL has equal chances to become
the #1 database or die like Betamax.

Best regards to you all,
Jean-Michel


Re: Democracy and organisation : let's make a revolution

From
Hannu Krosing
Date:
On Thu, 2002-06-20 at 14:33, Jean-Michel POURE wrote:
> Le Jeudi 20 Juin 2002 13:39, Karel Zak a écrit :
> >  IMHO there is not problem with organization -- I don't know what do
> >  you want to organize on actual number of developers / contributors
>
> Dear Karel,
>
> My previous e-mail points out several projects where, IMHO, a leadership would
> benefit the community at large :
> - replication,
> - W32 port,
> - marketing (read the post "Read this and puke").
>
> >  What is non-democratic now?
>
> The current processes are based on discussion, and therefore are democratic.
> My proposal does not intend to change discussion processes between
> pgsql-hackers.
>
> But, in order to face companies like MySQL AB, Oracle or Micro$oft, the
> community needs to take important decisions that will help team work. A
> clarified organization would help.

In what way ?

Do you really think that if we would elect Tom or Bruce or someone else
"The President of the PostgreSQL Community" then their word would weight
more in mainstream press ?

> Please note I am not a PostgreSQL hacker myself, as I do not contribute code
> to PostgreSQL main sources. But, as an outside spectator, I would only like
> to point out that some efforts need coordination.
>
> Debian is a very interesting example of Open-Source organization, as for all
> aspects linked to "decision making". Usually, at Debian, when a discussion is
> driven, a clear choice arizes after a limited time. Projects are sometimes
> slow, but always reach their goals.

From an "outside spactator" perspective Debian seems to be really,
really slow.
> As for current PostgreSQL organization, can someone explain me which W32 port
> will make its way to PostgreSQL main source code?

There is already one W32 port in main source (the one that uses cygwin).

IMHO the first native port that a) worksb) does not make *nix version slower/harder to maintain
andc) is submitted for inclusion will make it into main source.

> Can someone publish a schedule for replication availability?

I guess any of the teams working on different ways to replicate could do
it. Another question is if they can stick to it.

> Who is in charge of explaining newbees that MySQL InnoDB is just a
> marketing lie?

Nobody is "in charge", but everybody is welcome to do it, even without
being "elected" or "nominated ";)

Still, having a "success stories" or "advocacy" section on
www.postgresq.org seems like a good idea.

> What is the current PostgreSQL  market share?
>
> In other words, we should ask ourselves the question of PostgreSQL future
> organization.

The current organization is "a loosely knit team" which seems to work
quite well.

> We come to point where PostgreSQL has equal chances to become
> the #1 database or die like Betamax.

Open-source will probably work differently, i.e postgres will probably
not die even if it will not be #1.

----------------
Hannu


On Thu, Jun 20, 2002 at 02:33:04PM +0200, Jean-Michel POURE wrote:
> Le Jeudi 20 Juin 2002 13:39, Karel Zak a écrit :
> >  IMHO there is not problem with organization -- I don't know what do
> >  you want to organize on actual number of developers / contributors
> 
> My previous e-mail points out several projects where, IMHO, a leadership would 
> benefit the community at large :
> - replication,
> - W32 port,
> - marketing (read the post "Read this and puke").
I understend you. I saw a lot of project and ideas, but it _always_ depend on people and their time. You can organize,
youcanprepare cool planns, but don't forget -- in finale must somebodyimplement it. Who? I don't know method how clone
TomLane or getmoney for others developers who can't full time work on PostgreSQLnow. 
 
> As for current PostgreSQL organization, can someone explain me which W32 port 
> will make its way to PostgreSQL main source code? Can someone publish a 
If nobody -- you can test it, make it better and write somethingabout it. If nobody works on some theme it means this
themeis notimportant for now. BUT everybody can change it and everybody can start work on arbitrary TODO item. It seems
hard,but it's right :-)   Karel
 

-- Karel Zak  <zakkr@zf.jcu.cz>http://home.zf.jcu.cz/~zakkr/C, PostgreSQL, PHP, WWW, http://docs.linux.cz,
http://mape.jcu.cz


Re: Democracy and organisation : let's make a revolution in

From
Jan Wieck
Date:
Jean-Michel POURE wrote:
> [...]
> As for current PostgreSQL organization, can someone explain me which W32 port
> will make its way to PostgreSQL main source code? Can someone publish a
> schedule for replication availability? Who is in charge of explaining newbees
> that MySQL InnoDB is just a marketing lie? What is the current PostgreSQL
> market share?

I think the first native Win32 port that gets contributet will make it.
So far I have seen a couple of people claiming the "have" a native Win32
port, not using CygWIN. But none of them was willing to contribute their
work.

There is no official "schedule" for any of the features. PostgreSQL is a
100% volunteer project, so people work on it if and when they feel the
need to AND have the time. Even if some of us do work on PostgreSQL at
their job, a few even fulltime, you will not see such commitments.

And why do you think InnoDB is a marketing lie? It bought MySQL a good
number of features, including row level locking, transactions and
limited foreign key support. Actually it stopped MySQL from yelling out
the FUD they told people far too long, like "transactions are useless
overhead" and "referential integrity is bad".


Jan

-- 

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== JanWieck@Yahoo.com #


Re: Democracy and organisation : let's make a revolution

From
Gavin Sherry
Date:
On Thu, 20 Jun 2002, Jean-Michel POURE wrote:

> Le Jeudi 20 Juin 2002 13:39, Karel Zak a écrit :
> >  IMHO there is not problem with organization -- I don't know what do
> >  you want to organize on actual number of developers / contributors
>
> Dear Karel,
>
> My previous e-mail points out several projects where, IMHO, a leadership would
> benefit the community at large :
> - replication,
> - W32 port,
> - marketing (read the post "Read this and puke").
>
> >  What is non-democratic now?
>
> The current processes are based on discussion, and therefore are democratic.
> My proposal does not intend to change discussion processes between
> pgsql-hackers.
>
> But, in order to face companies like MySQL AB, Oracle or Micro$oft, the
> community needs to take important decisions that will help team work. A
> clarified organization would help.

Jean,

Why on earth does this matter? Postgres will continue to be a good
database as long as developers and users cut code. It is not a
sufficiently complicated project to warrant too much concern about things
like this. Besides, a significant amount of the code committed to
Postgres is inspired by personal interest not obligation.

Gavin




Jean-Michel POURE <jm.poure@freesurf.fr> writes:
> As for current PostgreSQL organization, can someone explain me which
> W32 port will make its way to PostgreSQL main source code? Can someone
> publish a schedule for replication availability? Who is in charge of
> explaining newbees that MySQL InnoDB is just a marketing lie? What is
> the current PostgreSQL market share?

And an "elected leader" will make all this stuff clear exactly how?

If someone would like to step up and actually *do* that marketing work,
that'd be great.  Complaining that it's not being done is a waste of
list bandwidth.  Electing someone isn't going to magically make it
happen, either.

It does concern me that there seem to be several W32 porting efforts
going on without contact with each other or with the wider pghackers
community; but if they want to work that way, I don't think there's
much we can do to force them to come out in the open.

BTW, we do already have a recognized leadership group: the core
committee.  The committee members mostly prefer to lead by example
and by consensus, rather than trying to impose their will on others,
which is maybe why you hadn't noticed.
        regards, tom lane


Re: Democracy and organisation : let's make a revolution in the Debian way

From
Jean-Michel POURE
Date:
Le Jeudi 20 Juin 2002 15:22, Tom Lane a écrit :
> BTW, we do already have a recognized leadership group: the core
> committee.  The committee members mostly prefer to lead by example
> and by consensus, rather than trying to impose their will on others,
> which is maybe why you hadn't noticed.

You are right. Leading by example and consensus is the way things work. If the
committee can publish clear goals, there is no need to elect a leader.

Now I realize my concern is about project management. Do you think the
committee could publish a project web page showing who works on what?

Someone willing to help on a projet would view the page and contact
developpers more easilly. Presently, there is no clear knowledge who is
working on the W32 port or on replication. Using a project page, there would
be less chances to see new forks of particular projects (W32, replication).

This page would be accessible from the to-do-list. Conversly, the to-do-list
would lead to the projects page.

Just my 2 cents.
Thanks to all of you who replied my mail.

Cheers,
Jean-Michel


Re: Democracy and organisation : let's make a revolution in

From
Bruce Momjian
Date:
Jean-Michel POURE wrote:
> Le Mardi 18 Juin 2002 18:42, Serge Adda a ?crit :
> > I am new to PostgreSQL, but I am interested in the Win32 port.
> > I have studied the architecture of other databases like Oracle.
> 
> Hello,
> 
> It seems clear that several teams are working without central point management 
> and contact:
> 
> - W32 port: at least a Japanese team, a PostgreSQL hacker team and a company are 
> working separately. This makes three separate efforts for the most important 
> project this year.

Funny you should mention that. I talked with three people on the phone
just yesterday in an attempt to get them together on the Win32 port.  I
have been hesitant to publicly try and join them together because they
haven't publicly stated if they are going to contribute their code
back to the project, or haven't been clear on _when_ they would
contribute it back.

My goal is to take the roadmap I posted on June 5, make a web page, and
get some agreement from the community on how to address each item:
http://candle.pha.pa.us/cgi-bin/pgtodo?win32
. 
Then, the groups can know how we prefer to have things done, and if they
contribute back quickly, the other projects can benefit from their work,
and we _don't_ get conflicting Win32 implementations contributed back to
the project.

> - Replication: development is slow although a lot of people would be 
> interested in helping. But there is no central organization apart from the 
> hackers-list.

I am on the replication mailing list:
http://gborg.postgresql.org/project/pgreplication/projdisplay.php

That project is moving along, and hopefully they can merge their code
into the main tree so others can assist them.  Not sure what else we can
do.

> - Web site: a www list is working on several issues. Is there a central design 
> for all PostgreSQL site, like PHP does?
> 
> - Marketing: MySQL sucks and has a team of marketing sending junk technical 
> emails and writing false benchmarks. Who is in charge of marketing at 
> PostgreSQL? Where can I find a list of PostgreSQL features?

I skipped commenting on the marketing discussion because I was working
on a patch.  Probably our biggest problem compared to MySQL is that
MySQL is a single company behind a single database, while we have >4
companies behind PostgreSQL, and their thrust is promoting their company
rather than PostgreSQL itself.

While we have an excellent development team, we don't have a funded team
to go around to trade shows and write articles promoting PostgreSQL.  We
only have a very few people employed full-time with PostgreSQL, and it
usually takes a few full-time people to do just marketing.  Great Bridge
was really the only one to push PostgreSQL, and they are gone.

MySQL has such a team, and so does Oracle, and it helps.  Linux was in a
similar boat, with multiple companies behind Linux, and every one
promoting its own company rather than Linux itself.  We need large
PostgreSQL companies that promote themselves, and PostgreSQL along with
it.  Linux is in the same boat, with distributors promoting themselves
and Linux along with it.


> Personnaly, I agree with someone who wrote "Remember Betamax. It was the best 
> technical standard, but it died for commercial reasons". I don't want 
> PostgreSQL to be the next Betamax.

I thought the problem with Betamax was that Sony controlled the
standard, and other companies didn't like that.


I am always looking for more ideas in these areas.

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026
 


Re: Democracy and organisation : let's make a revolution in

From
Thomas Lockhart
Date:
...
> MySQL has such a team, and so does Oracle, and it helps.  Linux was in a
> similar boat, with multiple companies behind Linux, and every one
> promoting its own company rather than Linux itself.  We need large
> PostgreSQL companies that promote themselves, and PostgreSQL along with
> it.  Linux is in the same boat, with distributors promoting themselves
> and Linux along with it.

Right. That may have slowed down the trade press recognition of Linux,
but in the end Linux has risen into view by popular demand and acclaim.

PostgreSQL has a similar opportunity and can succeed on a similar path.
We do have a superior technical solution, we have a superior open-source
support system, and we have (imho :) a superior development model and
development team open to new contributions and innovation.

The basis is there for success into the future, and at some point we
will get a lot for a little effort on marketing. Other products
bootstrap themselves by marketing early and often. And to the detriment
of the technical side.
                  - Thomas


Re: Democracy and organisation : let's make a revolution in

From
Bruce Momjian
Date:
Jan Wieck wrote:
> Jean-Michel POURE wrote:
> > [...]
> > As for current PostgreSQL organization, can someone explain me which W32 port
> > will make its way to PostgreSQL main source code? Can someone publish a
> > schedule for replication availability? Who is in charge of explaining newbees
> > that MySQL InnoDB is just a marketing lie? What is the current PostgreSQL
> > market share?
> 
> I think the first native Win32 port that gets contributet will make it.

This line bothers me.  With multiple people working on Win32, I would
like us to decide how we would _like_ such a port to be implemented. I
think this will assist those working on the project to _know_ that their
work will be accepted if submitted.

Also, I encourage people working on Win32 ports to contribute their work
_as_ the complete each module, rather than as one huge patch.  That way,
other Win32 porters can benefit from their work and maybe we can get
this done in 1/2 the time.

What I don't want to happen is two Win32 projects contributing duplicate
code at the same time.  It is a waste when they could have combined
their efforts.

So, my message to Win32 porters is to communicate what you are doing,
including implementation details, and contribute back as soon as you
can.  If you don't, someone else may beat you to it, and your patch may
be rejected, leaving you to either scrap your work or continually port
your changes to every future PostgreSQL release.

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026
 


Re: Democracy and organisation : let's make a revolution

From
"Marc G. Fournier"
Date:
On Thu, 20 Jun 2002, Jean-Michel POURE wrote:

> As for current PostgreSQL organization, can someone explain me which W32
> port will make its way to PostgreSQL main source code?

Whichever one actually submits patches for review first that is deemed
acceptable for inclusion ... as its always been ...

> Can someone publish a schedule for replication availability?

Its available now, and has been for several months *shrug*  There is a
project called PgReplication that is Open Source (hopefully someone from
that camp will pop up) ... and PgSQL, Inc has several deployments of their
commercial replication out there now, with several more pending ...

In fact, all of our work has been based on the rserv code that is in
contrib, and that we released over (almost?) a year ago ... but I've seen
nobody actually try to build on it, altho its what we've extended and are
using sucessfully in production environments ...

> Who is in charge of explaining newbees that MySQL InnoDB is just a
> marketing lie?

You are ... and anyone else that asks about it / mentions it ...

> What is the current PostgreSQL market share?

If you can think of a method of calculating this, as there is no
'commercial licensing' involved, please let us know ... would love to find
out ... there have been several surveys about it, but, quite frankly,
without having some sort of 'licensing' required to use, there is zero way
of getting any *real* numbers on this ...

> In other words, we should ask ourselves the question of PostgreSQL
> future organization. We come to point where PostgreSQL has equal chances
> to become the #1 database or die like Betamax.

At this point in time, the current organization == future organization ...
you are putting a 'marketing effort' as being the responsibility of the
open source project, and using MySQL AB as a comparison ... MySQL AB is a
*commercial company*, as is PostgreSQL, Inc -and- SRA and several other
newcomers, all of whom are doing marketing in their own way, based on
budget and requirements for growth ...

The "developmental organization", which we are, has been successful for
the past 7 years now ... flame wars are minimal, as are disagreements ...
there are some patches that get rejected that those generating them are
disappointed about, but most of *them* just bounce back with improvements
based on what has been told to them as being unacceptable ... about the
only thing that *has* changed over the past 7 years is that our standards
are tightened up as we move from mainly fixing bugs/stability to improving
the server itself ...





On Thu, 20 Jun 2002, Bruce Momjian wrote:

> Jan Wieck wrote:
> > Jean-Michel POURE wrote:
> > > [...]
> > > As for current PostgreSQL organization, can someone explain me which W32 port
> > > will make its way to PostgreSQL main source code? Can someone publish a
> > > schedule for replication availability? Who is in charge of explaining newbees
> > > that MySQL InnoDB is just a marketing lie? What is the current PostgreSQL
> > > market share?
> >
> > I think the first native Win32 port that gets contributet will make it.
>
> This line bothers me.  With multiple people working on Win32, I would
> like us to decide how we would _like_ such a port to be implemented. I
> think this will assist those working on the project to _know_ that their
> work will be accepted if submitted.

1. that is not accurate, as it won't necessarily be accepted if submitted
... its not like years ago when are standards were lax ... Jan is
perfectly accurate in his assessment of which will make it in, except for
omitting one point ... it has to meet our standards ... so, its more "the
first to contribute *and* meet our standards" ...

> Also, I encourage people working on Win32 ports to contribute their work
> _as_ the complete each module, rather than as one huge patch.  That way,
> other Win32 porters can benefit from their work and maybe we can get
> this done in 1/2 the time.

This is what should be done anyway ... I wouldn't even be so much worried
abou t"other Win32 porters" as much as trying to integrate that 'hugh
patch' at a later date, consiedering all the changes that go into our code
:)

> What I don't want to happen is two Win32 projects contributing duplicate
> code at the same time.  It is a waste when they could have combined
> their efforts.

IMHO, that is actually their problem ... without meaning to sound crass
about it, but its not like we haven't discussed it extensively here, and
openly ... hell, we've even tried to break down the whole project into
smaller components to make the whole easier to merge in :)

> So, my message to Win32 porters is to communicate what you are doing,
> including implementation details, and contribute back as soon as you
> can.  If you don't, someone else may beat you to it, and your patch may
> be rejected, leaving you to either scrap your work or continually port
> your changes to every future PostgreSQL release.

Agreed here ... and this doesn't just apply to Win32 porters ... there
have been *alot* of "big projects" worked on over the years that have been
implemented in pieces so that code-base doesn't diverge too much, making
patching difficult ... the last thing anyone should want is to work for a
few months to create a nice big patch to find out that what they have
"fixed" got yanked out of the code already :)




Re: Democracy and organisation : let's make a revolution

From
"Marc G. Fournier"
Date:
On Thu, 20 Jun 2002, Jean-Michel POURE wrote:

> Le Jeudi 20 Juin 2002 15:22, Tom Lane a �crit :
> > BTW, we do already have a recognized leadership group: the core
> > committee.  The committee members mostly prefer to lead by example
> > and by consensus, rather than trying to impose their will on others,
> > which is maybe why you hadn't noticed.
>
> You are right. Leading by example and consensus is the way things work. If the
> committee can publish clear goals, there is no need to elect a leader.
>
> Now I realize my concern is about project management. Do you think the
> committee could publish a project web page showing who works on what?

No ... cause nobody works on anything specific ... they work on what
appeals to them, as it appeals to them ...

> Someone willing to help on a projet would view the page and contact
> developpers more easilly. Presently, there is no clear knowledge who is
> working on the W32 port or on replication. Using a project page, there
> would be less chances to see new forks of particular projects (W32,
> replication).

If someone workign on the w32 port isn't willing to announce such on
-hackers, how do you think we'd get that information for a web page?  The
easiest way to 'contact developers' is to post to this list, and then you
don't restrict yourself to anyone one person, but everyone involved in teh
project ...

I think you are confusing a project on the scale of an operating system
with PgSQL ... an OS has to have someone at the top to make sure each
sub-package integrates well into the overall OS ... we *are* the
sub-package, and our "leaders" are essentially "our developers" ... we
have a core committee that consists of several of us that brought PgSQL
out of Berkeley and into the real world, but if you saw the archives for
that list, you woudln't see much, since we tend to try and keep all
discussions *on* -hackers ...



Re: Democracy and organisation : let's make a revolution

From
"Marc G. Fournier"
Date:
On 20 Jun 2002, Hannu Krosing wrote:

> Nobody is "in charge", but everybody is welcome to do it, even without
> being "elected" or "nominated ";)
>
> Still, having a "success stories" or "advocacy" section on
> www.postgresq.org seems like a good idea.

Being worked on ... we are actually working on totally revamping and
cleaning up the web site(s) ...




Re: Democracy and organisation : let's make a revolution in

From
Neil Conway
Date:
On Thu, 20 Jun 2002 12:09:35 -0400 (EDT)
"Bruce Momjian" <pgman@candle.pha.pa.us> wrote:
> Jean-Michel POURE wrote:
> > - Replication: development is slow although a lot of people would be 
> > interested in helping. But there is no central organization apart from the 
> > hackers-list.

Replication development is co-ordinated on the pgreplication-general
list which Bruce mentions below, not on -hackers. Any interested
developers should subscribe to it, read the relevant research papers
on Postgres-R, and contribute code.

As for the speed of development, I've started to contribute code recently,
and Darren Johnson (the main replication developer) says he should have some
free time soon -- there are also some other new developers interested in
the project. So while there was a period of inactivity, I think that progress
is now being made.

> I am on the replication mailing list:
> 
>     http://gborg.postgresql.org/project/pgreplication/projdisplay.php
> 
> That project is moving along, and hopefully they can merge their code
> into the main tree so others can assist them.  Not sure what else we can
> do.

I can't make any claims about a schedule -- since everyone working on the
project is a volunteer, the only release goals I'd like to set are "when it's
ready". The code right now is pretty unstable, so I don't think it's appropriate
for the main CVS tree until we work it into better shape.

Cheers,

Neil

-- 
Neil Conway <neilconway@rogers.com>
PGP Key ID: DB3C29FC


Re: First Win32 Contribution (Was: Re: Democracy and

From
Jan Wieck
Date:
"Marc G. Fournier" wrote:
> 
> On Thu, 20 Jun 2002, Bruce Momjian wrote:
> 
> > This line bothers me.  With multiple people working on Win32, I would
> > like us to decide how we would _like_ such a port to be implemented. I
> > think this will assist those working on the project to _know_ that their
> > work will be accepted if submitted.
> 
> 1. that is not accurate, as it won't necessarily be accepted if submitted
> ... its not like years ago when are standards were lax ... Jan is
> perfectly accurate in his assessment of which will make it in, except for
> omitting one point ... it has to meet our standards ... so, its more "the
> first to contribute *and* meet our standards" ...

Omitted point taken :-)

> > What I don't want to happen is two Win32 projects contributing duplicate
> > code at the same time.  It is a waste when they could have combined
> > their efforts.
> 
> IMHO, that is actually their problem ... without meaning to sound crass
> about it, but its not like we haven't discussed it extensively here, and
> openly ... hell, we've even tried to break down the whole project into
> smaller components to make the whole easier to merge in :)

The problem with this kind of project is that you have a big stumbling
block at the beginning, which has to be done before you can rollout and
integrate the help of developers scattered around the globe. This was
the case with the foreign key project, where the trigger queue and one
set of triggers where working, and then Stephan did all the others and I
forgot who else helped to do the utility commands and CREATE TABLE
syntax and tried to decrypt the SQL definitions? In the Windows port
case it is to get it as far that you at least can fire up a postmaster,
get past the startup process, connect to the database and do a few
queries before the thing blows up. Before this everybody has exactly the
same problem, "It doesn't startup", so the likelyhood of everyone
stomping over each others work every single night is about 99.9%!


Jan

-- 

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== JanWieck@Yahoo.com #


Re: First Win32 Contribution (Was: Re: Democracy and organisation:

From
Bruce Momjian
Date:
Jan Wieck wrote:
> > > What I don't want to happen is two Win32 projects contributing duplicate
> > > code at the same time.  It is a waste when they could have combined
> > > their efforts.
> > 
> > IMHO, that is actually their problem ... without meaning to sound crass
> > about it, but its not like we haven't discussed it extensively here, and
> > openly ... hell, we've even tried to break down the whole project into
> > smaller components to make the whole easier to merge in :)
> 
> The problem with this kind of project is that you have a big stumbling
> block at the beginning, which has to be done before you can rollout and
> integrate the help of developers scattered around the globe. This was
> the case with the foreign key project, where the trigger queue and one
> set of triggers where working, and then Stephan did all the others and I
> forgot who else helped to do the utility commands and CREATE TABLE
> syntax and tried to decrypt the SQL definitions? In the Windows port
> case it is to get it as far that you at least can fire up a postmaster,
> get past the startup process, connect to the database and do a few
> queries before the thing blows up. Before this everybody has exactly the
> same problem, "It doesn't startup", so the likelyhood of everyone
> stomping over each others work every single night is about 99.9%!

Yes, but it doesn't prevent discussion.  I think open implementation
discussion will help.  I am suggesting this to everyone, not just Jan. 
I have been in private discussion with others too.

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026
 


Re: First Win32 Contribution (Was: Re: Democracy and

From
Lamar Owen
Date:
On Thursday 20 June 2002 02:57 pm, Jan Wieck wrote:
> set of triggers where working, and then Stephan did all the others and I
> forgot who else helped to do the utility commands and CREATE TABLE
> syntax and tried to decrypt the SQL definitions?

Don Baccus?
-- 
Lamar Owen
WGCR Internet Radio
1 Peter 4:11


Re: First Win32 Contribution (Was: Re: Democracy and

From
Mike Mascari
Date:
Jan Wieck wrote:
> 
> "Marc G. Fournier" wrote:
> >

...

> > IMHO, that is actually their problem ... without meaning to sound crass
> > about it, but its not like we haven't discussed it extensively here, and
> > openly ... hell, we've even tried to break down the whole project into
> > smaller components to make the whole easier to merge in :)
> 
> The problem with this kind of project is that you have a big stumbling
> block at the beginning, which has to be done before you can rollout and
> integrate the help of developers scattered around the globe. This was
> the case with the foreign key project, where the trigger queue and one
> set of triggers where working, and then Stephan did all the others and I
> forgot who else helped to do the utility commands and CREATE TABLE
> syntax and tried to decrypt the SQL definitions? In the Windows port
> case it is to get it as far that you at least can fire up a postmaster,
> get past the startup process, connect to the database and do a few
> queries before the thing blows up. Before this everybody has exactly the
> same problem, "It doesn't startup", so the likelyhood of everyone
> stomping over each others work every single night is about 99.9%!

It would be nice to also have it "fire up" under Windows CE as well ;-)

Mike Mascari
mascarm@mascari.com


Re: First Win32 Contribution (Was: Re: Democracy and

From
Stephan Szabo
Date:
On Thu, 20 Jun 2002, Jan Wieck wrote:

> "Marc G. Fournier" wrote:
> >
> > On Thu, 20 Jun 2002, Bruce Momjian wrote:
> >
> > > This line bothers me.  With multiple people working on Win32, I would
> > > like us to decide how we would _like_ such a port to be implemented. I
> > > think this will assist those working on the project to _know_ that their
> > > work will be accepted if submitted.
> >
> > 1. that is not accurate, as it won't necessarily be accepted if submitted
> > ... its not like years ago when are standards were lax ... Jan is
> > perfectly accurate in his assessment of which will make it in, except for
> > omitting one point ... it has to meet our standards ... so, its more "the
> > first to contribute *and* meet our standards" ...
>
> Omitted point taken :-)
>
> > > What I don't want to happen is two Win32 projects contributing duplicate
> > > code at the same time.  It is a waste when they could have combined
> > > their efforts.
> >
> > IMHO, that is actually their problem ... without meaning to sound crass
> > about it, but its not like we haven't discussed it extensively here, and
> > openly ... hell, we've even tried to break down the whole project into
> > smaller components to make the whole easier to merge in :)
>
> The problem with this kind of project is that you have a big stumbling
> block at the beginning, which has to be done before you can rollout and
> integrate the help of developers scattered around the globe. This was
> the case with the foreign key project, where the trigger queue and one
> set of triggers where working, and then Stephan did all the others and I
> forgot who else helped to do the utility commands and CREATE TABLE
> syntax and tried to decrypt the SQL definitions? In the Windows port

Actually, IIRC Don did the triggers, and I did the utility commands/create
stuff, but the point is still the same.  (Made in the point of
historical accuracy since I don't want someone else's work to end up
getting attributed to me since that's unfair to them. :) )



Re: First Win32 Contribution (Was: Re: Democracy and

From
Jan Wieck
Date:
Stephan Szabo wrote:

> Actually, IIRC Don did the triggers, and I did the utility commands/create
> stuff, but the point is still the same.  (Made in the point of
> historical accuracy since I don't want someone else's work to end up
> getting attributed to me since that's unfair to them. :) )

This is why I love this PostgreSQL Project. The honesty and
humbleness everyone is practicing. Who ever did what, together we
did a good job! Which other open source database has the full set
of referential actions and deferrability?


Jan

-- 

#======================================================================#
# It's easier to get forgiveness for being wrong than for being
right. #
# Let's break this rule - forgive
me.                                  #
#==================================================
JanWieck@Yahoo.com #


Re: First Win32 Contribution (Was: Re: Democracy and organisation:

From
Jon Franz
Date:
It could be helpful to create a mailing list just for this project,
since not all members of pg-hackers will/shall participate, and we
would probably flood this list quite a bit trying to figure out what
is the best way to implement a win32 port.  Just like the
pg-replication list, this new list would be project specific.

However, as an aside, I think the 'first best fit shall be commited'
approach is a _bad_ idea.  Everyone (whos interested in the port)
agrees with the basic goals, and we will get a working system much
faster if we all work on a single solution: And not try to race each
other.  
If the main pg developers do not want to bless a specific method/project
for the port, then the people interested should hash it out, before
hundreds of man-hours are wasted developing something that ends up not
being used.  Debuging-into existence is a bad idea, as the single-night
example hints at (wether intentionaly or not) - with a proper plan we
should be able to create unit tests that can prove whether the methods
choosen are functioning well before we ever get a fully working
postmaster.

~Jon Franz

Bruce Momjian wrote:

>Jan Wieck wrote:
>
>>>>What I don't want to happen is two Win32 projects contributing duplicate
>>>>code at the same time.  It is a waste when they could have combined
>>>>their efforts.
>>>>
>>>IMHO, that is actually their problem ... without meaning to sound crass
>>>about it, but its not like we haven't discussed it extensively here, and
>>>openly ... hell, we've even tried to break down the whole project into
>>>smaller components to make the whole easier to merge in :)
>>>
>>The problem with this kind of project is that you have a big stumbling
>>block at the beginning, which has to be done before you can rollout and
>>integrate the help of developers scattered around the globe. This was
>>the case with the foreign key project, where the trigger queue and one
>>set of triggers where working, and then Stephan did all the others and I
>>forgot who else helped to do the utility commands and CREATE TABLE
>>syntax and tried to decrypt the SQL definitions? In the Windows port
>>case it is to get it as far that you at least can fire up a postmaster,
>>get past the startup process, connect to the database and do a few
>>queries before the thing blows up. Before this everybody has exactly the
>>same problem, "It doesn't startup", so the likelyhood of everyone
>>stomping over each others work every single night is about 99.9%!
>>
>
>Yes, but it doesn't prevent discussion.  I think open implementation
>discussion will help.  I am suggesting this to everyone, not just Jan. 
>I have been in private discussion with others too.
>





Re: First Win32 Contribution (Was: Re: Democracy and organisation:

From
Bruce Momjian
Date:
Jon Franz wrote:
> It could be helpful to create a mailing list just for this project,
> since not all members of pg-hackers will/shall participate, and we
> would probably flood this list quite a bit trying to figure out what
> is the best way to implement a win32 port.  Just like the
> pg-replication list, this new list would be project specific.
> 
> However, as an aside, I think the 'first best fit shall be commited'
> approach is a _bad_ idea.  Everyone (whos interested in the port)
> agrees with the basic goals, and we will get a working system much
> faster if we all work on a single solution: And not try to race each
> other.  

I think we have to be involved to prevent chaos when those patches
arrive.

> If the main pg developers do not want to bless a specific method/project
> for the port, then the people interested should hash it out, before
> hundreds of man-hours are wasted developing something that ends up not
> being used.  Debuging-into existence is a bad idea, as the single-night
> example hints at (wether intentionaly or not) - with a proper plan we
> should be able to create unit tests that can prove whether the methods
> choosen are functioning well before we ever get a fully working
> postmaster.

Actually, don't we have a cygwin mailing list?  Seems that would be a
great location, except for the name.  Maybe Marc can close the list and
migrate them all to a new 'win32' list.

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026
 


Re: First Win32 Contribution (Was: Re: Democracy and

From
"Marc G. Fournier"
Date:
On Thu, 20 Jun 2002, Bruce Momjian wrote:

> Jon Franz wrote:
> > It could be helpful to create a mailing list just for this project,
> > since not all members of pg-hackers will/shall participate, and we
> > would probably flood this list quite a bit trying to figure out what
> > is the best way to implement a win32 port.  Just like the
> > pg-replication list, this new list would be project specific.
> >
> > However, as an aside, I think the 'first best fit shall be commited'
> > approach is a _bad_ idea.  Everyone (whos interested in the port)
> > agrees with the basic goals, and we will get a working system much
> > faster if we all work on a single solution: And not try to race each
> > other.
>
> I think we have to be involved to prevent chaos when those patches
> arrive.
>
> > If the main pg developers do not want to bless a specific method/project
> > for the port, then the people interested should hash it out, before
> > hundreds of man-hours are wasted developing something that ends up not
> > being used.  Debuging-into existence is a bad idea, as the single-night
> > example hints at (wether intentionaly or not) - with a proper plan we
> > should be able to create unit tests that can prove whether the methods
> > choosen are functioning well before we ever get a fully working
> > postmaster.
>
> Actually, don't we have a cygwin mailing list?  Seems that would be a
> great location, except for the name.  Maybe Marc can close the list and
> migrate them all to a new 'win32' list.

Two different issues here ... a win32 port is different then the cygwin
issues ... also, I had suggested ages back creatin ga seperate list, but
was told that it would frustrate the effort ... so unless those that
disagreed with it in the first place have changed their mind, the
discussion of any porting effort to win32 should remain here ...