RE: Global snapshots - Mailing list pgsql-hackers

From tsunakawa.takay@fujitsu.com
Subject RE: Global snapshots
Date
Msg-id TYAPR01MB2990CAC9CE3D0AA63B45053CFED50@TYAPR01MB2990.jpnprd01.prod.outlook.com
Whole thread Raw
In response to RE: Global snapshots  ("tsunakawa.takay@fujitsu.com" <tsunakawa.takay@fujitsu.com>)
Responses Re: Global snapshots
List pgsql-hackers
Hello,


Fujii-san and I discussed how to move the scale-out development forward.  We are both worried that Clock-SI is
(highly?)likely to infringe the said Microsoft's patent.  So we agreed we are going to investigate the Clock-SI and the
patent,and if we have to conclude that we cannot embrace Clock-SI, we will explore other possibilities.
 

IMO, it seems that Clock-SI overlaps with the patent and we can't use it.  First, looking back how to interpret the
patentdocument, patent "claims" are what we should pay our greatest attention.  According to the following citation
fromthe IP guide by Software Freedom Law Center (SFLC) [1], software infringes a patent if it implements everything of
anyclaim, not all claims.
 


--------------------------------------------------
4.2 Patent Infringement
To prove that you5 infringe a patent, the patent holder must show that you make, use, offer to sell, or sell the
inventionas it is defined in at least one claim of the patent.
 

For software to infringe a patent, the software essentially must implement everything recited in one of the patent�fs
claims.It is crucial to recognize that infringement is based directly on the claims of the patent, and not on what is
statedor described in other parts of the patent document. 
 
--------------------------------------------------


And, Clock-SI implements at least claims 11 and 20 cited below.  It doesn't matter whether Clock-SI uses a physical
clockor logical one.
 


--------------------------------------------------
11. A method comprising:
receiving information relating to a distributed database transaction operating on data in data stores associated with
respectiveparticipating nodes associated with the distributed database transaction;
 
requesting commit time votes from the respective participating nodes, the commit time votes reflecting local clock
valuesof the respective participating nodes;
 
receiving the commit time votes from the respective participating nodes in response to the requesting;
computing a global commit timestamp for the distributed database transaction based at least in part on the commit time
votes,the global commit timestamp reflecting a maximum value of the commit time votes received from the respective
participatingnodes; and
 
synchronizing commitment of the distributed database transaction at the respective participating nodes to the global
committimestamp,
 
wherein at least the computing is performed by a computing device.

20. A method for managing a distributed database transaction, the method comprising:
receiving information relating to the distributed database transaction from a transaction coordinator associated with
thedistributed database transaction;
 
determining a commit time vote for the distributed database transaction based at least in part on a local clock;
communicating the commit time vote for the distributed database transaction to the transaction coordinator;
receiving a global commit timestamp from the transaction coordinator;
synchronizing commitment of the distributed database transaction to the global commit timestamp;
receiving a remote request from a requesting database node corresponding to the distributed database transaction;
creating a local transaction corresponding to the distributed database transaction;
compiling a list of database nodes involved in generating a result of the local transaction and access types utilized
byrespective database nodes in the list of database nodes; and
 
returning the list of database nodes and the access types to the requesting database node in response to the remote
request,
wherein at least the compiling is performed by a computing device.
--------------------------------------------------


My question is that the above claims appear to cover somewhat broad range.  I wonder if other patents or unpatented
technologiesoverlap with this kind of description.
 

Thoughts?


[1]
A Legal Issues Primer for Open Source and Free Software Projects
https://www.softwarefreedom.org/resources/2008/foss-primer.pdf

[2]
US8356007B2 - Distributed transaction management for database systems with multiversioning - Google Patents
https://patents.google.com/patent/US8356007


Regards
Takayuki Tsunakawa


pgsql-hackers by date:

Previous
From: David Fetter
Date:
Subject: Re: Tid scan improvements
Next
From: "tsunakawa.takay@fujitsu.com"
Date:
Subject: RE: Disable WAL logging to speed up data loading