IP Library Granted Patent US 11,169,714
Granted Patent B1
US 11,169,714 · App. 14/970,480 · Granted Nov 9, 2021

Efficient file replication

Inventors: Kong Li (Los Altos, CA); Robert Petri (Santa Clara, CA); Nitin Parab (Palo Alto, CA)
Assignee: eFolder, Inc.
G06F3/0619G06F3/064G06F3/065G06F3/067G06F3/0643G06F3/0656
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,169,714
App. No.
14/970,480
Granted
Nov 9, 2021
Kind
B1
Abstract

Systems, methods, and media for efficient file replication are provided herein. According to some embodiments, exemplary methods may include detecting a write operation occurring within an operating system of the computing system, identifying block parameters for the write operation, as well as one or more of buffering and batching the write operation, and transmitting the write operation to a replication receiver system.

Claims (44)

1. A computing device, comprising:

a filter driver installed within a layer of an operating system of the computing device, the filter driver being configured to:

establish a buffer from free memory of the computing device based on a size of the free memory, wherein a size of the buffer is smaller when the size of the free memory of the computing device is below a threshold;

reduce an initial established size of the buffer to make the size of the buffer smaller when the size of the free memory of the computing device is below the threshold;

detect write operations to a memory of the computing device occurring in the operating system;

determine, for each of the detected write operations, block parameters of each of detected write operations;

dynamically adjust the size of the buffer according to the free memory of the computing device;

store the determined block parameters in the buffer;

transmit, on a schedule with a variable frequency determined based on the size of the buffer, the determined block parameters to a filter driver controller of a replication receiver system from the buffer, wherein the replication receiver system maintains a snapshot corresponding to the computing device based on the determined block parameters, wherein the variable frequency increases as the size of the buffer decreases; and

change the schedule based on meeting a network congestion threshold.

2. The computing device according to claim 1 , wherein the dynamic adjustment of the size of the buffer depends on computing resources available for the computing system.

3. The computing device according to claim 1 , wherein the filter driver is further configured to:

obtain a snapshot of the computing device; and

obtain actual changed data blocks from the snapshot using the determined block parameters.

4. The computing device according to claim 1 , wherein the filter driver is further configured to create a historical activity log of the write operations and measurements of computing resources of the computing device over a period of time.

5. The computing device according to claim 4 , wherein the filter driver is further configured to create a buffer schedule based on the historical activity log.

6. The computing device according to claim 5 , wherein the historical activity log further compromises offsets, lengths and sizes of the write operations.

7. The computing device according to claim 1 , wherein the write operations are overlapping write operations and the filter driver is further configured to merge the determined block parameters of the overlapping write operations together.

8. The computing device according to claim 1 , wherein the filter driver is further configured to transmit the determined block parameters to the replication receiver system synchronously or asynchronously.

9. A method, comprising:

providing a filter driver for installation within a layer of an operating system of a computing device;

establishing a buffer from free memory on the computing device, wherein a size of the buffer is smaller when the size of the free memory of the computing device is below a threshold;

reducing an initial established size of the buffer to make the size of the buffer smaller when the size of the free memory of the computing device is below the threshold;

detecting write operations occurring in the operating system using the filter driver;

determining, for each of the detected write operations, block parameters of each of the detected write operations;

dynamically adjusting the size of the buffer according to the free memory of the computing device;

storing the determined block parameters in the buffer; and

transmitting, on a schedule with a variable frequency determined based on the size of the buffer, the determined block parameters to a filter driver controller of a replication receiver system, wherein the replication receiver system maintains a snapshot corresponding to the computing device based on the block parameters, wherein the variable frequency increases as the size of the buffer decreases; and

changing the schedule based on meeting a network congestion threshold.

10. The method according to claim 9 , further comprising:

requesting actual changed data blocks from the filter driver;

receiving the actual changed data blocks from the filter driver; and

storing the actual changed data blocks in the replication receiver system.

11. The method according to claim 9 , further comprising:

obtaining a snapshot of the computing device; and

obtaining actual changed data blocks from the snapshot using the determined block parameters.

12. The method according to claim 9 , further comprising creating a historical activity log of the write operations and measurements of computing resources of the computing device over a period of time.

13. The method according to claim 12 , further comprising creating a buffer schedule based on the historical activity log and transmitting the determined block parameters according to the buffer schedule.

14. The method according to claim 13 , wherein the historical activity log further comprises offsets, lengths and sizes of the write operations.

15. The method according to claim 9 , further comprising merging the determined block parameters together when the write operations are overlapping write operations.

16. The computing device of claim 1 , wherein the filter driver is further configured to transmit the determined block parameters by batch transmitting all determined block parameters in the buffer according to a buffering schedule.

17. The computing device of claim 16 , wherein the filter driver is further configured to adjust the buffering schedule to increase a frequency of transmissions.

18. The computing device of claim 1 , wherein the filter driver is further configured to combine write operations by at least one of: coalescing, merging, and removing redundancy across multiple write operations.

19. The method of claim 9 , further comprising updating an incremental file based on the block parameters of each of the detected write operations.

Assignments (13)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 19, 2025
From: SKYKICK, LLC; EFOLDER, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 070268/0489 →
RELEASE OF SECURITY INTEREST Recorded Sep 24, 2024
From: U.S. BANK NATIONAL ASSOCIATION FORMERLY MUFG UNION BANK, N.A.
To: EFOLDER, INC.
Reel/Frame 068680/0802 →
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: EFOLDER, INC.
Reel/Frame 061634/0623 →
SECURITY INTEREST Recorded Oct 27, 2022
From: EFOLDER, INC.
To: MUFG UNION BANK, N.A.
Reel/Frame 061559/0703 →
SECURITY INTEREST Recorded Jan 8, 2018
From: EFOLDER, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 044563/0633 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2017
From: AXCIENT HOLDINGS, LLC
To: EFOLDER, INC.
Reel/Frame 044370/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2017
From: AXCIENT, INC.
To: AXCI (AN ABC) LLC
Reel/Frame 044367/0507 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2017
From: AXCI (AN ABC) LLC
To: AXCIENT HOLDINGS, LLC
Reel/Frame 044368/0556 →
RELEASE OF SECURITY INTEREST Recorded Oct 11, 2017
From: STRUCTURED ALPHA LP
To: AXCIENT, INC.
Reel/Frame 043840/0227 →
RELEASE OF SECURITY INTEREST Recorded Jul 26, 2017
From: SILVER LAKE WATERMAN FUND, L.P.
To: AXCIENT, INC.
Reel/Frame 043106/0389 →
SECURITY INTEREST Recorded Jun 2, 2017
From: AXCIENT, INC.
To: SILVER LAKE WATERMAN FUND, L.P.
Reel/Frame 042577/0901 →
SECURITY INTEREST Recorded May 31, 2017
From: AXCIENT, INC.
To: STRUCTURED ALPHA LP
Reel/Frame 042542/0364 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2016
From: LI, KONG; PETRI, ROBERT; PARAB, NITIN
To: AXCIENT, INC.
Reel/Frame 037496/0178 →
Continuity (1)
Continuation 13671498 · Nov 7, 2012