Dear Sirs,

I would like to know if there are any discussions about
creating an embedded version on postgresql. My thoughts
go towards building/porting a sqlite equivalent of pg.

Regards,
GB.


Thu, 14 Oct 2004 09:49:47 +0200 (CEST)
gevik@xs4all.nl
embedded postgresql
Clinging to sanity, gevik@xs4all.nl mumbled into her beard:
> I would like to know if there are any discussions about
> creating an embedded version on postgresql. My thoughts
> go towards building/porting a sqlite equivalent of pg.

People periodically "drive by" and suggest that PostgreSQL would
become fabulously better (or fabulously more popular) if it were
rewritten to do an in-process embedding of it.

There is little enthusiasm for the idea, as it would substantially
reduce the robustness of the system.

It also seems quite curious why in-process embedding should be so
attractive; it _looks_ as though most of the people that are so
excited about this idea have a pretty defective understanding of Unix,
and have missed the point that spawning extra processes to do
different kinds of work is a FEATURE.

The people with that defective understanding generally go away
unsatisfied.

If you really and truly want an "embedded" database, then you really
should look at Berkeley DB and SQLite.  They may save you a bit of
memory if you only have one application that can make use of a
database.  If you have a second application, or perhaps more than two,
it's pretty likely that linking to libpq and talking to a full-fledged
server will be a win.
-- 
(format nil "~S@~S" "cbbrowne" "ntlug.org")
http://www.ntlug.org/~cbbrowne/spreadsheets.html
... it's just that in C++ and the like, you don't trust _anybody_, and
in CLOS you  basically trust everybody.  the practical  result is that
thieves and bums use C++ and nice people use CLOS.  -- Erik Naggum

Tue, 19 Oct 2004 01:15:30 -0400
Christopher Browne <cbbrowne@acm.org>
Re: embedded postgresql
Christopher Browne <cbbrowne@acm.org> wrote in message news:<m3fz4bcmq5.fsf@knuth.knuth.cbbrowne.com>...
> 
> It also seems quite curious why in-process embedding should be so
> attractive; 
> 

People seem not to care whether or not the RDBMS runs in-process or
in a separately forked process.  The attribute that concerns them
is that the RDBMS is requires zero configuration. There is no separate
server process to install, configure, initialize, and administer. An
application using a zero-configuration database engine just works. 
No need to run a setup wizard to get it going.  No need to pester
your system administrator to create a new user on the database server.
Just copy over the executable, run it, and it works.

Another way to think about it is that an embedded RDBMS is not necessarily
a replacement for a traditional client/server database, but rather a
replacement for fopen() and friends accessing an ad hoc text file. Using
an embedded database is better than fopen() in that it provides a
schema layer and ACID transactions.

There are many applications for which the traditional client/server
database architecture with the server running in a separate process
is definately the best approach.  But there are just as many other
uses for which an embedded database engine works best.  For example,
an embedded database engine which stores the database in a single
orginary disk file can be used as an application file format.
The File/Open menu option creates a connection to the database file.
File/Save commits the changes.  The application reads and writes
using ordinary SQL.  Afterwards, the user can email the resulting
database to a friend.  Client/server database engines will not 
easily do this kind of stuff.

Client/server database engines clearly have their place.  But they
are not always the best solution to every data storage problem. 
Expand your horizons.

19 Oct 2004 05:29:55 -0700
drh@hwaci.com (D. Richard Hipp)
Re: embedded postgresql
On Thu, Oct 14, 2004 at 09:49:47AM +0200, gevik@xs4all.nl wrote:
> Dear Sirs,
> 
> I would like to know if there are any discussions about
> creating an embedded version on postgresql. My thoughts
> go towards building/porting a sqlite equivalent of pg.

The discussion comes up occasionally. After some well-reasoned
analysis the conclusion is generally that an embedded postgresql would
keep either none of the advantages of postgresql or would lose most of
the (single-user specific) advantages of an embedded database. Or
both.

In other words, postgresql is a really bad place to start if you want
to make an embedded database. If you search the list archives you
should find the last time this was discussed.

Cheers,
  Steve

Tue, 19 Oct 2004 09:24:42 -0700
Steve Atkins <steve@blighty.com>
Re: embedded postgresql


D. Richard Hipp wrote:

>Client/server database engines clearly have their place.  But they
>are not always the best solution to every data storage problem. 
>  
>

Nobody has suggested otherwise AFAICS. What we have suggested is that a 
client/server system is a bad place to start when looking for an 
embedded storage system.

Personally, I tend to use Postgres for client/server and BDB for 
embedded data management.

cheers

andrew

Wed, 20 Oct 2004 11:37:03 -0400
Andrew Dunstan <andrew@dunslane.net>
Re: embedded postgresql