Re: [HACKERS] Proposal for Implenting read-only queries during wal replay (SoC 2007)

2007-02-28 Thread plabrh1
Thanks Josh,

I'll look for the earlier one and try to add it there...

-Paul



-Original Message-
From: Joshua D. Drake [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, February 28, 2007 12:09 AM
To: Paul Silveira
Cc: pgsql-hackers@postgresql.org
Subject: Re: [HACKERS] Proposal for Implenting read-only queries during wal
replay (SoC 2007)

Paul Silveira wrote:
 Hello,
 
 I just wanted to voice my opinion for this feature...  I've implemented a
 few Production applicaitons with PostgreSQL now and would die for that
 feature.  Right now, I am constantly trying to find way's to make my data
 more available. 

Paul unfortunately you have responded to a hijacked thread. Jonah was
speaking about a project that he wishes would have been accepted which
was called Full Disjunctions.

I have not read the read-only queries during wal replay thread but I can
assure you that Jonah's response had nothing to do with it.

Joshua D. Drake



 I've even resulted to using pg_dump to create read only
 copies of the database and placed them behind load balancers to make the
 data more available.  Something like this would allow me to quickly
leverage
 a read only node to scale out the applicaiton...  If it can at all be
built,
 it would get my first, second and third vote. :)
 
 Regards,
 
 Paul Silveira
 
 
 
 
 Jonah H. Harris-2 wrote:
 On 2/26/07, Bruce Momjian [EMAIL PROTECTED] wrote:
 Jonah, I have no idea what fault you are trying to blame on the
 community in the above statement.  The author didn't discuss the idea
 with the community before spending months on it so we have no obligation
 to accept it in the core.
 You're missing the point entirely.  The majority of the (vocal)
 community didn't even want the feature and as such, failed to provide
 viable suggestions for him to move forward.  As the majority of the
 community didn't want the feature, it wouldn't have made a difference
 when he proposed it; which would have remained negative nonetheless.

 -- 
 Jonah H. Harris, Software Architect | phone: 732.331.1324
 EnterpriseDB Corporation| fax: 732.331.1301
 33 Wood Ave S, 3rd Floor| [EMAIL PROTECTED]
 Iselin, New Jersey 08830| http://www.enterprisedb.com/

 ---(end of broadcast)---
 TIP 7: You can help support the PostgreSQL project by donating at

 http://www.postgresql.org/about/donate


 


-- 

  === The PostgreSQL Company: Command Prompt, Inc. ===
Sales/Support: +1.503.667.4564 || 24x7/Emergency: +1.800.492.2240
Providing the most comprehensive  PostgreSQL solutions since 1997
 http://www.commandprompt.com/

Donate to the PostgreSQL Project: http://www.postgresql.org/about/donate
PostgreSQL Replication: http://www.commandprompt.com/products/


---(end of broadcast)---
TIP 4: Have you searched our list archives?

   http://archives.postgresql.org


Re: [HACKERS] Proposal for Implenting read-only queries during wal replay (SoC 2007)

2007-02-27 Thread Florian G. Pflug

Merlin Moncure wrote:

getting back on topic (ahem), florian: are you comfortable going ahead
with this?  is there anything you need help with?


I'm currently updating my proposal, trying to incorporate the points
people brought up in this thread.

I realized that trying to use the same kind of read only mode for
both a standalone postgres (with the datadir on read-only storage),
and a PITR-slave was missguided - 
http://archives.postgresql.org/pgsql-hackers/2005-11/msg01043.php

was really enlightning ;-)

Tom's objects regarding performance are the hardest one to deal with -
I'm currently thinking about ways that the locking requirements could
be relaxed - though I still plan to do a basic implementation first, and 
then try to improve it.


I'll post an updated proposal during the next few days.

greetings, Florian Pflug

---(end of broadcast)---
TIP 9: In versions below 8.0, the planner will ignore your desire to
  choose an index scan if your joining column's datatypes do not
  match


Re: [HACKERS] Proposal for Implenting read-only queries during wal replay (SoC 2007)

2007-02-27 Thread Paul Silveira

Hello,

I just wanted to voice my opinion for this feature...  I've implemented a
few Production applicaitons with PostgreSQL now and would die for that
feature.  Right now, I am constantly trying to find way's to make my data
more available.  I've even resulted to using pg_dump to create read only
copies of the database and placed them behind load balancers to make the
data more available.  Something like this would allow me to quickly leverage
a read only node to scale out the applicaiton...  If it can at all be built,
it would get my first, second and third vote. :)

Regards,

Paul Silveira




Jonah H. Harris-2 wrote:
 
 On 2/26/07, Bruce Momjian [EMAIL PROTECTED] wrote:
 Jonah, I have no idea what fault you are trying to blame on the
 community in the above statement.  The author didn't discuss the idea
 with the community before spending months on it so we have no obligation
 to accept it in the core.
 
 You're missing the point entirely.  The majority of the (vocal)
 community didn't even want the feature and as such, failed to provide
 viable suggestions for him to move forward.  As the majority of the
 community didn't want the feature, it wouldn't have made a difference
 when he proposed it; which would have remained negative nonetheless.
 
 -- 
 Jonah H. Harris, Software Architect | phone: 732.331.1324
 EnterpriseDB Corporation| fax: 732.331.1301
 33 Wood Ave S, 3rd Floor| [EMAIL PROTECTED]
 Iselin, New Jersey 08830| http://www.enterprisedb.com/
 
 ---(end of broadcast)---
 TIP 7: You can help support the PostgreSQL project by donating at
 
 http://www.postgresql.org/about/donate
 
 

-- 
View this message in context: 
http://www.nabble.com/Proposal-for-Implenting-read-only-queries-during-wal-replay-%28SoC-2007%29-tf3279821.html#a9197770
Sent from the PostgreSQL - hackers mailing list archive at Nabble.com.


---(end of broadcast)---
TIP 5: don't forget to increase your free space map settings


Re: [HACKERS] Proposal for Implenting read-only queries during wal replay (SoC 2007)

2007-02-27 Thread Joshua D. Drake
Paul Silveira wrote:
 Hello,
 
 I just wanted to voice my opinion for this feature...  I've implemented a
 few Production applicaitons with PostgreSQL now and would die for that
 feature.  Right now, I am constantly trying to find way's to make my data
 more available. 

Paul unfortunately you have responded to a hijacked thread. Jonah was
speaking about a project that he wishes would have been accepted which
was called Full Disjunctions.

I have not read the read-only queries during wal replay thread but I can
assure you that Jonah's response had nothing to do with it.

Joshua D. Drake



 I've even resulted to using pg_dump to create read only
 copies of the database and placed them behind load balancers to make the
 data more available.  Something like this would allow me to quickly leverage
 a read only node to scale out the applicaiton...  If it can at all be built,
 it would get my first, second and third vote. :)
 
 Regards,
 
 Paul Silveira
 
 
 
 
 Jonah H. Harris-2 wrote:
 On 2/26/07, Bruce Momjian [EMAIL PROTECTED] wrote:
 Jonah, I have no idea what fault you are trying to blame on the
 community in the above statement.  The author didn't discuss the idea
 with the community before spending months on it so we have no obligation
 to accept it in the core.
 You're missing the point entirely.  The majority of the (vocal)
 community didn't even want the feature and as such, failed to provide
 viable suggestions for him to move forward.  As the majority of the
 community didn't want the feature, it wouldn't have made a difference
 when he proposed it; which would have remained negative nonetheless.

 -- 
 Jonah H. Harris, Software Architect | phone: 732.331.1324
 EnterpriseDB Corporation| fax: 732.331.1301
 33 Wood Ave S, 3rd Floor| [EMAIL PROTECTED]
 Iselin, New Jersey 08830| http://www.enterprisedb.com/

 ---(end of broadcast)---
 TIP 7: You can help support the PostgreSQL project by donating at

 http://www.postgresql.org/about/donate


 


-- 

  === The PostgreSQL Company: Command Prompt, Inc. ===
Sales/Support: +1.503.667.4564 || 24x7/Emergency: +1.800.492.2240
Providing the most comprehensive  PostgreSQL solutions since 1997
 http://www.commandprompt.com/

Donate to the PostgreSQL Project: http://www.postgresql.org/about/donate
PostgreSQL Replication: http://www.commandprompt.com/products/


---(end of broadcast)---
TIP 2: Don't 'kill -9' the postmaster


Re: [HACKERS] Proposal for Implenting read-only queries during wal replay (SoC 2007)

2007-02-26 Thread Bruce Momjian
Jonah H. Harris wrote:
 On 2/23/07, Joshua D. Drake [EMAIL PROTECTED] wrote:
  A good example of the wrong way to do it is the Full Disjunctions
  project. Great idea, Great project, not bitrot and hard space because it
  hasn't been touched or maintained sense release.
 
 Don't get me started there.  The decision was split between PostgreSQL
 core 50/50 for inclusion in contrib, yet it was not included.  As I
 said at the time, people will move on and the project would go to
 pgfoundry (which I called the graveyard) and die; which is exactly
 what happened.  And, in the Full Disjunctions project's defense, the
 community was wholly at fault.  He posted several times for
  -
 suggestions and most of the community responses were, why would we
 care about or want that.
 
 The community can't rely on contributors, especially students, to
 spend months of their time pushing ideas through a gauntlet of
 negativity.

Jonah, I have no idea what fault you are trying to blame on the
community in the above statement.  The author didn't discuss the idea
with the community before spending months on it so we have no obligation
to accept it in the core.

-- 
  Bruce Momjian  [EMAIL PROTECTED]  http://momjian.us
  EnterpriseDB   http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +

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

   http://www.postgresql.org/docs/faq


Re: [HACKERS] Proposal for Implenting read-only queries during wal replay (SoC 2007)

2007-02-26 Thread Jonah H. Harris

On 2/26/07, Bruce Momjian [EMAIL PROTECTED] wrote:

Jonah, I have no idea what fault you are trying to blame on the
community in the above statement.  The author didn't discuss the idea
with the community before spending months on it so we have no obligation
to accept it in the core.


You're missing the point entirely.  The majority of the (vocal)
community didn't even want the feature and as such, failed to provide
viable suggestions for him to move forward.  As the majority of the
community didn't want the feature, it wouldn't have made a difference
when he proposed it; which would have remained negative nonetheless.

--
Jonah H. Harris, Software Architect | phone: 732.331.1324
EnterpriseDB Corporation| fax: 732.331.1301
33 Wood Ave S, 3rd Floor| [EMAIL PROTECTED]
Iselin, New Jersey 08830| http://www.enterprisedb.com/

---(end of broadcast)---
TIP 7: You can help support the PostgreSQL project by donating at

   http://www.postgresql.org/about/donate


Re: [HACKERS] Proposal for Implenting read-only queries during wal replay (SoC 2007)

2007-02-26 Thread Joshua D. Drake
Jonah H. Harris wrote:
 On 2/26/07, Bruce Momjian [EMAIL PROTECTED] wrote:
 Jonah, I have no idea what fault you are trying to blame on the
 community in the above statement.  The author didn't discuss the idea
 with the community before spending months on it so we have no obligation
 to accept it in the core.
 
 You're missing the point entirely.  The majority of the (vocal)
 community didn't even want the feature and as such, failed to provide
 viable suggestions for him to move forward.  As the majority of the
 community didn't want the feature, it wouldn't have made a difference
 when he proposed it; which would have remained negative nonetheless.

There are so many things wrong with the above paragraph. Vocal hackers?

Bruce, wanted real world example
Dave, wanted it in contrib
Berkus, wanted it in contrib
Drake, (not really a hacker) pushed for exposure even though pushed to
pgfoundry
Tgl, wanted real world example, backed it on pgfoundry
Dunstan, liked the idea but wanted it pushed to pgfoundry

From what I can tell Jonah, you are all bark and no bite. Everything you
mention is bogus in this thread. I read the responses (just now) about
full disjunctions and they were not negative. They were more, Show me
the beef which is perfectly acceptable when reviewing the possibility
of accepting code.

From what I can tell, unless the hacker said, You joy! let's rock and
make it part of core NOW! it would have been considered negative by you.

Sincerely,

Joshua D. Drake


-- 

  === The PostgreSQL Company: Command Prompt, Inc. ===
Sales/Support: +1.503.667.4564 || 24x7/Emergency: +1.800.492.2240
Providing the most comprehensive  PostgreSQL solutions since 1997
 http://www.commandprompt.com/

Donate to the PostgreSQL Project: http://www.postgresql.org/about/donate
PostgreSQL Replication: http://www.commandprompt.com/products/


---(end of broadcast)---
TIP 9: In versions below 8.0, the planner will ignore your desire to
   choose an index scan if your joining column's datatypes do not
   match


Re: [HACKERS] Proposal for Implenting read-only queries during wal replay (SoC 2007)

2007-02-26 Thread Merlin Moncure

getting back on topic (ahem), florian: are you comfortable going ahead
with this?  is there anything you need help with?

merlin

---(end of broadcast)---
TIP 6: explain analyze is your friend


Re: [HACKERS] Proposal for Implenting read-only queries during wal replay (SoC 2007)

2007-02-24 Thread Florian G. Pflug

Tom Lane wrote:

Florian G. Pflug [EMAIL PROTECTED] writes:

My line of reasoning is that stopping wal replay at a arbitrary point,
and then starting a read-only transaction with an empty snapshot (meaning
that all exactly those transactions marked as comitted in the clog are 
assumed to be visible to the transaction) is exactly the same as sending

the backend a SIGKILL when it just wrote the wal record in question,
and then restarting postgres, and starting a transaction.


The hole in that reasoning is that no one would be satisfied with the
behavior of a Postgres database that was being forcibly restarted every
few seconds.  Yeah, we won't lose transactions that have been promised
committed, but losing a large fraction of transactions-in-progress won't
please anyone.  Nor will queries on a slave that's behaving like that
provide an accurate model of what the same queries would produce if issued
on the master.


Sorry, I don't get your point. What do you mean by loosing a large 
fraction of transactions in progress. You wouldn't loose them - the

master would be running as usual. And after the slave replayed the
wal past their commit record, they would be visible on the slave too.
The point of my argument was just to convice (myself) that wal-logging of
locking requests is not necessary, as long as you don't want to playback
archived wal _and_ run read-only queries on the slave at the same time.

I also don't understand what you mean by Nor will queries on the slave 
that's behaving like that provide an accurate model of what the same 
queries would produce if issued on the master. Sureley they won't -

after all, this is a kind of asynchronous replication. The most
you can hope fore is to eventually catch up with the master.

And I don't propose that my serialization of wal-replay and running
queries is how PITR master-slave replication should ultimatly look
like. But's it's something that can be done _now_, without changing
what kind of operations are wal-logged. And something that I believe
I can finish in the timeframe of a SoC project.

After I'm done with implementing this limited read-only mode, I'd be very 
interested in trying to extend it, by allow wal-replay and queries

to run concurrently.

greetings, Florian Pflug


---(end of broadcast)---
TIP 6: explain analyze is your friend


Re: [HACKERS] Proposal for Implenting read-only queries during wal replay (SoC 2007)

2007-02-24 Thread Jonah H. Harris

On 2/23/07, Joshua D. Drake [EMAIL PROTECTED] wrote:

A good example of the wrong way to do it is the Full Disjunctions
project. Great idea, Great project, not bitrot and hard space because it
hasn't been touched or maintained sense release.


Don't get me started there.  The decision was split between PostgreSQL
core 50/50 for inclusion in contrib, yet it was not included.  As I
said at the time, people will move on and the project would go to
pgfoundry (which I called the graveyard) and die; which is exactly
what happened.  And, in the Full Disjunctions project's defense, the
community was wholly at fault.  He posted several times for
suggestions and most of the community responses were, why would we
care about or want that.

The community can't rely on contributors, especially students, to
spend months of their time pushing ideas through a gauntlet of
negativity.

--
Jonah H. Harris, Software Architect | phone: 732.331.1324
EnterpriseDB Corporation| fax: 732.331.1301
33 Wood Ave S, 3rd Floor| [EMAIL PROTECTED]
Iselin, New Jersey 08830| http://www.enterprisedb.com/

---(end of broadcast)---
TIP 5: don't forget to increase your free space map settings


Re: [HACKERS] Proposal for Implenting read-only queries during wal replay (SoC 2007)

2007-02-24 Thread Joshua D. Drake
Jonah H. Harris wrote:
 On 2/23/07, Joshua D. Drake [EMAIL PROTECTED] wrote:
 A good example of the wrong way to do it is the Full Disjunctions
 project. Great idea, Great project, not bitrot and hard space because it
 hasn't been touched or maintained sense release.
 
 Don't get me started there.  The decision was split between PostgreSQL
 core 50/50 for inclusion in contrib, yet it was not included. 

The argument for not including it was valid, it didn't adhere on several
levels including code style and grammatical changes.

The point is, if the author would have done the project in public, the
problem wouldn't have happen.

 As I
 said at the time, people will move on and the project would go to
 pgfoundry (which I called the graveyard) and die; 

I would say that is the author's fault. There are plenty of extremely
vibrant and lively developed projects on pgfoundry.

which is exactly
 what happened.  And, in the Full Disjunctions project's defense, the
 community was wholly at fault.  He posted several times for
 suggestions and most of the community responses were, why would we
 care about or want that.

Yes *some* of the community didn't understand it but there were others
in the community who made a specific effort to explain why it was good,
including Josh Berkus.

 
 The community can't rely on contributors, especially students, to
 spend months of their time pushing ideas through a gauntlet of
 negativity.
 

Someone who wants to provide a feature to the community can't expect the
community just to open their arms without explanation and full
discussion of a feature.

You don't honestly expect a mature open source project to just accept
any code do you?

For the record, I like the idea of full disjunctions but they must past
quality muster to be included in the community.

Joshua D. Drake



-- 

  === The PostgreSQL Company: Command Prompt, Inc. ===
Sales/Support: +1.503.667.4564 || 24x7/Emergency: +1.800.492.2240
Providing the most comprehensive  PostgreSQL solutions since 1997
 http://www.commandprompt.com/

Donate to the PostgreSQL Project: http://www.postgresql.org/about/donate
PostgreSQL Replication: http://www.commandprompt.com/products/


---(end of broadcast)---
TIP 6: explain analyze is your friend


Re: [HACKERS] Proposal for Implenting read-only queries during wal replay (SoC 2007)

2007-02-24 Thread Jonah H. Harris

On 2/24/07, Joshua D. Drake [EMAIL PROTECTED] wrote:

The argument for not including it was valid, it didn't adhere on several
levels including code style and grammatical changes.


IIRC, the only exception to code style was cleaning up some mixed
code/declaration warnings.


The point is, if the author would have done the project in public, the
problem wouldn't have happen.


It was public, very few offered suggestions.


I would say that is the author's fault. There are plenty of extremely
vibrant and lively developed projects on pgfoundry.


He already did over a year and half research on the subject, wrote the
code for it, published a paper on it, and offered it to the community.
Why would he choose to spend more time getting beaten up for
something that's already behind him?


Yes *some* of the community didn't understand it but there were others
in the community who made a specific effort to explain why it was good,
including Josh Berkus.


Yes, there were a few.


Someone who wants to provide a feature to the community can't expect the
community just to open their arms without explanation and full
discussion of a feature.


Perhaps you don't recall.. but his design and research was far more
than almost all other PostgreSQL features.  The only one longer was
perhaps the HOT design.


You don't honestly expect a mature open source project to just accept
any code do you?


Obviously not.  That's just a stupid question to ask.


For the record, I like the idea of full disjunctions but they must past
quality muster to be included in the community.


Again, he offered to fix anything anyone had issues with... but people
were too busy whining about the feature itself than to provide sound
advice for moving forward.

--
Jonah H. Harris, Software Architect | phone: 732.331.1324
EnterpriseDB Corporation| fax: 732.331.1301
33 Wood Ave S, 3rd Floor| [EMAIL PROTECTED]
Iselin, New Jersey 08830| http://www.enterprisedb.com/

---(end of broadcast)---
TIP 5: don't forget to increase your free space map settings


Re: [HACKERS] Proposal for Implenting read-only queries during wal replay (SoC 2007)

2007-02-24 Thread Joshua D. Drake

 He already did over a year and half research on the subject, wrote the
 code for it, published a paper on it, and offered it to the community.
 Why would he choose to spend more time getting beaten up for
 something that's already behind him?

If he is not willing to proceed with public debate, I fail to see the
purpose in doing the work at all.


 Perhaps you don't recall.. but his design and research was far more
 than almost all other PostgreSQL features.  The only one longer was
 perhaps the HOT design.

Hmmm and look at HOT. That would be an example of how it *should* be
done. HOT has been a constant influx of WIP patches and discussion *to
the community* and thusly to rounding out nicely to be a great feature.

Full Disjunctions did not do that.


 For the record, I like the idea of full disjunctions but they must past
 quality muster to be included in the community.
 
 Again, he offered to fix anything anyone had issues with... but people

Then why didn't he fix them? There were specific problems people had.

 were too busy whining about the feature itself than to provide sound
 advice for moving forward.
 

Guess we will have to agree to disagree. That is not my recollection of
the events on any level.

Sincerely,

Joshua D. Drake



-- 

  === The PostgreSQL Company: Command Prompt, Inc. ===
Sales/Support: +1.503.667.4564 || 24x7/Emergency: +1.800.492.2240
Providing the most comprehensive  PostgreSQL solutions since 1997
 http://www.commandprompt.com/

Donate to the PostgreSQL Project: http://www.postgresql.org/about/donate
PostgreSQL Replication: http://www.commandprompt.com/products/


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

   http://www.postgresql.org/docs/faq


Re: [HACKERS] Proposal for Implenting read-only queries during wal replay (SoC 2007)

2007-02-24 Thread Jonah H. Harris

On 2/24/07, Joshua D. Drake [EMAIL PROTECTED] wrote:

Guess we will have to agree to disagree. That is not my recollection of
the events on any level.


Guess so.  This topic ended in August and I'm no longer going to argue about it.

--
Jonah H. Harris, Software Architect | phone: 732.331.1324
EnterpriseDB Corporation| fax: 732.331.1301
33 Wood Ave S, 3rd Floor| [EMAIL PROTECTED]
Iselin, New Jersey 08830| http://www.enterprisedb.com/

---(end of broadcast)---
TIP 9: In versions below 8.0, the planner will ignore your desire to
  choose an index scan if your joining column's datatypes do not
  match


Re: [HACKERS] Proposal for Implenting read-only queries during wal replay (SoC 2007)

2007-02-23 Thread Doug Knight
Hi,
Here's some feedback, this is a feature that would be very useful to a
project I am currently working on. 

Doug

On Fri, 2007-02-23 at 17:34 +0100, Florian G. Pflug wrote:
 Hi
 
 I plan to submit a proposal for implementing support for
 read-only queries during wal replay as a Google Summer of Code 2007
 project.
 
 I've been browsing the postgres source-code for the last few days,
 and came up with the following plan for a implementation.
 
 I'd be very interested in any feedback on the propsoal - especially
 of the you overlooked this an that, it can never work that way kind ;-)
 
 greetings, Florian Pflug
 
 Implementing read-only quries during wal archive replay
 ---
 
 Submitter: Florian Pflug [EMAIL PROTECTED]
 
 Abstract:
 Implementing full support for read-only queries during
 wal archive replay is splitted into multiple parts, where
 each part offeres additional functionality over what
 postgres provides now. This makes tackling this as a
 Google Summer of Code 2007 project feasable, and guarantees
 that at least some progress is made, even if solving the
 whole problem turns out to be harder then previously
 thought.
 
 Parts/Milestones of the implementation:
 A) Allow postgres to be started in read-only mode. After
 initial wal recovery, postgres doesn't perform writes
 anymore. All transactions started are implicitly in
 readonly mode. All transactions will be assigned dummy
 transaction ids, which never make it into the clog.
 B) Split StartupXLOG into two steps. The first (Recovery) will process
 only enough wal to bring the system into a consistent state,
 while the second one (Replay) replays the archive until it finds no
 more wal segments. This replay happens in chunks, such that
 after a chunk all *_safe_restartpoint functions return true.
 C) Combine A) and B), in the simplest possible way.
 Introduce a global R/W lock, which is taken by the Replay part
 of B) in write mode before replaying a chunk, then released,
 and immediatly reaquired before replaying the next chunk.
 The startup sequence is modified to do only the Recovery part
 where is is doing StartupXLOG now, and to lauch an extra process
 (similar to bgwriter) to do the second (Replay) part in the background.
 The system is then started up in read-only mode, with the addition
 that the global R/W lock is taken in read mode before starting any
 transaction. Thus, while a transaction is running, no archive replay
 happens.
 
 Benefits:
 *) Part A) alone might be of value for some people in the embedded world,
 or people who want to distribute software the use postgres. You could
 e.g. distribute a CD with a large, read-only database, and your 
 application
 would just need to start postmaster to be able to query it directly from
 the CD.
 *) Read-only hot standby is a rather simple way to do load-balancing, if
 your application doesn't depend on the data being absolutely up-to-date.
 *) Even if this isn't used for load-balancing, it gives the DBA an
 easy way to check how far a PITR slave is lagging behind, therefore
 making PITR replication more user-friendly.
 
 Open Questions/Problems
 *) How do read-only transactions obtain a snapshot? Is it sufficient
 to just create an empty snapshot for them, meaning that they'll
 always look at the clog to obtain a transaction's state?
 *) How many places to attempt to issue writes? How hard is it to
 silence them all while in read-only mode.
 *) How does the user interface look like? I'm currently leaning towards
 a postgresql.conf setting read_only=yes. This would put postgres
 into read-only mode, and if a recovery.conf is present, archive
 replay would run as a background process.
 
 Limitations:
 *) The replaying process might be starved, letting the slave fall
 further and further behind the master. Only true if the slave
 executes a lot of queries, though.
 *) Postgres would continue to run in read-only mode, even after finishing
 archive recovery. A restart would be needed to switch it into read-write
 mode again. (I probably wouldn't be too hard to do that switch without
 a restart, but it seems better to tackle this after the basic features
 are working)
 
 ---(end of broadcast)---
 TIP 5: don't forget to increase your free space map settings
 


Re: [HACKERS] Proposal for Implenting read-only queries during wal replay (SoC 2007)

2007-02-23 Thread Tom Lane
Florian G. Pflug [EMAIL PROTECTED] writes:
 I plan to submit a proposal for implementing support for
 read-only queries during wal replay as a Google Summer of Code 2007
 project.

You are discussing this on the wrong list.

 B) Split StartupXLOG into two steps. The first (Recovery) will process
 only enough wal to bring the system into a consistent state,

How will you know what that is?

 C) Combine A) and B), in the simplest possible way.
 Introduce a global R/W lock, which is taken by the Replay part
 of B) in write mode before replaying a chunk, then released,
 and immediatly reaquired before replaying the next chunk.

That seems certain to result in intolerable performance, for both the
queries and the replay process.

regards, tom lane

---(end of broadcast)---
TIP 5: don't forget to increase your free space map settings


Re: [HACKERS] Proposal for Implenting read-only queries during wal replay (SoC 2007)

2007-02-23 Thread Florian G. Pflug

Tom Lane wrote:

Florian G. Pflug [EMAIL PROTECTED] writes:

I plan to submit a proposal for implementing support for
read-only queries during wal replay as a Google Summer of Code 2007
project.


You are discussing this on the wrong list.

So what list would be more appropriate?


B) Split StartupXLOG into two steps. The first (Recovery) will process
only enough wal to bring the system into a consistent state,


How will you know what that is?

With the same logic that postgres uses now to bring an file-system backup
into a consistent state when doing PITR.


C) Combine A) and B), in the simplest possible way.
Introduce a global R/W lock, which is taken by the Replay part
of B) in write mode before replaying a chunk, then released,
and immediatly reaquired before replaying the next chunk.


That seems certain to result in intolerable performance, for both the
queries and the replay process.


That depends entirely on the usecase. And besides, this limitation could
and probably would be adressed in the future. I think a step-by-step
approach is more likely to be successfull then attempting to solve
all problems at once.

greetings, Florian Pflug




---(end of broadcast)---
TIP 6: explain analyze is your friend


Re: [HACKERS] Proposal for Implenting read-only queries during wal replay (SoC 2007)

2007-02-23 Thread Tom Lane
Florian G. Pflug [EMAIL PROTECTED] writes:
 Tom Lane wrote:
 You are discussing this on the wrong list.

 So what list would be more appropriate?

My mistake, I read the message header and saw Postgresql-General ...
did not look at the actual address ...

regards, tom lane

---(end of broadcast)---
TIP 7: You can help support the PostgreSQL project by donating at

http://www.postgresql.org/about/donate


Re: [HACKERS] Proposal for Implenting read-only queries during wal replay (SoC 2007)

2007-02-23 Thread Heikki Linnakangas

Florian G. Pflug wrote:

I plan to submit a proposal for implementing support for
read-only queries during wal replay as a Google Summer of Code 2007
project.

I've been browsing the postgres source-code for the last few days,
and came up with the following plan for a implementation.

I'd be very interested in any feedback on the propsoal - especially
of the you overlooked this an that, it can never work that way kind ;-)


I had the same thought roughly two years ago:

http://archives.postgresql.org/pgsql-hackers/2005-11/msg01043.php

People weren't very interested in having a read-only mode. I think it 
would be a nice feature if it's not too complicated.


--
  Heikki Linnakangas
  EnterpriseDB   http://www.enterprisedb.com

---(end of broadcast)---
TIP 5: don't forget to increase your free space map settings


Re: [HACKERS] Proposal for Implenting read-only queries during wal replay (SoC 2007)

2007-02-23 Thread Glen Parker

I'll throw in my vote, I would find this quite useful.

-Glen


Florian G. Pflug wrote:

I plan to submit a proposal for implementing support for
read-only queries during wal replay as a Google Summer of Code 2007
project.

I've been browsing the postgres source-code for the last few days,
and came up with the following plan for a implementation.

I'd be very interested in any feedback on the propsoal - especially
of the you overlooked this an that, it can never work that way kind ;-)




---(end of broadcast)---
TIP 9: In versions below 8.0, the planner will ignore your desire to
  choose an index scan if your joining column's datatypes do not
  match


Re: [HACKERS] Proposal for Implenting read-only queries during wal replay (SoC 2007)

2007-02-23 Thread Josh Berkus

 People weren't very interested in having a read-only mode. I think it
 would be a nice feature if it's not too complicated.

Actually, I think there's high demand for it off this list.  Effectively it 
would allow our warm backup mode to become a hot backup mode.   As SoC 
admin, I'd vote for such a proposal unless someone explains to me why it's 
impossible.

-- 
--Josh

Josh Berkus
PostgreSQL @ Sun
San Francisco

---(end of broadcast)---
TIP 1: if posting/reading through Usenet, please send an appropriate
   subscribe-nomail command to [EMAIL PROTECTED] so that your
   message can get through to the mailing list cleanly


Re: [HACKERS] Proposal for Implenting read-only queries during wal replay (SoC 2007)

2007-02-23 Thread Joshua D. Drake
Josh Berkus wrote:
 People weren't very interested in having a read-only mode. I think it
 would be a nice feature if it's not too complicated.
 
 Actually, I think there's high demand for it off this list.  Effectively it 
 would allow our warm backup mode to become a hot backup mode.   As SoC 
 admin, I'd vote for such a proposal unless someone explains to me why it's 
 impossible.

One thing I would like noted, is whoever does SoC work for PostgreSQL
this year, needs to work *with* the community. Otherwise there is no point.

A good example of the wrong way to do it is the Full Disjunctions
project. Great idea, Great project, not bitrot and hard space because it
hasn't been touched or maintained sense release.

In order to get it into core, it would have needed a lot of work. Let's
make sure we don't duplicate the issue.

Joshua D. Drake




-- 

  === The PostgreSQL Company: Command Prompt, Inc. ===
Sales/Support: +1.503.667.4564 || 24x7/Emergency: +1.800.492.2240
Providing the most comprehensive  PostgreSQL solutions since 1997
 http://www.commandprompt.com/

Donate to the PostgreSQL Project: http://www.postgresql.org/about/donate
PostgreSQL Replication: http://www.commandprompt.com/products/


---(end of broadcast)---
TIP 2: Don't 'kill -9' the postmaster


Re: [HACKERS] Proposal for Implenting read-only queries during wal replay (SoC 2007)

2007-02-23 Thread Jim C. Nasby
On Fri, Feb 23, 2007 at 10:57:24PM +, Heikki Linnakangas wrote:
 Florian G. Pflug wrote:
 I plan to submit a proposal for implementing support for
 read-only queries during wal replay as a Google Summer of Code 2007
 project.
 
 I've been browsing the postgres source-code for the last few days,
 and came up with the following plan for a implementation.
 
 I'd be very interested in any feedback on the propsoal - especially
 of the you overlooked this an that, it can never work that way kind ;-)
 
 I had the same thought roughly two years ago:
 
 http://archives.postgresql.org/pgsql-hackers/2005-11/msg01043.php
 
 People weren't very interested in having a read-only mode. I think it 
 would be a nice feature if it's not too complicated.

Every customer I've ever talked to about HA has either asked about it or
thought it was a great idea. We should definitely do it if it's not a
load of difficult..
-- 
Jim Nasby[EMAIL PROTECTED]
EnterpriseDB  http://enterprisedb.com  512.569.9461 (cell)

---(end of broadcast)---
TIP 2: Don't 'kill -9' the postmaster


Re: [HACKERS] Proposal for Implenting read-only queries during wal replay (SoC 2007)

2007-02-23 Thread Florian G. Pflug

Heikki Linnakangas wrote:

Florian G. Pflug wrote:

I plan to submit a proposal for implementing support for
read-only queries during wal replay as a Google Summer of Code 2007
project.

I've been browsing the postgres source-code for the last few days,
and came up with the following plan for a implementation.

I'd be very interested in any feedback on the propsoal - especially
of the you overlooked this an that, it can never work that way kind ;-)


I had the same thought roughly two years ago:

http://archives.postgresql.org/pgsql-hackers/2005-11/msg01043.php

People weren't very interested in having a read-only mode. I think it 
would be a nice feature if it's not too complicated.


I think main feature would be supporting read-only queries on PITR
slaves. But creating a read-only mode seemed to me (and to you too, it
seems ;-) ) like a good first step towards that goal.

After reading tom's reply to your original proposal, I agree that
supporting a write-protected datadir is not a true subset of
supporting read-only queries on PITR slaves. But I still think
that tackling the read-only datadir support is a good first step -
not the least because it'll help me to get familiar with the
relevent parts of the backend.

I've been thinking about your trick of writing readonly into
the postmaster.pid file to switch postgres into read-only mode.
On the one hand, it's really neat - if solves the problem of not
being able to create a pid file in the datadir in ro mode, while
on the other hand making sure that there *is* a pid file. But
if I went that way, it would mean there would be *three* configfiles
you have to get right for a working PITR slave with read-only query
support - postgresql.conf, recovery.conf, and postmaster.pid.

So I think I'll rather go with a postgresql.conf setting. I'd
allow three values hard, soft and off.
hard would prevent all writes to the datadir, while
soft would be the setting of choice for a PITR slave.

In the soft case, postgres would still write a postmaster.pid,
and so be protected against other running postmasters.
In the hard case, there would be no such protection - but since
there would be no writes anyway, you don't risk data corruption
in case another postmaster was running - the worst the would happen
is that the read-only postmaster crashes.

greetings, Florian Pflug


---(end of broadcast)---
TIP 1: if posting/reading through Usenet, please send an appropriate
  subscribe-nomail command to [EMAIL PROTECTED] so that your
  message can get through to the mailing list cleanly


Re: [HACKERS] Proposal for Implenting read-only queries during wal replay (SoC 2007)

2007-02-23 Thread Florian G. Pflug

Josh Berkus wrote:

People weren't very interested in having a read-only mode. I think it
would be a nice feature if it's not too complicated.


Actually, I think there's high demand for it off this list.  Effectively it 
would allow our warm backup mode to become a hot backup mode.   As SoC 
admin, I'd vote for such a proposal unless someone explains to me why it's 
impossible.


From my point of view, the most subtle point of the whole proposal is
if not doing
wal-replay _and_ quries at the same time, but rather one after the other,
really solves all the locking issues.

My line of reasoning is that stopping wal replay at a arbitrary point,
and then starting a read-only transaction with an empty snapshot (meaning
that all exactly those transactions marked as comitted in the clog are 
assumed to be visible to the transaction) is exactly the same as sending

the backend a SIGKILL when it just wrote the wal record in question,
and then restarting postgres, and starting a transaction.

Since later won't lead to problems today, doing the formed for hot standby
should not lead to problems too.

There reason that I put Process wal in chucks such that all 
*_safe_restartpoint functions return true at the end of a chunk was

the be on the safe side, not because I could find any actual problem
if that requirement was dropped.

Can anyone find a flaw in those arguments?

greetings, Florian Pflug

---(end of broadcast)---
TIP 9: In versions below 8.0, the planner will ignore your desire to
  choose an index scan if your joining column's datatypes do not
  match


Re: [HACKERS] Proposal for Implenting read-only queries during wal replay (SoC 2007)

2007-02-23 Thread Tom Lane
Florian G. Pflug [EMAIL PROTECTED] writes:
 My line of reasoning is that stopping wal replay at a arbitrary point,
 and then starting a read-only transaction with an empty snapshot (meaning
 that all exactly those transactions marked as comitted in the clog are 
 assumed to be visible to the transaction) is exactly the same as sending
 the backend a SIGKILL when it just wrote the wal record in question,
 and then restarting postgres, and starting a transaction.

The hole in that reasoning is that no one would be satisfied with the
behavior of a Postgres database that was being forcibly restarted every
few seconds.  Yeah, we won't lose transactions that have been promised
committed, but losing a large fraction of transactions-in-progress won't
please anyone.  Nor will queries on a slave that's behaving like that
provide an accurate model of what the same queries would produce if issued
on the master.

regards, tom lane

---(end of broadcast)---
TIP 2: Don't 'kill -9' the postmaster