Skip site navigation (1) Skip section navigation (2)

Re: ARC patent

From: "John Hansen" <john(at)geeknet(dot)com(dot)au>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "Neil Conway" <neilc(at)samurai(dot)com>
Cc: "Jan Wieck" <JanWieck(at)Yahoo(dot)com>,"pgsql-hackers" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-17 08:04:49
Message-ID: 5066E5A966339E42AA04BA10BA706AE56231@rodrick.geeknet.com.au (view raw)
> > FYI, IBM has applied for a patent on ARC (AFAICS the patent 
> > application is still pending, although the USPTO site is a 
> little hard to grok):
> 
> http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PG01&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.html&r=1&f=G&l=50&s1=%2220040098541%22.PGNR.&OS=DN/20040098541&RS=DN/20040098541

How will this affect the release of 8.0?

Wasn't this implemented in the early stages of the 7.5 cycle, long before may 20?


... John

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "John Hansen" <john(at)geeknet(dot)com(dot)au>
Cc: "Neil Conway" <neilc(at)samurai(dot)com>,"Jan Wieck" <JanWieck(at)Yahoo(dot)com>,"pgsql-hackers" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-17 08:14:31
Message-ID: 24354.1105949671@sss.pgh.pa.us (view raw)
"John Hansen" <john(at)geeknet(dot)com(dot)au> writes:
> How will this affect the release of 8.0?

I don't think it needs to delay the release; the patent is only pending.
But we need to look into the problem.

			regards, tom lane

From: Andrew Sullivan <ajs(at)crankycanuck(dot)ca>
To: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-17 19:27:44
Message-ID: 20050117192744.GB12666@phlogiston.dyndns.org (view raw)
On Mon, Jan 17, 2005 at 03:14:31AM -0500, Tom Lane wrote:
> I don't think it needs to delay the release; the patent is only pending.
> But we need to look into the problem.

What will you do if the patent is granted, 8.0 is out there with the
offending code, and you get a cease-and-desist letter from IBM
demanding the removal of all offending code from the Net?  The code
would have to be yanked from CVS &c., in that case, no?  (IANAL, but
I think I may consult with one.)

A

-- 
Andrew Sullivan  | ajs(at)crankycanuck(dot)ca
The fact that technology doesn't work is no bar to success in the marketplace.
		--Philip Greenspun

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Andrew Sullivan <ajs(at)crankycanuck(dot)ca>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-17 19:37:44
Message-ID: 200501171937.j0HJbiG13629@candle.pha.pa.us (view raw)
Andrew Sullivan wrote:
> On Mon, Jan 17, 2005 at 03:14:31AM -0500, Tom Lane wrote:
> > I don't think it needs to delay the release; the patent is only pending.
> > But we need to look into the problem.
> 
> What will you do if the patent is granted, 8.0 is out there with the
> offending code, and you get a cease-and-desist letter from IBM
> demanding the removal of all offending code from the Net?  The code
> would have to be yanked from CVS &c., in that case, no?  (IANAL, but
> I think I may consult with one.)

We can modify the code slightly to hopefully avoid the patent.  With the
US granting patents on even obvious ideas, I would think that most large
software projects, including commercial ones, already have tons of
patent violations in their code.  Does anyone think otherwise?

However, I will grant that ARC is not an obvious idea.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman(at)candle(dot)pha(dot)pa(dot)us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

From: "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>
To: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
Cc: Andrew Sullivan <ajs(at)crankycanuck(dot)ca>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-17 19:44:08
Message-ID: 41EC1588.5030607@commandprompt.com (view raw)
>We can modify the code slightly to hopefully avoid the patent.  With the
>US granting patents on even obvious ideas, I would think that most large
>software projects, including commercial ones, already have tons of
>patent violations in their code.  Does anyone think otherwise?
>
>However, I will grant that ARC is not an obvious idea.
>  
>

Speaking from a commercial perspective, if the community has
known patent violating code within its source tree, the community
needs to remove and or modify as to not violate that patent
before any continued release.

The last thing I am sure that:

RedHat
Pervasive
SRA
Fufitsu
PgSQL, Inc.
and of course
Command Prompt

want is a call from IBM saying... hey we aren't going to go
after the community but you need to pay up.

The patent risk is just entirely too great and it can greatly
hurt the community as a whole.

Sincerely,

Joshua D. Drake






-- 
Command Prompt, Inc., home of Mammoth PostgreSQL - S/ODBC and S/JDBC
Postgresql support, programming shared hosting and dedicated hosting.
+1-503-667-4564 - jd(at)commandprompt(dot)com - http://www.commandprompt.com
PostgreSQL Replicator -- production quality replication for PostgreSQL

Attachment: jd.vcf
Description: text/x-vcard (285 bytes)
From: Andrew Sullivan <ajs(at)crankycanuck(dot)ca>
To: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-17 19:46:13
Message-ID: 20050117194613.GC12666@phlogiston.dyndns.org (view raw)
On Mon, Jan 17, 2005 at 02:37:44PM -0500, Bruce Momjian wrote:
> 
> We can modify the code slightly to hopefully avoid the patent.  With the

I guess what I'm very much worried about is that there is
potentially-infringing code there, we know about it, and we may press
ahead and release with it anyway.  IBM would justifiably jump on us
for that as a result.  What I simply don't know is what they can
require be done as a remedy.  If merely modifying the code is good
enough, fine.  But given how widely the code base will be
disseminated, I'm worried they might demand that we somehow track it
down and get rid of it.  That would be a significant distraction, I
think.

> US granting patents on even obvious ideas, I would think that most large
> software projects, including commercial ones, already have tons of
> patent violations in their code.  Does anyone think otherwise?

First, that's hardly a justification, and second, they're not all
subject to inspection.  Plus, this is a case where we _know_ about
the potential violation, and have had it pointed out to us, before
the code has been declared "released".

> However, I will grant that ARC is not an obvious idea.

Precisely, or we wouldn't be pleased with the implementation.

A

-- 
Andrew Sullivan  | ajs(at)crankycanuck(dot)ca
I remember when computers were frustrating because they *did* exactly what 
you told them to.  That actually seems sort of quaint now.
		--J.D. Baldwin

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
Cc: Andrew Sullivan <ajs(at)crankycanuck(dot)ca>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-17 19:48:46
Message-ID: 9533.1105991326@sss.pgh.pa.us (view raw)
Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> writes:
> Andrew Sullivan wrote:
>> What will you do if the patent is granted, 8.0 is out there with the
>> offending code, and you get a cease-and-desist letter from IBM
>> demanding the removal of all offending code from the Net?

> We can modify the code slightly to hopefully avoid the patent.  With the
> US granting patents on even obvious ideas, I would think that most large
> software projects, including commercial ones, already have tons of
> patent violations in their code.  Does anyone think otherwise?

I think there is zero probability of being sued by IBM in the near
future.  They would instantly destroy the credibility and good
relationships they've worked so hard to build up with the entire
open source community.

However, I don't want to be beholden to IBM indefinitely --- in five
years their corporate strategy might change.  I think that a reasonable
response to this is to plan to get rid of ARC, or at least modify the
code enough to avoid the patent, in time for 8.1.  (It's entirely likely
that that will happen before the patent issues, anyway.)

			regards, tom lane

From: "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>,Andrew Sullivan <ajs(at)crankycanuck(dot)ca>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-17 19:57:33
Message-ID: 41EC18AD.90506@commandprompt.com (view raw)
>However, I don't want to be beholden to IBM indefinitely --- in five
>years their corporate strategy might change.  I think that a reasonable
>response to this is to plan to get rid of ARC, or at least modify the
>code enough to avoid the patent, in time for 8.1.  (It's entirely likely
>that that will happen before the patent issues, anyway.)
>
>			regards, tom lane
>  
>
IBM makes 20% of their money from licensing patents.

That alone makes this whole conversation scare the hell out of
me.

We should be as proactive as possible with this and remove
the code (or modify as required).

Sincerely,

Joshua D. Drake




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


-- 
Command Prompt, Inc., home of Mammoth PostgreSQL - S/ODBC and S/JDBC
Postgresql support, programming shared hosting and dedicated hosting.
+1-503-667-4564 - jd(at)commandprompt(dot)com - http://www.commandprompt.com
PostgreSQL Replicator -- production quality replication for PostgreSQL

Attachment: jd.vcf
Description: text/x-vcard (285 bytes)
From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Andrew Sullivan <ajs(at)crankycanuck(dot)ca>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-17 19:58:33
Message-ID: 9648.1105991913@sss.pgh.pa.us (view raw)
Andrew Sullivan <ajs(at)crankycanuck(dot)ca> writes:
> I guess what I'm very much worried about is that there is
> potentially-infringing code there, we know about it, and we may press
> ahead and release with it anyway.  IBM would justifiably jump on us
> for that as a result.

With what?  They have no patent, yet, and may never have one.  If the
patent were already issued then I'd be much more concerned.

			regards, tom lane

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Andrew Sullivan <ajs(at)crankycanuck(dot)ca>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-17 20:01:39
Message-ID: 200501172001.j0HK1dE03457@candle.pha.pa.us (view raw)
Tom Lane wrote:
> Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> writes:
> > Andrew Sullivan wrote:
> >> What will you do if the patent is granted, 8.0 is out there with the
> >> offending code, and you get a cease-and-desist letter from IBM
> >> demanding the removal of all offending code from the Net?
> 
> > We can modify the code slightly to hopefully avoid the patent.  With the
> > US granting patents on even obvious ideas, I would think that most large
> > software projects, including commercial ones, already have tons of
> > patent violations in their code.  Does anyone think otherwise?
> 
> I think there is zero probability of being sued by IBM in the near
> future.  They would instantly destroy the credibility and good
> relationships they've worked so hard to build up with the entire
> open source community.
> 
> However, I don't want to be beholden to IBM indefinitely --- in five
> years their corporate strategy might change.  I think that a reasonable
> response to this is to plan to get rid of ARC, or at least modify the
> code enough to avoid the patent, in time for 8.1.  (It's entirely likely
> that that will happen before the patent issues, anyway.)

We may already have modified the code enough to avoid the patent.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman(at)candle(dot)pha(dot)pa(dot)us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Andrew Sullivan <ajs(at)crankycanuck(dot)ca>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-17 20:05:20
Message-ID: 200501172005.j0HK5Kt04216@candle.pha.pa.us (view raw)
Tom Lane wrote:
> Andrew Sullivan <ajs(at)crankycanuck(dot)ca> writes:
> > I guess what I'm very much worried about is that there is
> > potentially-infringing code there, we know about it, and we may press
> > ahead and release with it anyway.  IBM would justifiably jump on us
> > for that as a result.
> 
> With what?  They have no patent, yet, and may never have one.  If the
> patent were already issued then I'd be much more concerned.

One big question is why we pulled so directly from ideas on an IBM web
site?  That is very atypical of us.

Because we used it, I assumed the ideas were available for all to use
without patent restriction.  Obviously not.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman(at)candle(dot)pha(dot)pa(dot)us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>,Andrew Sullivan <ajs(at)crankycanuck(dot)ca>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-17 20:11:16
Message-ID: 41EC1BE4.8010501@dunslane.net (view raw)

Tom Lane wrote:

>Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> writes:
>  
>
>>Andrew Sullivan wrote:
>>    
>>
>>>What will you do if the patent is granted, 8.0 is out there with the
>>>offending code, and you get a cease-and-desist letter from IBM
>>>demanding the removal of all offending code from the Net?
>>>      
>>>
>
>  
>
>>We can modify the code slightly to hopefully avoid the patent.  With the
>>US granting patents on even obvious ideas, I would think that most large
>>software projects, including commercial ones, already have tons of
>>patent violations in their code.  Does anyone think otherwise?
>>    
>>
>
>I think there is zero probability of being sued by IBM in the near
>future.  They would instantly destroy the credibility and good
>relationships they've worked so hard to build up with the entire
>open source community.
>
>However, I don't want to be beholden to IBM indefinitely --- in five
>years their corporate strategy might change.  I think that a reasonable
>response to this is to plan to get rid of ARC, or at least modify the
>code enough to avoid the patent, in time for 8.1.  (It's entirely likely
>that that will happen before the patent issues, anyway.)
>
>
>  
>

There's a very recent paper at 
http://carmen.cs.uiuc.edu/~zchen9/paper/TPDS-final.ps on an alternative 
to ARC which claims superior performance ...

Maybe this will give us added impetus to make the 8.1 cycle short, as 
has been suggested previously.


cheers

andrew

From: Andrew Sullivan <ajs(at)crankycanuck(dot)ca>
To: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-17 20:16:49
Message-ID: 20050117201649.GD12666@phlogiston.dyndns.org (view raw)
On Mon, Jan 17, 2005 at 02:58:33PM -0500, Tom Lane wrote:
> Andrew Sullivan <ajs(at)crankycanuck(dot)ca> writes:
> > ahead and release with it anyway.  IBM would justifiably jump on us
> > for that as a result.
> 
> With what?  They have no patent, yet, and may never have one.  If the
> patent were already issued then I'd be much more concerned.

With a team of lawyers which we can't match.  They may never have a
patent, or they may get it next month.  I'd feel more
comfortable if I knew what sort of remedies they could demand (I have
a call open to a lawyer I believe will give me a conservative answer
about that).  

What I can say, for sure, is that no responsible corporate user will
be able to use this code with the threat hanging over.  The recent
SCO stuff ought to be a lesson here: their claims appear to have been
completely baseless, but companies still spent a pile of time and
money on the issue.  It'll be far worse in a case where the
infringment is real and, yet worse, intentional.

A
-- 
Andrew Sullivan  | ajs(at)crankycanuck(dot)ca
When my information changes, I alter my conclusions.  What do you do sir?
		--attr. John Maynard Keynes

From: Andrew Sullivan <ajs(at)crankycanuck(dot)ca>
To: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-17 20:17:35
Message-ID: 20050117201735.GE12666@phlogiston.dyndns.org (view raw)
On Mon, Jan 17, 2005 at 02:48:46PM -0500, Tom Lane wrote:
> I think there is zero probability of being sued by IBM in the near
> future.  

They won't sue the project.  They'll send corporate users a bill,
instead, for a license. 

A

-- 
Andrew Sullivan  | ajs(at)crankycanuck(dot)ca
A certain description of men are for getting out of debt, yet are
against all taxes for raising money to pay it off.
		--Alexander Hamilton

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Andrew Dunstan <andrew(at)dunslane(dot)net>
Cc: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>,Andrew Sullivan <ajs(at)crankycanuck(dot)ca>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-17 20:18:15
Message-ID: 9910.1105993095@sss.pgh.pa.us (view raw)
Andrew Dunstan <andrew(at)dunslane(dot)net> writes:
> There's a very recent paper at 
> http://carmen.cs.uiuc.edu/~zchen9/paper/TPDS-final.ps on an alternative 
> to ARC which claims superior performance ...

Personally, I'd prefer a very *old* paper ;-)

> Maybe this will give us added impetus to make the 8.1 cycle short, as 
> has been suggested previously.

Agreed.  If we have a plan to replace the code in three-to-six months
I think we are all right, especially seeing that this is only a pending
patent and not enforceable yet.

To those who say "you can't release with a potential patent problem"
I would say that we already have.  There are lots of people running
8.0 beta and RC releases --- if history is any guide, many of them
will continue running those releases for a long time, rather than
update to final.  We can never erase all trace that we ever touched
ARC (would you have us retroactively edit our CVS history?) and AFAIK
we would not be required to do so anyway.  The legal requirement would
be to cure the breach going forward, ie, get it out of our future
releases.  That we can and should do, but there's no need for panic.

			regards, tom lane

From: Jeff <threshar(at)torgo(dot)978(dot)org>
To: "Joshua D(dot) Drake" <jd(at)www(dot)commandprompt(dot)com>
Cc: Andrew Sullivan <ajs(at)crankycanuck(dot)ca>,Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-17 20:21:59
Message-ID: 70894574-68C5-11D9-AC3A-000D9366F0C4@torgo.978.org (view raw)
On Jan 17, 2005, at 2:57 PM, Joshua D. Drake wrote:

>
> We should be as proactive as possible with this and remove
> the code (or modify as required).
>

Perhaps a member of -CORE should contact IBM.  The ball is out there 
now due to the discussion on this list that we know we might have 
infringing code.  Might as well try to play "good citizen" and talk 
with them, perhaps they'll give us some sort of indemnity for 8.0 so we 
can get something perhaps better for 8.1.

--
Jeff Trout <jeff(at)jefftrout(dot)com>
http://www.jefftrout.com/
http://www.stuarthamm.net/


From: Jeff Davis <jdavis-pgsql(at)empires(dot)org>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-17 20:22:30
Message-ID: 1105993351.2886.498.camel@jeff (view raw)
> I think there is zero probability of being sued by IBM in the near
> future.  They would instantly destroy the credibility and good
> relationships they've worked so hard to build up with the entire
> open source community.
> 
> However, I don't want to be beholden to IBM indefinitely --- in five
> years their corporate strategy might change.  I think that a reasonable
> response to this is to plan to get rid of ARC, or at least modify the
> code enough to avoid the patent, in time for 8.1.  (It's entirely likely
> that that will happen before the patent issues, anyway.)
> 

If PostgreSQL 8.0 is released with ARC, and then PostgreSQL 8.1 is
released without ARC, and then the patent is granted to IBM, would
everyone be fine if they just all switched to 8.1 at that time? Or would
we have some kind of retroactive problem? Would people that are still
using 8.0 in production, but not distributing it, have difficulty?

Regards,
	Jeff



From: "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>
To: Jeff Davis <jdavis-pgsql(at)empires(dot)org>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-17 20:30:39
Message-ID: 41EC206F.1050801@commandprompt.com (view raw)
>If PostgreSQL 8.0 is released with ARC, and then PostgreSQL 8.1 is
>released without ARC, and then the patent is granted to IBM, would
>everyone be fine if they just all switched to 8.1 at that time? Or would
>we have some kind of retroactive problem? Would people that are still
>using 8.0 in production, but not distributing it, have difficulty?
>  
>
The biggest problem is going to be that if we release 8 with
the patented stuff, then for a minimum of 3 years there will
be liability for anyone running 8.

We still have people running 7.1 and once you get something
into production you typically don't just "change" it.

Basically I think the fact that we are even considering leaving
the knowingly infringing code in 8 is presenting a horrible
face to the community.

Sincerely,

Joshua D. Drake



>Regards,
>	Jeff
>
>
>
>---------------------------(end of broadcast)---------------------------
>TIP 1: subscribe and unsubscribe commands go to majordomo(at)postgresql(dot)org
>  
>


-- 
Command Prompt, Inc., home of Mammoth PostgreSQL - S/ODBC and S/JDBC
Postgresql support, programming shared hosting and dedicated hosting.
+1-503-667-4564 - jd(at)commandprompt(dot)com - http://www.commandprompt.com
PostgreSQL Replicator -- production quality replication for PostgreSQL

Attachment: jd.vcf
Description: text/x-vcard (285 bytes)
From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Andrew Sullivan <ajs(at)crankycanuck(dot)ca>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-17 20:48:38
Message-ID: 200501172048.j0HKmcc10336@candle.pha.pa.us (view raw)
Andrew Sullivan wrote:
> With a team of lawyers which we can't match.  They may never have a
> patent, or they may get it next month.  I'd feel more
> comfortable if I knew what sort of remedies they could demand (I have
> a call open to a lawyer I believe will give me a conservative answer
> about that).  
> 
> What I can say, for sure, is that no responsible corporate user will
> be able to use this code with the threat hanging over.  The recent
> SCO stuff ought to be a lesson here: their claims appear to have been
> completely baseless, but companies still spent a pile of time and
> money on the issue.  It'll be far worse in a case where the
> infringment is real and, yet worse, intentional.

You want scarey --- forget the IBM patent.  Find an Oracle or Microsoft
patent that is similar to something in our code.  It will might not be
exact, but our ARC isn't exact either.

Basically any organization that wants to produce patent-free code would
need one lawyer for every five programmers, and even then it isn't 100%.
The method I have heard to find infringement sounds pretty imprecise.

The remedy for patent infringment I think is usually to stop using the
patented idea, rather than punitive damages, unlike copyright.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman(at)candle(dot)pha(dot)pa(dot)us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>
Cc: Jeff Davis <jdavis-pgsql(at)empires(dot)org>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-17 20:57:53
Message-ID: 10400.1105995473@sss.pgh.pa.us (view raw)
"Joshua D. Drake" <jd(at)commandprompt(dot)com> writes:
> The biggest problem is going to be that if we release 8 with
> the patented stuff, then for a minimum of 3 years there will
> be liability for anyone running 8.

Do you honestly think that this is the only patented algorithm anywhere
in there?

Now that we've been made aware that there is a pending (one more time:
pending, not issued) patent on it, we will work on removing the affected
code in an orderly fashion.  I don't think there is need for panic.

			regards, tom lane

From: "Marc G(dot) Fournier" <scrappy(at)postgresql(dot)org>
To: Andrew Sullivan <ajs(at)crankycanuck(dot)ca>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-17 21:04:36
Message-ID: 20050117170411.C96603@ganymede.hub.org (view raw)
On Mon, 17 Jan 2005, Andrew Sullivan wrote:

> On Mon, Jan 17, 2005 at 02:37:44PM -0500, Bruce Momjian wrote:
>>
>> We can modify the code slightly to hopefully avoid the patent.  With the
>
> I guess what I'm very much worried about is that there is
> potentially-infringing code there, we know about it, and we may press
> ahead and release with it anyway.  IBM would justifiably jump on us
> for that as a result.

I thought the patnt was only pending, not granted?


----
Marc G. Fournier           Hub.Org Networking Services (http://www.hub.org)
Email: scrappy(at)hub(dot)org           Yahoo!: yscrappy              ICQ: 7615664

From: Andrew Sullivan <ajs(at)crankycanuck(dot)ca>
To: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-17 21:05:54
Message-ID: 20050117210554.GF12666@phlogiston.dyndns.org (view raw)
On Mon, Jan 17, 2005 at 05:04:36PM -0400, Marc G. Fournier wrote:
> 
> I thought the patnt was only pending, not granted?

That's right, and it's what gives Tom's arguments some weight.

A

-- 
Andrew Sullivan  | ajs(at)crankycanuck(dot)ca
Information security isn't a technological problem.  It's an economics
problem.
		--Bruce Schneier

From: Jeff Davis <jdavis-pgsql(at)empires(dot)org>
To: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-17 21:06:04
Message-ID: 1105995964.2886.502.camel@jeff (view raw)
> You want scarey --- forget the IBM patent.  Find an Oracle or Microsoft
> patent that is similar to something in our code.  It will might not be
> exact, but our ARC isn't exact either.
> 
> Basically any organization that wants to produce patent-free code would
> need one lawyer for every five programmers, and even then it isn't 100%.
> The method I have heard to find infringement sounds pretty imprecise.
> 
> The remedy for patent infringment I think is usually to stop using the
> patented idea, rather than punitive damages, unlike copyright.
> 

Is that for all kinds of patent infringement, or only the
didn't-know-better kind? Right now I don't think we can claim
"didn't-know-better".

Also, does "stop" mean stop distributing the patented process, or stop
using all installations?

Regards,
	Jeff Davis


From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Jeff Davis <jdavis-pgsql(at)empires(dot)org>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-17 21:09:29
Message-ID: 200501172109.j0HL9TW13380@candle.pha.pa.us (view raw)
Jeff Davis wrote:
> 
> > You want scarey --- forget the IBM patent.  Find an Oracle or Microsoft
> > patent that is similar to something in our code.  It will might not be
> > exact, but our ARC isn't exact either.
> > 
> > Basically any organization that wants to produce patent-free code would
> > need one lawyer for every five programmers, and even then it isn't 100%.
> > The method I have heard to find infringement sounds pretty imprecise.
> > 
> > The remedy for patent infringment I think is usually to stop using the
> > patented idea, rather than punitive damages, unlike copyright.
> > 
> 
> Is that for all kinds of patent infringement, or only the
> didn't-know-better kind? Right now I don't think we can claim
> "didn't-know-better".

Didn't know better has no status for patents.  Copyright stuff is pretty
easy to avoid --- just don't copy stuff and you are OK, and most
companies are good at enforcing that part.  

> Also, does "stop" mean stop distributing the patented process, or stop
> using all installations?

Not sure.  The PostgreSQL development group doesn't have installations,
do we?

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman(at)candle(dot)pha(dot)pa(dot)us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

From: Neil Conway <neilc(at)samurai(dot)com>
To: "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>
Cc: Jeff Davis <jdavis-pgsql(at)empires(dot)org>,Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-17 23:15:04
Message-ID: 1106003704.22946.89.camel@localhost.localdomain (view raw)
On Mon, 2005-01-17 at 12:30 -0800, Joshua D. Drake wrote:
> The biggest problem is going to be that if we release 8 with
> the patented stuff, then for a minimum of 3 years there will
> be liability for anyone running 8.
> 
> We still have people running 7.1 and once you get something
> into production you typically don't just "change" it.

Keep in mind that it would be conceivable to ship an 8.0.x release which
replaces ARC with another algorithm. That would be a somewhat
non-trivial change, but there's no reason we need to wait for a major
release (i.e. 8.1 or 8.2) to replace ARC.

> Basically I think the fact that we are even considering leaving
> the knowingly infringing code in 8 is presenting a horrible
> face to the community.

I agree with Tom -- this shouldn't be an impediment to releasing 8.0,
but it definitely warrants attention in the future.

-Neil



From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Neil Conway <neilc(at)samurai(dot)com>
Cc: "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>,Jeff Davis <jdavis-pgsql(at)empires(dot)org>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-17 23:43:28
Message-ID: 12385.1106005408@sss.pgh.pa.us (view raw)
Neil Conway <neilc(at)samurai(dot)com> writes:
> Keep in mind that it would be conceivable to ship an 8.0.x release which
> replaces ARC with another algorithm. That would be a somewhat
> non-trivial change, but there's no reason we need to wait for a major
> release (i.e. 8.1 or 8.2) to replace ARC.

It's not that we couldn't fold a non-ARC algorithm into the 8.0.x
release series, it's that it'd be a fairly fundamental change in
some critical code.  Critical from both the reliability and performance
standpoints.  I would be comfortable with developing a replacement
algorithm as part of the 8.1 development cycle, and then considering
a back-patch after 8.1 is out and has shown that it's not completely
broken.  But to replace it with less testing than that would be
irresponsible, at least by the standards we have customarily used for
minor releases.

This is assuming that we conclude we need a whole new algorithm to
dodge the patent.  Another line of attack should be to see whether we
can make minor tweaks to avoid it.  I'm pessimistic about that, but
it deserves some amount of investigation before we go down the wholesale
replacement path.

We already had been considering a short development cycle for 8.1, and
I think that this issue will set that decision in stone.  What I'm
currently thinking about is a couple of months development and the same
for beta, which would allow a release in June or so.  I have already
suggested to core that we should insist on 8.1 not requiring an initdb,
so as to ensure that people will migrate up to it easily from 8.0.
Aside from the ARC issue, we have already one significant Windows
porting issue (%$n in message strings) and I'm sure we will find more
once 8.0 is out and getting some real use.  I would expect us to focus
on fixing issues of that caliber and probably being pretty stingy on
new features.

(Of course, if we do take this approach, it's questionable whether we'd
need to bother with a back-patch.)

			regards, tom lane

From: Simon Riggs <simon(at)2ndquadrant(dot)com>
To: Neil Conway <neilc(at)samurai(dot)com>
Cc: "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>,Jeff Davis <jdavis-pgsql(at)empires(dot)org>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-17 23:56:35
Message-ID: 1106006195.14384.223.camel@localhost.localdomain (view raw)
On Tue, 2005-01-18 at 10:15 +1100, Neil Conway wrote:
> On Mon, 2005-01-17 at 12:30 -0800, Joshua D. Drake wrote:
> > The biggest problem is going to be that if we release 8 with
> > the patented stuff, then for a minimum of 3 years there will
> > be liability for anyone running 8.
> > 
> > We still have people running 7.1 and once you get something
> > into production you typically don't just "change" it.
> 
> Keep in mind that it would be conceivable to ship an 8.0.x release which
> replaces ARC with another algorithm. That would be a somewhat
> non-trivial change, but there's no reason we need to wait for a major
> release (i.e. 8.1 or 8.2) to replace ARC.

Agreed.

> > Basically I think the fact that we are even considering leaving
> > the knowingly infringing code in 8 is presenting a horrible
> > face to the community.
> 
> I agree with Tom -- this shouldn't be an impediment to releasing 8.0,
> but it definitely warrants attention in the future.
> 

Agreed.

-- 
Best Regards, Simon Riggs


From: Neil Conway <neilc(at)samurai(dot)com>
To: Andrew Dunstan <andrew(at)dunslane(dot)net>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>,Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>,Andrew Sullivan <ajs(at)crankycanuck(dot)ca>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-18 22:33:49
Message-ID: 1106087629.22946.157.camel@localhost.localdomain (view raw)
On Mon, 2005-01-17 at 15:11 -0500, Andrew Dunstan wrote:
> There's a very recent paper at 
> http://carmen.cs.uiuc.edu/~zchen9/paper/TPDS-final.ps on an alternative 
> to ARC which claims superior performance ...

>From a quick glance, this doesn't look applicable. The authors are
discussing buffer replacement strategies for a multi-level cache
hierarchy (e.g. they would call the DBMS buffer cache "L1", and the
kernel I/O cache "L2" -- note that despite the terminology, this has
little in common with L1/L2 caches in processors). They don't really
address caching for the L1-only case -- they're concerned with proposing
algorithms to manage the L2 cache (with or without explicit knowledge
about the content of the L1 cache).

A few years ago Tom implemented the LRU-K replacement policy[1], but
AFAIK the performance results from that weren't very positive (since the
implementation of LRU-K requires a heap and is therefore logarithmic
rather than constant time, that makes sense). The 2Q algorithm looks
like it might be worth investigating[2].

-Neil

[1] http://citeseer.ist.psu.edu/16869.html
[2] http://citeseer.ist.psu.edu/63909.html


From: Neil Conway <neilc(at)samurai(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>,Jeff Davis <jdavis-pgsql(at)empires(dot)org>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-18 23:48:00
Message-ID: 1106092080.22946.172.camel@localhost.localdomain (view raw)
On Mon, 2005-01-17 at 18:43 -0500, Tom Lane wrote:
> I have already
> suggested to core that we should insist on 8.1 not requiring an initdb,
> so as to ensure that people will migrate up to it easily from 8.0.

So is it firm policy that changes that require a catversion update
cannot be made during the 8.1 cycle?

(Needless to say, it would be good to get this sorted out early on in
the 8.1 development cycle, to avoid the need to revert patches at some
point down the line. For those of us working on large projects that will
definitely require an initdb, it would also be good to know -- as this
policy will likely prevent that work from getting into 8.1)

-Neil



From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: Neil Conway <neilc(at)samurai(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>,"Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>,Jeff Davis <jdavis-pgsql(at)empires(dot)org>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-19 00:10:29
Message-ID: 20050119001029.GC12275@dcc.uchile.cl (view raw)
On Wed, Jan 19, 2005 at 10:48:00AM +1100, Neil Conway wrote:
> On Mon, 2005-01-17 at 18:43 -0500, Tom Lane wrote:
> > I have already
> > suggested to core that we should insist on 8.1 not requiring an initdb,
> > so as to ensure that people will migrate up to it easily from 8.0.
> 
> So is it firm policy that changes that require a catversion update
> cannot be made during the 8.1 cycle?

Hmm.  That means my shared dependency patch cannot go in, nor anything
I do about shared row locking.  Fortunately that leaves the multitable
truncate and the C "install" replacement free to be applied.

-- 
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
You liked Linux a lot when he was just the gawky kid from down the block
mowing your lawn or shoveling the snow. But now that he wants to date
your daughter, you're not so sure he measures up. (Larry Greenemeier)

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Neil Conway <neilc(at)samurai(dot)com>
Cc: "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>,Jeff Davis <jdavis-pgsql(at)empires(dot)org>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-19 04:26:14
Message-ID: 23134.1106108774@sss.pgh.pa.us (view raw)
Neil Conway <neilc(at)samurai(dot)com> writes:
> On Mon, 2005-01-17 at 18:43 -0500, Tom Lane wrote:
>> I have already
>> suggested to core that we should insist on 8.1 not requiring an initdb,
>> so as to ensure that people will migrate up to it easily from 8.0.

> So is it firm policy that changes that require a catversion update
> cannot be made during the 8.1 cycle?

Not yet --- I suggested it but didn't get any yeas or nays.  I don't
feel this is solely core's decision anyway ... what do the assembled
hackers think?

> (Needless to say, it would be good to get this sorted out early on in
> the 8.1 development cycle, to avoid the need to revert patches at some
> point down the line. For those of us working on large projects that will
> definitely require an initdb, it would also be good to know -- as this
> policy will likely prevent that work from getting into 8.1)

Yes, it has to be decided one way or the other soon.

One way to have our cake and eat it too would be for someone to
resurrect pg_upgrade during this devel cycle.  Anyone feel like
working on that?

			regards, tom lane

From: Neil Conway <neilc(at)samurai(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>,Jeff Davis <jdavis-pgsql(at)empires(dot)org>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-19 05:25:43
Message-ID: 1106112343.22946.208.camel@localhost.localdomain (view raw)
On Tue, 2005-01-18 at 23:26 -0500, Tom Lane wrote:
> Not yet --- I suggested it but didn't get any yeas or nays.  I don't
> feel this is solely core's decision anyway ... what do the assembled
> hackers think?

I'm not sure it's a great idea.

I'm not aware of a recent example of short development cycles working
well in this project. That isn't to say we *can't* do one effectively,
just that history is not on our side (does anyone recall the plans to
finish off Win32 in 7.5 and get it out the door quickly?)

The primary justification I've heard for the no-initdb policy is that it
would provide a smooth upgrade path for 8.0 users if/when the ARC patent
is granted. I don't think this is the best way to deal with the ARC
issue: it seems silly to handicap an entire development cycle because of
one (potential) problem. Not to mention that it's not even certain
whether an ARC replacement will be needed: we might be able to adapt the
existing code to workaround the patent, the patent might not be granted,
or IBM might grant us a license to use it. It's also worth emphasizing
that this would be a rather severe limitation on what kind of new
developments can go into 8.1.

I think the proper fix for the ARC issue is an 8.0.x release with a new
replacement policy. To avoid introducing instability into 8.0, we should
obviously test the new buffer replacement policy *very* carefully.
However, I think the ARC replacement should *not* be a fundamental
change in behavior: the algorithm should still attempt to balance
recency and frequency, to adjust dynamically to changes in workload, to
avoid "sequential flooding", and to allow constant-time page
replacement. Ideally the ARC replacement would do something similar to
ARC but via a different means. If such a patch were developed, I don't
think it would be a herculean task to include it in an 8.0.x release
after a lot of careful testing and code review.

-Neil



From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Neil Conway <neilc(at)samurai(dot)com>
Cc: "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>,Jeff Davis <jdavis-pgsql(at)empires(dot)org>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-19 05:39:28
Message-ID: 23694.1106113168@sss.pgh.pa.us (view raw)
Neil Conway <neilc(at)samurai(dot)com> writes:
> On Tue, 2005-01-18 at 23:26 -0500, Tom Lane wrote:
>> Not yet --- I suggested it but didn't get any yeas or nays.  I don't
>> feel this is solely core's decision anyway ... what do the assembled
>> hackers think?

> I'm not aware of a recent example of short development cycles working
> well in this project.

Granted, but we haven't tried very hard either.

> I think the proper fix for the ARC issue is an 8.0.x release with a new
> replacement policy. To avoid introducing instability into 8.0, we should
> obviously test the new buffer replacement policy *very* carefully.

That testing isn't going to magically appear from somewhere.  Unless the
proposed fix is only a very small variation on what we have (which seems
unlikely to get around the patent), I wouldn't have any confidence in it
until it's at least survived an 8.1 beta cycle.  So I don't believe in
the concept of a near-term 8.0.x fix while 8.1 slides along on a slow
devel schedule.

What this really boils down to is whether we think we have
order-of-a-year before the patent is issued.  I'm nervous about
assuming that.  I'd like to have a plan that will produce a tested,
credible patch in less than six months.

			regards, tom lane

From: Simon Riggs <simon(at)2ndquadrant(dot)com>
To: Neil Conway <neilc(at)samurai(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>,"Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>,Jeff Davis <jdavis-pgsql(at)empires(dot)org>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-19 08:20:16
Message-ID: 1106122816.14384.330.camel@localhost.localdomain (view raw)
On Wed, 2005-01-19 at 16:25 +1100, Neil Conway wrote:
> On Tue, 2005-01-18 at 23:26 -0500, Tom Lane wrote:
> > Not yet --- I suggested it but didn't get any yeas or nays.  I don't
> > feel this is solely core's decision anyway ... what do the assembled
> > hackers think?
> 
> I'm not sure it's a great idea.

It's not, but may still be required. We should defer any changes for a
month, just to see if its feasible to do that.

> I think the proper fix for the ARC issue is an 8.0.x release with a new
> replacement policy. To avoid introducing instability into 8.0, we should
> obviously test the new buffer replacement policy *very* carefully.

Agreed.

I prefer a plan that, if required, back ports NewStrategy to 8.0.x than
one that hobbles 8.1, just in case.

> However, I think the ARC replacement should *not* be a fundamental
> change in behavior: the algorithm should still attempt to balance
> recency and frequency, to adjust dynamically to changes in workload, to
> avoid "sequential flooding", and to allow constant-time page
> replacement. 

Agreed: Those are the requirements. It must also scale better as well.

All of which have sufficient prior art that they could never be seen to
in-themselves form the basis of a patent.

> If such a patch were developed, I don't
> think it would be a herculean task to include it in an 8.0.x release
> after a lot of careful testing and code review.

Agreed.

-- 
Best Regards, Simon Riggs


From: Andreas Pflug <pgadmin(at)pse-consulting(dot)de>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Neil Conway <neilc(at)samurai(dot)com>,"Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>,Jeff Davis <jdavis-pgsql(at)empires(dot)org>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-19 11:33:15
Message-ID: 41EE457B.50301@pse-consulting.de (view raw)
Tom Lane wrote:

> 
> What this really boils down to is whether we think we have
> order-of-a-year before the patent is issued.  I'm nervous about
> assuming that.  I'd like to have a plan that will produce a tested,
> credible patch in less than six months.

Why not having a beta on an 8.0.x version if ARC replacement has to be 
released shortly?

Regards,
Andreas

From: Stephen Frost <sfrost(at)snowman(dot)net>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Neil Conway <neilc(at)samurai(dot)com>,"Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>,Jeff Davis <jdavis-pgsql(at)empires(dot)org>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-19 14:20:13
Message-ID: 20050119142013.GJ10437@ns.snowman.net (view raw)
* Tom Lane (tgl(at)sss(dot)pgh(dot)pa(dot)us) wrote:
> Neil Conway <neilc(at)samurai(dot)com> writes:
> > So is it firm policy that changes that require a catversion update
> > cannot be made during the 8.1 cycle?
> 
> Not yet --- I suggested it but didn't get any yeas or nays.  I don't
> feel this is solely core's decision anyway ... what do the assembled
> hackers think?

Don't know if I count, but I've noticed a number of things that people
are working on that require initdb's and I think they'd be nice to allow
in 8.1 unless the 8.1 cycle is *very* short.  I'd also like to get group
ownership & roles in soon, if possible (and if I find enough time to
finish and properly test it).

> One way to have our cake and eat it too would be for someone to
> resurrect pg_upgrade during this devel cycle.  Anyone feel like
> working on that?

Of course, this would be really nice too..

	Stephen
From: "Matthew T(dot) O'Connor" <matthew(at)zeut(dot)net>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Neil Conway <neilc(at)samurai(dot)com>,"Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>,Jeff Davis <jdavis-pgsql(at)empires(dot)org>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-19 16:50:33
Message-ID: 41EE8FD9.7080309@zeut.net (view raw)
Tom Lane wrote:

>Neil Conway <neilc(at)samurai(dot)com> writes:
>  
>
>>So is it firm policy that changes that require a catversion update
>>cannot be made during the 8.1 cycle?
>>    
>>
>
>Not yet --- I suggested it but didn't get any yeas or nays.  I don't
>feel this is solely core's decision anyway ... what do the assembled
>hackers think?
>

My personal goal for 8.1 is to get autovacuum integrated into the 
backend.  The patch I submitted during the 8.0 dev cycle required a new 
system table for autovacuum data.  Anyway we could get around that 
without bumping catversion?  Perhaps the vacuum daemon could add the 
table if it's not found?





From: Hannu Krosing <hannu(at)tm(dot)ee>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Neil Conway <neilc(at)samurai(dot)com>,"Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>,Jeff Davis <jdavis-pgsql(at)empires(dot)org>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-20 00:06:03
Message-ID: 1106179563.8151.8.camel@fuji.krosing.net (view raw)
Ühel kenal päeval (kolmapäev, 19. jaanuar 2005, 00:39-0500), kirjutas
Tom Lane:
> What this really boils down to is whether we think we have
> order-of-a-year before the patent is issued.  I'm nervous about
> assuming that.  I'd like to have a plan that will produce a tested,
> credible patch in less than six months.

Can't this thing be abstracted out like so many other things are (types,
functions, pl-s) or should be/were once (storage managers) ?

Like different scheduling algorithms in the linux kernel ?

What makes this inherently so difficult to do ? 

Is it just testing or something for fundamental?

Most likely also the gathering of information needed to decide on
replacement policy.

If just testing, we could move fast to supplying two algos LRU/ARC ,
selectable at startup. 

This has extra benefit of allowing easily testing other algorithms - I
guess that for unpredictable workloads a random policy in 80% tail of
LRU cache should not do too badly, probably better than 7.x's seqscan
polluteable LRU ;)


-- 
Hannu Krosing <hannu(at)tm(dot)ee>

From: Hannu Krosing <hannu(at)tm(dot)ee>
To: "Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>,Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>,Andrew Sullivan <ajs(at)crankycanuck(dot)ca>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-20 00:34:17
Message-ID: 1106181257.8151.31.camel@fuji.krosing.net (view raw)
Ühel kenal päeval (esmaspäev, 17. jaanuar 2005, 11:57-0800), kirjutas
Joshua D. Drake:
> >However, I don't want to be beholden to IBM indefinitely --- in five
> >years their corporate strategy might change.  I think that a reasonable
> >response to this is to plan to get rid of ARC, or at least modify the
> >code enough to avoid the patent, in time for 8.1.  (It's entirely likely
> >that that will happen before the patent issues, anyway.)
> >
> >			regards, tom lane
> >  
> >
> IBM makes 20% of their money from licensing patents.

OTOH they make >80% of their goodwill in OS community out of being nice
to opensource projects. Or at least avoiding being seen as downright
unfair. So I expect at least some civility from them if and when thei
get the patent.

I'm also suspect that PG "possibly infringes" on enough already granted
patents (some likely owned by IBM) to at least get it into as much
trouble as SCO has caused to IBM. 

The reason we havent seen any IBM lawyers is that demanding royalties
from "PostgreSQL Global Development Group" would be bad publicity, not
thet they could not have done it if PG were a product of "Mom&Pop
Software Startup Co".

What comes to companies that take PG source, rebrand it and sell as
closed-source product, then they have several options :
 1) just wait and hope that the public version evolves past ARC patent
    before the patent is granted.
 2) licence the patent from IBM, if and when it is granted
 3) rewrite the part that uses ARC (and if they're really paranoid, 
    then parts bordering it) in their commercial version.
 4) hire some core developers to do 3) in the public version

-- 
Hannu Krosing <hannu(at)tm(dot)ee>


From: Hannu Krosing <hannu(at)tm(dot)ee>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>,Andrew Sullivan <ajs(at)crankycanuck(dot)ca>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-20 00:54:27
Message-ID: 1106182468.8151.38.camel@fuji.krosing.net (view raw)
Ühel kenal päeval (esmaspäev, 17. jaanuar 2005, 14:48-0500), kirjutas
Tom Lane:
> Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> writes:
> > Andrew Sullivan wrote:
> >> What will you do if the patent is granted, 8.0 is out there with the
> >> offending code, and you get a cease-and-desist letter from IBM
> >> demanding the removal of all offending code from the Net?
> 
> > We can modify the code slightly to hopefully avoid the patent.  With the
> > US granting patents on even obvious ideas, I would think that most large
> > software projects, including commercial ones, already have tons of
> > patent violations in their code.  Does anyone think otherwise?
> 
> I think there is zero probability of being sued by IBM in the near
> future.  They would instantly destroy the credibility and good
> relationships they've worked so hard to build up with the entire
> open source community.

Agreed

> However, I don't want to be beholden to IBM indefinitely --- in five
> years their corporate strategy might change.  I think that a reasonable
> response to this is to plan to get rid of ARC, or at least modify the
> code enough to avoid the patent, in time for 8.1.  (It's entirely likely
> that that will happen before the patent issues, anyway.)

I'd rather like a solution where the cache replacement policy has clean-
enough interface to have many competing algorithms/implementations,
probably even selactable at startup (or even runtime ;).

Firstly, I'm sure that there is no single best strategy (even ARC) for
all kinds of workloads  - think OLTP v.s.OLAP.

Secondly, some people might want to use ARC even if and when IBM gets
the patent, even badly enough to license it from IBM. (We are not
obliged to design an interfaces that prevents usage of patented stuff as
this is generally impossible.)

Thirdly, having it as a well-defined component/API might encourage more
research on different algorithms - see how many schedulers linux 2.6
has, both for processes and disk io.

-- 
Hannu Krosing <hannu(at)tm(dot)ee>

From: Neil Conway <neilc(at)samurai(dot)com>
To: Simon Riggs <simon(at)2ndquadrant(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>,"Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>,Jeff Davis <jdavis-pgsql(at)empires(dot)org>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-20 12:17:13
Message-ID: 41EFA149.70505@samurai.com (view raw)
Simon Riggs wrote:
>>However, I think the ARC replacement should *not* be a fundamental
>>change in behavior: the algorithm should still attempt to balance
>>recency and frequency, to adjust dynamically to changes in workload, to
>>avoid "sequential flooding", and to allow constant-time page
>>replacement.
> 
> Agreed: Those are the requirements. It must also scale better as well.

On thinking about this more, I'm not sure these are the right goals for 
an 8.0.x replacement algorithm. For 8.1 we should definitely Do The 
Right Thing and develop a complete ARC replacement. For 8.0.x, I wonder 
if it would be better to just replace ARC with LRU. The primary 
advantage to doing this is LRU's simplicity -- if we're concerned about 
introducing regressions in stability into 8.0, this is likely the best 
way to reduce the chance of that happening. Furthermore, LRU's behavior 
with PostgreSQL is well-known and has been extensively tested. A complex 
ARC replacement would receive even less testing than ARC itself has 
received -- which isn't a whole lot, in comparison with LRU.

Of course, the downside is that we lose the benefits of ARC or an 
ARC-like algorithm in 8.0. That would be unfortunate, but I don't think 
it is a catastrophe. The other bufmgr-related changes (vacuum hints, 
bgwriter and vacuum delay) should ensure that VACUUM still has a much 
reduced impact on system performance. Sequential scans will still flood 
the cache, but I don't view that as an enormous problem. In other words, 
I think a more intelligent replacement policy would be nice to have, but 
at this point in the 8.0 development cycle we should go with the 
simplest solution that we know is likely to work -- namely, LRU.

-Neil

From: Hannu Krosing <hannu(at)tm(dot)ee>
To: Neil Conway <neilc(at)samurai(dot)com>
Cc: Simon Riggs <simon(at)2ndquadrant(dot)com>,Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>,"Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>,Jeff Davis <jdavis-pgsql(at)empires(dot)org>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-21 00:31:40
Message-ID: 1106267500.5706.24.camel@fuji.krosing.net (view raw)
Ühel kenal päeval (neljapäev, 20. jaanuar 2005, 23:17+1100), kirjutas
Neil Conway:
> Simon Riggs wrote:
> >>However, I think the ARC replacement should *not* be a fundamental
> >>change in behavior: the algorithm should still attempt to balance
> >>recency and frequency, to adjust dynamically to changes in workload, to
> >>avoid "sequential flooding", and to allow constant-time page
> >>replacement.
> > 
> > Agreed: Those are the requirements. It must also scale better as well.
> 
> On thinking about this more, I'm not sure these are the right goals for 
> an 8.0.x replacement algorithm. For 8.1 we should definitely Do The 
> Right Thing and develop a complete ARC replacement. For 8.0.x, I wonder 
> if it would be better to just replace ARC with LRU. The primary 
> advantage to doing this is LRU's simplicity -- if we're concerned about 
> introducing regressions in stability into 8.0, this is likely the best 
> way to reduce the chance of that happening. Furthermore, LRU's behavior 
> with PostgreSQL is well-known and has been extensively tested. 

If we are going the "simple" way, i have two simple suggestions:

1) We should do something about seqscans polluting LRU - perhaps insert
pages brought into memory by seqscan near the end of LRU list. Or just
swich off postgresqls internal cachin alltogether when doing seqscans
and rely on underlying systems caching entirely (as we cant switch it
off anyway)

2) Another simple, but nondeterministic, hack would be using randomness,
i.e. 

  2.1) select a random buffer in LR side half (or 30% or 60%) of 
       for replacement. 

  2.2) dont last accessed pages to top of LRU list immediately, 
       just push them uphill some amount, either random, or 
       perhaps 1/2 the way to top at each access.

This should be quite qood strategy for avoiding disastrous failings on
specific pathological workloads, at the cost of less than optimal
behaviour in easily analysed standard cases.

> Of course, the downside is that we lose the benefits of ARC or an 
> ARC-like algorithm in 8.0. That would be unfortunate, but I don't think 
> it is a catastrophe. 

The only case this would be a catastrophe, is for production OLTP
workloads that did fine with ARC but get overloaded when using LRU.

> The other bufmgr-related changes (vacuum hints, 
> bgwriter and vacuum delay) should ensure that VACUUM still has a much 
> reduced impact on system performance. Sequential scans will still flood 
> the cache, but I don't view that as an enormous problem. 

Has anobody some insight, how does linux kernel level disk cache solve
this "sequencial scan/read pollutes cache" problem ?


-- 
Hannu Krosing <hannu(at)tm(dot)ee>

From: Simon Riggs <simon(at)2ndquadrant(dot)com>
To: Neil Conway <neilc(at)samurai(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>,"Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>,Jeff Davis <jdavis-pgsql(at)empires(dot)org>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-21 01:26:21
Message-ID: 1106270782.30175.34.camel@localhost.localdomain (view raw)
On Thu, 2005-01-20 at 23:17 +1100, Neil Conway wrote:
> Simon Riggs wrote:
> >>However, I think the ARC replacement should *not* be a fundamental
> >>change in behavior: the algorithm should still attempt to balance
> >>recency and frequency, to adjust dynamically to changes in workload, to
> >>avoid "sequential flooding", and to allow constant-time page
> >>replacement.
> > 
> > Agreed: Those are the requirements. It must also scale better as well.
> 
> For 8.1 we should definitely Do The 
> Right Thing and develop a complete ARC replacement. 

Agreed. That would be my focus.

> For 8.0.x, I wonder 
> if it would be better to just replace ARC with LRU. The primary 
> advantage to doing this is LRU's simplicity -- if we're concerned about 
> introducing regressions in stability into 8.0, this is likely the best 
> way to reduce the chance of that happening. Furthermore, LRU's behavior 
> with PostgreSQL is well-known and has been extensively tested. A complex 
> ARC replacement would receive even less testing than ARC itself has 
> received -- which isn't a whole lot, in comparison with LRU.
> 
> Of course, the downside is that we lose the benefits of ARC or an 
> ARC-like algorithm in 8.0. That would be unfortunate, but I don't think 
> it is a catastrophe. The other bufmgr-related changes (vacuum hints, 
> bgwriter and vacuum delay) should ensure that VACUUM still has a much 
> reduced impact on system performance. Sequential scans will still flood 
> the cache, but I don't view that as an enormous problem. In other words, 
> I think a more intelligent replacement policy would be nice to have, but 
> at this point in the 8.0 development cycle we should go with the 
> simplest solution that we know is likely to work -- namely, LRU.

Agree with everything apart from the idea that seq scan flooding isn't
an issue. I definitely think it is.

-- 
Best Regards, Simon Riggs


From: Neil Conway <neilc(at)samurai(dot)com>
To: Simon Riggs <simon(at)2ndquadrant(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>,"Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>,Jeff Davis <jdavis-pgsql(at)empires(dot)org>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-21 02:52:28
Message-ID: 1106275948.22946.266.camel@localhost.localdomain (view raw)
On Fri, 2005-01-21 at 01:26 +0000, Simon Riggs wrote:
> Agree with everything apart from the idea that seq scan flooding isn't
> an issue. I definitely think it is.

I agree it's an issue, I just don't think it's an issue of sufficient
importance that it needs to be solved in the 8.0.x timeframe.

In any case, I'll take a look at developing a patch to replace ARC with
LRU. If it's possible to solve sequential flooding (e.g. via some kind
of hint-based approach) without too much complexity, we could add that
to the patch down the line.

-Neil



From: Mark Kirkwood <markir(at)coretech(dot)co(dot)nz>
To: Simon Riggs <simon(at)2ndquadrant(dot)com>
Cc: Neil Conway <neilc(at)samurai(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>,"Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>,Jeff Davis <jdavis-pgsql(at)empires(dot)org>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-21 02:55:06
Message-ID: 41F06F0A.4040609@coretech.co.nz (view raw)
Simon Riggs wrote:
> On Thu, 2005-01-20 at 23:17 +1100, Neil Conway wrote:
> (snippage)
>>For 8.0.x, I wonder 
>>if it would be better to just replace ARC with LRU.
>>
>> Sequential scans will still flood 
>>the cache, but I don't view that as an enormous problem. 
> 
> Agree with everything apart from the idea that seq scan flooding isn't
> an issue. I definitely think it is.
> 
Is it feasible to consider LRU + a free-behind or seqscan hint type of 
replacement policy?

regards

Mark


From: Manfred Koizar <mkoi-pg(at)aon(dot)at>
To: Hannu Krosing <hannu(at)tm(dot)ee>
Cc: Neil Conway <neilc(at)samurai(dot)com>,Simon Riggs <simon(at)2ndquadrant(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>,"Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>,Jeff Davis <jdavis-pgsql(at)empires(dot)org>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-21 14:42:38
Message-ID: qo42v01e2jlesq1f7at1h92b47943rfeu8@email.aon.at (view raw)
On Fri, 21 Jan 2005 02:31:40 +0200, Hannu Krosing <hannu(at)tm(dot)ee> wrote:
>2) Another simple, but nondeterministic, hack would be using randomness,
>i.e. 
>
>  2.1) select a random buffer in LR side half (or 30% or 60%) of 
>       for replacement. 
>
>  2.2) dont last accessed pages to top of LRU list immediately, 
>       just push them uphill some amount, either random, or 
>       perhaps 1/2 the way to top at each access.

Sounds good, but how do find the middle of a linked list?  Or the other
way round:  Given a list element, how do you find out its position in a
linked list?  So the only approach that is easily implementable is

2.3) If a sequential scan hint flag is set, put the buffer into the
     free list at a random position.

Servus
 Manfred

From: Kenneth Marshall <ktm(at)it(dot)is(dot)rice(dot)edu>
To: Manfred Koizar <mkoi-pg(at)aon(dot)at>
Cc: Hannu Krosing <hannu(at)tm(dot)ee>, Neil Conway <neilc(at)samurai(dot)com>,Simon Riggs <simon(at)2ndquadrant(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>,"Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>,Jeff Davis <jdavis-pgsql(at)empires(dot)org>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-21 14:57:28
Message-ID: 20050121145728.GE6207@it.is.rice.edu (view raw)
On Fri, Jan 21, 2005 at 03:42:38PM +0100, Manfred Koizar wrote:
> On Fri, 21 Jan 2005 02:31:40 +0200, Hannu Krosing <hannu(at)tm(dot)ee> wrote:
> >2) Another simple, but nondeterministic, hack would be using randomness,
> >i.e. 
> >
> >  2.1) select a random buffer in LR side half (or 30% or 60%) of 
> >       for replacement. 
> >
> >  2.2) dont last accessed pages to top of LRU list immediately, 
> >       just push them uphill some amount, either random, or 
> >       perhaps 1/2 the way to top at each access.
> 
> Sounds good, but how do find the middle of a linked list?  Or the other
> way round:  Given a list element, how do you find out its position in a
> linked list?  So the only approach that is easily implementable is
> 
> 2.3) If a sequential scan hint flag is set, put the buffer into the
>      free list at a random position.
> 

If we use the clock algorithm as an approximation to LRU, we can avoid
a lot of the MRU/LRU churn. Then the seq. scan hint could just be another
type of clock bit.

Ken

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Neil Conway <neilc(at)samurai(dot)com>,"Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>,Jeff Davis <jdavis-pgsql(at)empires(dot)org>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-21 17:59:01
Message-ID: 200501211759.j0LHx1625784@candle.pha.pa.us (view raw)
Tom Lane wrote:
> Neil Conway <neilc(at)samurai(dot)com> writes:
> > On Mon, 2005-01-17 at 18:43 -0500, Tom Lane wrote:
> >> I have already
> >> suggested to core that we should insist on 8.1 not requiring an initdb,
> >> so as to ensure that people will migrate up to it easily from 8.0.
> 
> > So is it firm policy that changes that require a catversion update
> > cannot be made during the 8.1 cycle?
> 
> Not yet --- I suggested it but didn't get any yeas or nays.  I don't
> feel this is solely core's decision anyway ... what do the assembled
> hackers think?

I am not in favor of adjusting the 8.1 release based solely on this
patent issue.  I think the probability of the patent being accepted and
enforced against anyone using PostgreSQL to be very unlikely.  I would
also like to come up with a procedure that would scale to any other
patent problems we might have.  What if someone finds another patent
problem during 8.1 beta?  Do we shorten the 8.2 development cycle too?

What I would like to do is to pledge that we will put out an 8.0.X to
address any patent conflict experienced by our users.  This would
include ARC or anything else.  This way we don't focus just on ARC but
have a plan for any patent issues that appear, and we don't have to
adjust our development cycle until an actual threat appears.

One advantage we have is that we can easily adjust our code to work
around patented code by just installing a new binary.  (Patents that
affect our storage format would be more difficult.  A fix would have to
perhaps rewrite the on-disk data.)

One problem in working around the GIF format patent is that you had to
create a file that was readable by many of the existing GIF readers. 
With PostgreSQL, only we read our own data files so we can more easily
make adjustments to avoid patents.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman(at)candle(dot)pha(dot)pa(dot)us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

From: Hannu Krosing <hannu(at)tm(dot)ee>
To: Manfred Koizar <mkoi-pg(at)aon(dot)at>
Cc: Neil Conway <neilc(at)samurai(dot)com>,Simon Riggs <simon(at)2ndquadrant(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>,"Joshua D(dot) Drake" <jd(at)commandprompt(dot)com>,Jeff Davis <jdavis-pgsql(at)empires(dot)org>,pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ARC patent
Date: 2005-01-23 10:27:32
Message-ID: 1106476052.418.9.camel@fuji.krosing.net (view raw)
Ühel kenal päeval (reede, 21. jaanuar 2005, 15:42+0100), kirjutas
Manfred Koizar:
> On Fri, 21 Jan 2005 02:31:40 +0200, Hannu Krosing <hannu(at)tm(dot)ee> wrote:
> >2) Another simple, but nondeterministic, hack would be using randomness,
> >i.e. 
> >
> >  2.1) select a random buffer in LR side half (or 30% or 60%) of 
> >       for replacement. 
> >
> >  2.2) dont last accessed pages to top of LRU list immediately, 
> >       just push them uphill some amount, either random, or 
> >       perhaps 1/2 the way to top at each access.
> 
> Sounds good, but how do find the middle of a linked list?

Ok, we are back to using 2 lists - one for 1st and one for 2nd half and
spill the tail of 1st list over to 2nd when it growns.
But the fundamental fact of using two lists seems to be the first claim
in IBM's patent ;(
Not that I think that using 2 lists to know where the midpoint of linked
list is is patentable, but if we deside start acting scared of all
things in patent applications then we should be aware of it.

>   Or the other
> way round:  Given a list element, how do you find out its position in a
> linked list?  

To know an *approximate* position, we could 
1) have an independent periodic process that just scans the list and
records the position
2) each node inserted at head or tail is recorded true position
3) each node inserted in middle is given the same position as its
predecessor.
This would not be too expensive, but OTOH I can't think of a way to use
this onfo right now. An additional array of node pointers in list order
populated in step 1) could have more use.


> So the only approach that is easily implementable is
> 
> 2.3) If a sequential scan hint flag is set, put the buffer into the
>      free list at a random position.

-- 
Hannu Krosing <hannu(at)tm(dot)ee>


Privacy Policy | About PostgreSQL
Copyright © 1996-2013 The PostgreSQL Global Development Group