Обсуждение: Some advanced database features, are they present in PostgreSQL
Hi,
I have been using PostgreSQL a bit and I have been surprised by the good
quality, the features, and now the Addison-Wesley book which is excellent.
However, I have some questions about the implementation of a few
additional features.
I suppose that PostgreSQL hasn't any ability to do the following yet:
- log all transactions to a special log file, that can be used for
backup purposes: ie you dump the database every day, but you keep
the transaction log on a separate disk. Should the database disk
crash, you won't have any data loss if you restore the backup and
replay the transaction log.
- hard transactions: cutting the power to a PostgreSQL server
may cause data loss and/or data corruption. Some databases use
sophisticated techniques to ensure serialization of operation
through journaling, redoing some of the transactions at
bootup time if required.
- the ability to synchronize two database servers, with only the
changes being exchanged, live. Or the ability to have many
servers in a load-balancing or data scattering pool.
- ability to have databases bigger than the host's maximum file size
if this is true, can someone tell me why it hasn't been implemented yet
(there might be very good reasons), if it will be, and if the task seems
complicated.
thank you for your time.
On Tue, 10 Oct 2000, Marc SCHAEFER wrote: > - ability to have databases bigger than the host's maximum file size This has been in there since the old postgres days (although we did find it have a problem with Linux and files exactly 2Gig). PostgreSQL now splits tables at the 1Gb level, so tables are only really limited to the disk size, not the file size (normally 2^32 bytes = 2Gig) Peter -- Peter T Mount peter@retep.org.uk http://www.retep.org.uk PostgreSQL JDBC Driver http://www.retep.org.uk/postgres/ Java PDF Generator http://www.retep.org.uk/pdf/
Marc SCHAEFER writes: > - log all transactions to a special log file, that can be used for > backup purposes: Will be in 7.1. > - hard transactions: cutting the power to a PostgreSQL server > may cause data loss and/or data corruption. Some databases use > sophisticated techniques to ensure serialization of operation > through journaling, redoing some of the transactions at > bootup time if required. This is really the same as above in implementation. So same answer. > - the ability to synchronize two database servers, with only the > changes being exchanged, live. Or the ability to have many > servers in a load-balancing or data scattering pool. Something like this has recently been announced as add-on from PostgreSQL, Inc. (www.pgsql.com) Haven't seen it used, though. > - ability to have databases bigger than the host's maximum file size That has been available for quite a while. -- Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/
>> - hard transactions: cutting the power to a PostgreSQL server
>> may cause data loss and/or data corruption.
That is false; Postgres is secure now against power failures,
at least if you run in the default mode with lots of fsync()s.
The WAL feature planned for 7.1 should make performance better,
but it won't make any fundamental change in reliability for power
failures.
The existing server does not offer any protection against disk hardware
failure, however. RAID disks might be an adequate answer to that.
regards, tom lane
On Tue, 10 Oct 2000, Peter Eisentraut wrote: > Will be in 7.1. [ ... ] > Something like this has recently been announced as add-on from PostgreSQL, [ ... ] > That has been available for quite a while. [ ... ] So, those are very good news. Thanks, and keep the good work.
hello. i am faced with a situation where i must store a potentially large ascii string (several thousand characters?). i am looking for some insight beyond what the documentation offers... is there a limit on the upper limit of a VARCHAR? i cannot find one in the documentation. is it true that a TEXT field can be any size? what is the best way to manage memory? for example, if i declare it as VARCHAR(10000), does that mean that memory for 10,000 characters will be allocated whether i use it or not, or is it dynamic? how about the TEXT type. thanks chris
I'm looking for info about the synching and I don't see any. Is there a more specific URL and is there a time frame for this. Also, has segmentation been discussed? -----Original Message----- From: pgsql-general-owner@hub.org [mailto:pgsql-general-owner@hub.org]On Behalf Of Peter Eisentraut Sent: Tuesday, October 10, 2000 1:08 PM To: Marc SCHAEFER Cc: pgsql-general@postgresql.org Subject: Re: [GENERAL] Some advanced database features, are they present in PostgreSQL Marc SCHAEFER writes: > - log all transactions to a special log file, that can be used for > backup purposes: Will be in 7.1. > - hard transactions: cutting the power to a PostgreSQL server > may cause data loss and/or data corruption. Some databases use > sophisticated techniques to ensure serialization of operation > through journaling, redoing some of the transactions at > bootup time if required. This is really the same as above in implementation. So same answer. > - the ability to synchronize two database servers, with only the > changes being exchanged, live. Or the ability to have many > servers in a load-balancing or data scattering pool. Something like this has recently been announced as add-on from PostgreSQL, Inc. (www.pgsql.com) Haven't seen it used, though. > - ability to have databases bigger than the host's maximum file size That has been available for quite a while. -- Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/
> - hard transactions: cutting the power to a PostgreSQL server > may cause data loss and/or data corruption. Some databases use > sophisticated techniques to ensure serialization of operation > through journaling, redoing some of the transactions at > bootup time if required. > > - ability to have databases bigger than the host's maximum file size Neither of these are problems in PostgreSQL. Tom Lane already answered the transaction one, but I'll answer the size one. PostgreSQL stores each table in a separate file, and will store a table in multiple files if it becomes larger than about 1 gig. I've had (for testing, not production) databases with 30 GB of data on Linux where the file limit was 2 GB. As for your other two concerns, I'd like to see them fixed as well. I handle those issues currently at the application level, but I'm considering writing a small change to the core to provide that functionality (as soon as I finish my other add on projects). -- Adam Ruth InterCation, Inc. www.intercation.com "Marc SCHAEFER" <schaefer@alphanet.ch> wrote in message news:Pine.LNX.3.96.1001010155021.1563A-100000@defian.alphanet.ch... > Hi, > > I have been using PostgreSQL a bit and I have been surprised by the good > quality, the features, and now the Addison-Wesley book which is excellent. > However, I have some questions about the implementation of a few > additional features. > > I suppose that PostgreSQL hasn't any ability to do the following yet: > > - log all transactions to a special log file, that can be used for > backup purposes: ie you dump the database every day, but you keep > the transaction log on a separate disk. Should the database disk > crash, you won't have any data loss if you restore the backup and > replay the transaction log. > > - hard transactions: cutting the power to a PostgreSQL server > may cause data loss and/or data corruption. Some databases use > sophisticated techniques to ensure serialization of operation > through journaling, redoing some of the transactions at > bootup time if required. > > - the ability to synchronize two database servers, with only the > changes being exchanged, live. Or the ability to have many > servers in a load-balancing or data scattering pool. > > - ability to have databases bigger than the host's maximum file size > > if this is true, can someone tell me why it hasn't been implemented yet > (there might be very good reasons), if it will be, and if the task seems > complicated. > > thank you for your time. > > >
"chris markiewicz" <cmarkiew@commnav.com> writes:
> is there a limit on the upper limit of a VARCHAR? i cannot find one in the
> documentation.
The physical limit is circa 1Gb under TOAST. There's a purely arbitrary
limit at 10Mb, which I put in on the theory that "varchar(100000000)"
is probably a typo and certainly pretty silly. (If anyone wants to
argue that decision, feel free --- I just did it on the spur of the
moment while changing the old code that checked for declared size <
BLCKSZ.)
> is it true that a TEXT field can be any size?
TEXT also has a limit at 1Gb. There's really no difference between TEXT
and VARCHAR as far as storage goes. My advice is use VARCHAR(n) if
there is some reason *in the semantics of your application* why the
field should never exceed n characters. If there's not an application-
derived reason for a specific upper limit, declare your field as TEXT
to document that there's no particular limit on it.
> what is the best way to manage memory? for example, if i declare it as
> VARCHAR(10000), does that mean that memory for 10,000 characters will be
> allocated whether i use it or not, or is it dynamic? how about the TEXT
> type.
Either one stores however many characters there are, and no more. Think
of the VARCHAR limit as a constraint check ("length(field) <= n"),
not a storage property.
This is quite unlike CHAR(n), where you get truncation or blank padding
to exactly n characters, so the limit is a storage property as well as
a constraint.
regards, tom lane
Hello Tom, On Tuesday, October 10, 2000 à 11:34:49 PM, you said : TL> "chris markiewicz" <cmarkiew@commnav.com> writes: >> is there a limit on the upper limit of a VARCHAR? i cannot find one in the >> documentation. TL> The physical limit is circa 1Gb under TOAST. There's a purely arbitrary TL> limit at 10Mb, which I put in on the theory that "varchar(100000000)" TL> is probably a typo and certainly pretty silly. (If anyone wants to TL> argue that decision, feel free --- I just did it on the spur of the TL> moment while changing the old code that checked for declared size < TL> BLCKSZ.) Excuse me, what is the 8kb-per-record size limit if we can have so big fields ? -- Jean-Christophe Boggio cat@thefreecat.org Independant Consultant and Developer Delphi, Linux, Oracle, Perl
Jean-Christophe Boggio <cat@thefreecat.org> writes:
>>> is there a limit on the upper limit of a VARCHAR? i cannot find one in the
>>> documentation.
TL> The physical limit is circa 1Gb under TOAST.
> Excuse me, what is the 8kb-per-record size limit if we can have so
> big fields ?
Sorry --- TOAST is 7.1. In existing releases, TEXT, VARCHAR, and CHAR
are all constrained by the BLCKSZ limit on total row size. But still,
that offers no reason for choosing TEXT over VARCHAR or vice versa.
regards, tom lane
There is another issue with TEXT vs VARCHAR. A TEXT field is not handled well
by ODBC and MS Access. If there is an index on the TEXT field, the ODBC link
will fail, saying something like "Can Not Index a OLE field." OLE fields are Access's
attempt at a BLOB field, and they are not indexable.
If you are using ODBC, I would not use a TEXT field until you test it in your enviroment.
Have Fun,
Dave Huttleston Jr
On Tue, 10 Oct 2000 17:50:25 -0400, you wrote:
> Jean-Christophe Boggio <cat@thefreecat.org> writes:
> >>> is there a limit on the upper limit of a VARCHAR? i cannot find one in the
> >>> documentation.
>
> TL> The physical limit is circa 1Gb under TOAST.
>
> > Excuse me, what is the 8kb-per-record size limit if we can have so
> > big fields ?
>
> Sorry --- TOAST is 7.1. In existing releases, TEXT, VARCHAR, and CHAR
> are all constrained by the BLCKSZ limit on total row size. But still,
> that offers no reason for choosing TEXT over VARCHAR or vice versa.
>
> regards, tom lane
>
>
right now, we are working with our partners internally on this, before we
release it publicly, but more information can be found at:
http://www.erserver.com/
On Tue, 10 Oct 2000, Rob Hutton wrote:
> I'm looking for info about the synching and I don't see any. Is there a
> more specific URL and is there a time frame for this. Also, has
> segmentation been discussed?
>
> -----Original Message-----
> From: pgsql-general-owner@hub.org [mailto:pgsql-general-owner@hub.org]On
> Behalf Of Peter Eisentraut
> Sent: Tuesday, October 10, 2000 1:08 PM
> To: Marc SCHAEFER
> Cc: pgsql-general@postgresql.org
> Subject: Re: [GENERAL] Some advanced database features, are they present
> in PostgreSQL
>
>
> Marc SCHAEFER writes:
>
> > - log all transactions to a special log file, that can be used for
> > backup purposes:
>
> Will be in 7.1.
>
> > - hard transactions: cutting the power to a PostgreSQL server
> > may cause data loss and/or data corruption. Some databases use
> > sophisticated techniques to ensure serialization of operation
> > through journaling, redoing some of the transactions at
> > bootup time if required.
>
> This is really the same as above in implementation. So same answer.
>
> > - the ability to synchronize two database servers, with only the
> > changes being exchanged, live. Or the ability to have many
> > servers in a load-balancing or data scattering pool.
>
> Something like this has recently been announced as add-on from PostgreSQL,
> Inc. (www.pgsql.com) Haven't seen it used, though.
>
> > - ability to have databases bigger than the host's maximum file size
>
> That has been available for quite a while.
>
> --
> Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/
>
>
>
Marc G. Fournier ICQ#7615664 IRC Nick: Scrappy
Systems Administrator @ hub.org
primary: scrappy@hub.org secondary: scrappy@{freebsd|postgresql}.org
David Huttleston Jr <dhjr@hddesign.com> writes:
> There is another issue with TEXT vs VARCHAR. A TEXT field is not
> handled well by ODBC and MS Access. If there is an index on the TEXT
> field, the ODBC link will fail, saying something like "Can Not Index a
> OLE field." OLE fields are Access's attempt at a BLOB field, and they
> are not indexable.
Hmm ... sounds like our ODBC driver is falling down on the job when it
comes to representing TEXT columns in ODBC-speak. There's surely no
reason for a TEXT column to behave worse than VARCHAR(n).
I think this points up the comment I made earlier today on
pgsql-interfaces, that our ODBC driver is badly in need of attention
from a committed maintainer. There's a lot of minor stuff that needs
done, and no one seems to want to do it. There's gotta be someone
out there to pick up this ball and run with it...
regards, tom lane
I have to tell you guys that his is the major limiting factor that has
kept us away from PGSQL for major projects. This looks great. Now, two
questions.
How much of what is on the page is what it will eventually do and how much
will there actually be in the beta.
Also, the site talks about data hierarchy replication. Is this similar to
segmentation where each site sees the information that is of interest to
them but not the info from all other sites? We have kind of the hub and
spoke situation where the corporate office gets everything from all the
sites, but the sites only get info from the home office that is of interest
to them. We were going to do this by segmenting the database into site
specific segments and only replicating that segment to the appropriate
site...
Thanks,
Rob
-----Original Message-----
From: pgsql-general-owner@hub.org [mailto:pgsql-general-owner@hub.org]On
Behalf Of The Hermit Hacker
Sent: Tuesday, October 10, 2000 8:34 PM
To: Rob Hutton
Cc: 'Peter Eisentraut'; 'Marc SCHAEFER'; pgsql-general@postgresql.org
Subject: RE: [GENERAL] Some advanced database features, are they present
in PostgreSQL
right now, we are working with our partners internally on this, before we
release it publicly, but more information can be found at:
http://www.erserver.com/
On Tue, 10 Oct 2000, Rob Hutton wrote:
> I'm looking for info about the synching and I don't see any. Is there a
> more specific URL and is there a time frame for this. Also, has
> segmentation been discussed?
>
> -----Original Message-----
> From: pgsql-general-owner@hub.org [mailto:pgsql-general-owner@hub.org]On
> Behalf Of Peter Eisentraut
> Sent: Tuesday, October 10, 2000 1:08 PM
> To: Marc SCHAEFER
> Cc: pgsql-general@postgresql.org
> Subject: Re: [GENERAL] Some advanced database features, are they present
> in PostgreSQL
>
>
> Marc SCHAEFER writes:
>
> > - log all transactions to a special log file, that can be used for
> > backup purposes:
>
> Will be in 7.1.
>
> > - hard transactions: cutting the power to a PostgreSQL server
> > may cause data loss and/or data corruption. Some databases use
> > sophisticated techniques to ensure serialization of operation
> > through journaling, redoing some of the transactions at
> > bootup time if required.
>
> This is really the same as above in implementation. So same answer.
>
> > - the ability to synchronize two database servers, with only the
> > changes being exchanged, live. Or the ability to have many
> > servers in a load-balancing or data scattering pool.
>
> Something like this has recently been announced as add-on from PostgreSQL,
> Inc. (www.pgsql.com) Haven't seen it used, though.
>
> > - ability to have databases bigger than the host's maximum file size
>
> That has been available for quite a while.
>
> --
> Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/
>
>
>
Marc G. Fournier ICQ#7615664 IRC Nick:
Scrappy
Systems Administrator @ hub.org
primary: scrappy@hub.org secondary:
scrappy@{freebsd|postgresql}.org
Marc SCHAEFER wrote that the Addison-Wesley wrote a book on PostgreSQL. Anyone can give me the title and the author or the way to find it? Here in italy i can't find nothing !! Thanks -----Messaggio Originale----- Da: "Marc SCHAEFER" <schaefer@alphanet.ch> A: <pgsql-general@postgresql.org> Data invio: Tuesday, October 10, 2000 03:51 PM Oggetto: [GENERAL] Some advanced database features, are they present in PostgreSQL > Hi, > > I have been using PostgreSQL a bit and I have been surprised by the good > quality, the features, and now the Addison-Wesley book which is excellent. > However, I have some questions about the implementation of a few > additional features. > > I suppose that PostgreSQL hasn't any ability to do the following yet: > > - log all transactions to a special log file, that can be used for > backup purposes: ie you dump the database every day, but you keep > the transaction log on a separate disk. Should the database disk > crash, you won't have any data loss if you restore the backup and > replay the transaction log. > > - hard transactions: cutting the power to a PostgreSQL server > may cause data loss and/or data corruption. Some databases use > sophisticated techniques to ensure serialization of operation > through journaling, redoing some of the transactions at > bootup time if required. > > - the ability to synchronize two database servers, with only the > changes being exchanged, live. Or the ability to have many > servers in a load-balancing or data scattering pool. > > - ability to have databases bigger than the host's maximum file size > > if this is true, can someone tell me why it hasn't been implemented yet > (there might be very good reasons), if it will be, and if the task seems > complicated. > > thank you for your time. > > > >
Hasn't been released for print yet... you can download a PDF version of it at www.postgresql.org Adam Lang Systems Engineer Rutgers Casualty Insurance Company ----- Original Message ----- From: "Giorgio Ponza" <giorgio@opla.it> To: "Marc SCHAEFER" <schaefer@alphanet.ch>; <pgsql-general@postgresql.org> Sent: Wednesday, October 11, 2000 11:37 AM Subject: R: [GENERAL] PostgreSQL book > Marc SCHAEFER wrote that the Addison-Wesley wrote a book on PostgreSQL. > Anyone can give me the title and the author or the way to find it? Here in > italy i can't find nothing !! > Thanks > > -----Messaggio Originale----- > Da: "Marc SCHAEFER" <schaefer@alphanet.ch> > A: <pgsql-general@postgresql.org> > Data invio: Tuesday, October 10, 2000 03:51 PM > Oggetto: [GENERAL] Some advanced database features, are they present in > PostgreSQL > > > > Hi, > > > > I have been using PostgreSQL a bit and I have been surprised by the good > > quality, the features, and now the Addison-Wesley book which is excellent. > > However, I have some questions about the implementation of a few > > additional features. > > > > I suppose that PostgreSQL hasn't any ability to do the following yet: > > > > - log all transactions to a special log file, that can be used for > > backup purposes: ie you dump the database every day, but you keep > > the transaction log on a separate disk. Should the database disk > > crash, you won't have any data loss if you restore the backup and > > replay the transaction log. > > > > - hard transactions: cutting the power to a PostgreSQL server > > may cause data loss and/or data corruption. Some databases use > > sophisticated techniques to ensure serialization of operation > > through journaling, redoing some of the transactions at > > bootup time if required. > > > > - the ability to synchronize two database servers, with only the > > changes being exchanged, live. Or the ability to have many > > servers in a load-balancing or data scattering pool. > > > > - ability to have databases bigger than the host's maximum file size > > > > if this is true, can someone tell me why it hasn't been implemented yet > > (there might be very good reasons), if it will be, and if the task seems > > complicated. > > > > thank you for your time. > > > > > > > >
Download it from http://www.postgresql.org/docs/aw_pgsql_book/aw_pgsql_book.pdf ----- Original Message ----- From: "Giorgio Ponza" <giorgio@opla.it> To: "Marc SCHAEFER" <schaefer@alphanet.ch>; <pgsql-general@postgresql.org> Sent: Wednesday, October 11, 2000 11:37 AM Subject: R: [GENERAL] PostgreSQL book > Marc SCHAEFER wrote that the Addison-Wesley wrote a book on PostgreSQL. > Anyone can give me the title and the author or the way to find it? Here in > italy i can't find nothing !! > Thanks > > -----Messaggio Originale----- > Da: "Marc SCHAEFER" <schaefer@alphanet.ch> > A: <pgsql-general@postgresql.org> > Data invio: Tuesday, October 10, 2000 03:51 PM > Oggetto: [GENERAL] Some advanced database features, are they present in > PostgreSQL > > > > Hi, > > > > I have been using PostgreSQL a bit and I have been surprised by the good > > quality, the features, and now the Addison-Wesley book which is excellent. > > However, I have some questions about the implementation of a few > > additional features. > > > > I suppose that PostgreSQL hasn't any ability to do the following yet: > > > > - log all transactions to a special log file, that can be used for > > backup purposes: ie you dump the database every day, but you keep > > the transaction log on a separate disk. Should the database disk > > crash, you won't have any data loss if you restore the backup and > > replay the transaction log. > > > > - hard transactions: cutting the power to a PostgreSQL server > > may cause data loss and/or data corruption. Some databases use > > sophisticated techniques to ensure serialization of operation > > through journaling, redoing some of the transactions at > > bootup time if required. > > > > - the ability to synchronize two database servers, with only the > > changes being exchanged, live. Or the ability to have many > > servers in a load-balancing or data scattering pool. > > > > - ability to have databases bigger than the host's maximum file size > > > > if this is true, can someone tell me why it hasn't been implemented yet > > (there might be very good reasons), if it will be, and if the task seems > > complicated. > > > > thank you for your time. > > > > > > > > > >