US 9,811,662 B2
Performing anti-virus checks for a distributed filesystem
Richard Sharpe, Mountain View, CA (US); and Randy Yen-pang Chou, San Jose, CA (US)
Assigned to PANZURA, INC., Campbell, CA (US)
Filed by Panzura, Inc., Campbell, CA (US)
Filed on Sep. 5, 2013, as Appl. No. 14/19,212.
Application 14/019,212 is a continuation in part of application No. 13/971,621, filed on Aug. 20, 2013.
Application 13/971,621 is a continuation in part of application No. 12/772,806, filed on May 3, 2010, granted, now 8,719,444.
Application 12/772,806 is a continuation in part of application No. 13/782,729, filed on Mar. 1, 2013.
Application 13/782,729 is a continuation in part of application No. 13/769,185, filed on Feb. 15, 2013.
Application 13/769,185 is a continuation in part of application No. 13/725,738, filed on Dec. 21, 2012, granted, now 8,799,413.
Application 13/725,738 is a continuation in part of application No. 12/772,927, filed on May 3, 2010, granted, now 8,341,363, issued on Dec. 25, 2012.
Application 12/772,927 is a continuation in part of application No. 13/225,194, filed on Sep. 2, 2011, granted, now 8,356,016, issued on Jan. 15, 2013.
Application 13/225,194 is a continuation in part of application No. 13/295,844, filed on Nov. 14, 2011, granted, now 8,788,628.
Prior Publication US 2014/0007239 A1, Jan. 2, 2014
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 15/16 (2006.01); G06F 21/56 (2013.01); G06F 17/30 (2006.01)
CPC G06F 21/561 (2013.01) [G06F 17/30097 (2013.01); G06F 17/30159 (2013.01); G06F 17/30203 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A computer-implemented method for performing file checks for a distributed filesystem, the method comprising:
collectively managing the data of the distributed filesystem using two or more cloud controllers, wherein collectively managing the data comprises:
storing the data for the distributed filesystem in a cloud storage system, wherein the cloud controllers cache and ensure data consistency for data stored in the cloud storage system;
maintaining in each cloud controller a metadata hierarchy that reflects the current state of the distributed filesystem, wherein changes to the metadata for the distributed filesystem are synchronized across the cloud controllers,
wherein the metadata hierarchy in the cloud controller tracks the location of distributed filesystem data blocks in the cloud storage system and cached distributed filesystem data blocks in the cloud controller, wherein the cloud controller uses the metadata hierarchy to locate and download requested, uncached data blocks in the distributed filesystem from the cloud storage system, wherein the file data for the distributed filesystem is stored in the cloud storage systems, wherein cloud controllers cache in their local storage devices a subset of the file data from the cloud storage system that is being actively accessed by each respective cloud controller's clients;
upon receiving at a cloud controller a write request from a client system that seeks to store a target file in the distributed filesystem, sending an incremental metadata snapshot containing metadata for the target file from the cloud controller to the other cloud controllers for the distributed filesystem;
wherein a third cloud controller that is associated with scanning operations uses the incremental metadata snapshot to retrieve the target file from the cloud storage system and initiates a scan for the target file, wherein the third cloud controller is co-located with the cloud storage system and geographically distinct and separate from the cloud controller receiving the target file and the client system;
wherein the third cloud controller determines that the target file has been successfully scanned and sends a subsequent incremental metadata snapshot indicating that the target file has been scanned to the other cloud controllers of the distributed filesystem;
wherein a second cloud controller receiving a client request to access the target file uses the contents of the subsequent incremental metadata snapshot to confirm that the target file has been scanned before allowing access to the target file.