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 patent document, patent "claims" are 
what we should pay our greatest attention.  According to the following citation 
from the IP guide by Software Freedom Law Center (SFLC) [1], software infringes 
a patent if it implements everything of any claim, 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 invention as 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 stated or 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 clock or logical one.


--------------------------------------------------
11. A method comprising:
receiving information relating to a distributed database transaction operating 
on data in data stores associated with respective participating nodes 
associated with the distributed database transaction;
requesting commit time votes from the respective participating nodes, the 
commit time votes reflecting local clock values of 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 participating nodes; and
synchronizing commitment of the distributed database transaction at the 
respective participating nodes to the global commit timestamp,
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 the distributed 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 by respective 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 technologies overlap 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

Reply via email to