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: