IP Library › Granted Patent US 12,189,582
Granted Patent B2
US 12,189,582 · App. 18/320,705 · Granted Jan 7, 2025

Real-time data replication in a multiple availability zone cloud platform

Inventors: Stoyan Zhivkov Boshev (Sofia, BG); Stoyan Ivanov Veleshki (Sofia, BG); Nikolay Georgiev Kabadzhov (Sofia, BG); Diyan Asparuhov Yordanov (Sofia, BG); Nikola Angelov Popov (Sofia, BG)
Assignee: SAP SE
G06F16/178G06F9/544G06F16/273G06F16/275
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 12,189,582
App. No.
18/320,705
Filed
May 19, 2023
Granted
Jan 7, 2025
Kind
B2
Art Unit
2161
USPC
707/611
Abstract

The present disclosure relates to computer-implemented methods, software, and systems for managing data replication. A request associated with storing content of a file is received at a storage service provided by in a multiple availability zone cloud platform. A lock request is sent to an in-memory data grid at a first instance of the storage service to lock the file for accessing. An input stream of the file is received at the persistence interface to be read iteratively in portions. A read portion of the file is iteratively stored in a first file system storage associated with instances of the storage service at a first availability zone. The portions of the file are provided iteratively to a replication executor at the first instance of the storage service to request replication of the content of the file into a second file storage of a second availability zone of the cloud platform.

Claims (73)

1. A computer-implemented method for managing data replication in a multiple availability zone cloud environment, the method comprising:

receiving a first request associated with storing content of a file at a storage service provided by a multiple availability zone cloud platform;

receiving, at a persistence interface, an input stream including the content of the file based on the first request;

in response to storing one or more portions of the file at a first file storage at a first availability zone, providing, through the persistence interface, the stored one or more portions of the file to a replication executor at a first instance of the storage service to request storing of a stored portion of the file at a second file storage at a second availability zone in iterations; and

in response to determining that a mode of replication is synchronous for a first iteration of the iterations,

locking the file for accessing at the first file storage; and

providing, by the replication executor, a second request to store the stored portion of the input stream to the first file storage at the first availability zone to a replication interface of a second instance of the storage service at the second availability zone.

2. The method of claim 1 , wherein the first request is from a user, and wherein the first request is received at the persistence interface instantiated at the first instance of the storage service, wherein the first instance of the storage service is running at the first availability zone of the multiple availability zone cloud platform, wherein the user is associated with instances running at the first availability zone as primary storage service instances, wherein the multiple availability zone cloud platform includes at least two availability zones, where the storage service is executed with at least two instances at each of the availability zones, and wherein the storage service provides bi-directional replication between instances of the storage service running at the at least two availability zones to maintain synchronized content at corresponding file storages.

3. The method of claim 1 , comprising:

storing, by the replication interface of the first instance and the second instance of the storage service, the content of the file at respectively the first file storage and the second file storage, wherein storing includes at least one of adding, updating, modifying of content of the file.

4. The method of claim 1 , further comprising:

receiving a delete request associated with the file at the first instance of the storage service;

in response to receiving the delete request,

sending a lock request through the persistence interface to an in-memory data grid at the first instance of the storage service to lock the file for accessing;

sending an instruction for execution of a delete operation to delete the file at the first file storage; and

sending a third request, by the replication executor, to the replication interface of the second instance of the storage service at the second availability zone to delete the file at the second file storage; and

in response to determining that deleting at the second file storage is executed successfully, sending a delete request to the in-memory data grid at the first instance of the storage service to delete metadata stored for the file.

5. The method of claim 1 , wherein the stored portion of the file is provided to the replication executor for replication at the second availability zone in parallel to reading a subsequent portion of the input stream by the persistence interface.

6. The method of claim 1 , wherein the persistence interface is an application programming interface (API) implemented at the first instance of the storage service, and wherein the first request is dispatched for receiving by the first instance of the storage service based on load balancing rules defined for the multiple availability zone cloud platform.

7. The method of claim 1 , further comprising:

in response to determining that the mode of replication is synchronous on each iteration, providing iteratively each of the portions of the input stream to the replication interface of the second instance of the storage service to replicate the stored content at the first file storage of the first availability zone to the second file storage of the second availability zone.

8. The method of claim 1 , further comprising:

in response to determining that a provided portion for replication at the second file storage failed to be replicated:

configuring an asynchronous mode of replication for a subsequent iteration for data transfer from the first instance of the storage service at the first availability zone; and

reading and storing subsequent portions of the file to store the content of the file at the first file storage at the first availability zone; and

storing metadata for the file that is stored at the first file storage at the first availability zone, wherein the metadata is stored at an in-memory data grid of the first instance of the storage service, wherein the in-memory data grid of the first instance of the storage service is synchronized with in-memory data grids at other instances of the storage service running at the multiple availability zones cloud platform.

9. The method of claim 8 , further comprising:

in response to determining that the mode of replication is changed to synchronous from a previous asynchronous mode:

reading the metadata for the file;

locking the file for accessing by creating a lock record for the file at the in-memory data grid at the first instance of the storage service;

reading the file at the first file storage; and

replicating the file at the second file storage at the second availability zone by providing the file to the replication interface of the second instance of the storage service at the second availability zone,

wherein the mode of replication is changed to synchronous mode in response to successful replication of at least a portion of stored changes for replication during the asynchronous mode.

10. A non-transitory, computer-readable medium coupled to one or more processors and having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations, the operations comprising:

receiving a first request associated with storing content of a file at a storage service provided by a multiple availability zone cloud platform;

receiving, at a persistence interface, an input stream including the content of the file based on the first request;

in response to storing one or more portions of the file at a first file storage at a first availability zone, providing, through the persistence interface, the stored one or more portions of the file to a replication executor at a first instance of the storage service to request storing of a stored portion of the file at a second file storage at a second availability zone in iterations; and

in response to determining that a mode of replication is synchronous for a first iteration of the iterations,

locking the file for accessing at the first file storage; and

providing, by the replication executor, a second request to store the stored portion of the input stream to the first file storage at the first availability zone to a replication interface of a second instance of the storage service at the second availability zone.

11. The computer-readable medium of claim 10 , wherein the first request is from a user, and wherein the first request is received at the persistence interface instantiated at the first instance of the storage service, wherein the first instance of the storage service is running at the first availability zone of the multiple availability zone cloud platform, wherein the user is associated with instances running at the first availability zone as primary storage service instances, wherein the multiple availability zone cloud platform includes at least two availability zones, where the storage service is executed with at least two instances at each of the availability zones, and wherein the storage service provides bi-directional replication between instances of the storage service running at the at least two availability zones to maintain synchronized content at corresponding file storages.

12. The computer-readable medium of claim 10 , further comprising instructions which when executed by the one or more processors, cause the one or more processors to perform operations, the operations comprising:

storing, by the replication interface of the first instance and the second instance of the storage service, the content of the file at respectively the first file storage and the second file storage, wherein storing includes at least one of adding, updating, modifying of content of the file.

13. The computer-readable medium of claim 10 , further comprising instructions which when executed by the one or more processors, cause the one or more processors to perform operations, the operations comprising:

receiving a delete request associated with the file at the first instance of the storage service;

in response to receiving the delete request,

sending a lock request through the persistence interface to an in-memory data grid at the first instance of the storage service to lock the file for accessing;

sending an instruction for execution of a delete operation to delete the file at the first file storage; and

sending a third request, by the replication executor, to the replication interface of the second instance of the storage service at the second availability zone to delete the file at the second file storage; and

in response to determining that deleting at the second file storage is executed successfully, sending a delete request to the in-memory data grid at the first instance of the storage service to delete metadata stored for the file.

14. The computer-readable medium of claim 10 , wherein the stored portion of the file is provided to the replication executor for replication at the second availability zone in parallel to reading a subsequent portion of the input stream by the persistence interface.

15. The computer-readable medium of claim 10 , wherein the persistence interface is an application programming interface (API) implemented at the first instance of the storage service, and wherein the first request is dispatched for receiving by the first instance of the storage service based on load balancing rules defined for the multiple availability zone cloud platform.

16. The computer-readable medium of claim 10 , further comprising:

in response to determining that the mode of replication is synchronous on each iteration, providing iteratively each of the portions of the input stream to the replication interface of the second instance of the storage service to replicate the stored content at the first file storage of the first availability zone to the second file storage of the second availability zone.

17. A system comprising:

a computing device; and

a computer-readable storage device coupled to the computing device and having instructions stored thereon which, when executed by the computing device, cause the computing device to perform operations, the operations comprising:

receiving a first request associated with storing content of a file at a storage service provided by a multiple availability zone cloud platform;

receiving, at a persistence interface, an input stream including the content of the file based on the first request;

in response to storing one or more portions of the file at a first file storage at a first availability zone, providing, through the persistence interface, the stored one or more portions of the file to a replication executor at a first instance of the storage service to request storing of a stored portion of the file at a second file storage at a second availability zone in iterations; and

in response to determining that a mode of replication is synchronous for a first iteration of the iterations,

locking the file for accessing at the first file storage; and

providing, by the replication executor, a second request to store the stored portion of the input stream to the first file storage at the first availability zone to a replication interface of a second instance of the storage service at the second availability zone.

18. The system of claim 17 , wherein the first request is from a user, and wherein the first request is received at the persistence interface instantiated at the first instance of the storage service, wherein the first instance of the storage service is running at the first availability zone of the multiple availability zone cloud platform, wherein the user is associated with instances running at the first availability zone as primary storage service instances, wherein the multiple availability zone cloud platform includes at least two availability zones, where the storage service is executed with at least two instances at each of the availability zones, and wherein the storage service provides bi-directional replication between instances of the storage service running at the at least two availability zones to maintain synchronized content at corresponding file storages.

19. The system of claim 17 , wherein the computer-readable storage device further comprises instructions which when executed by the computing device, cause the computing device to perform operations, the operations comprising:

storing, by the replication interface of the first instance and the second instance of the storage service, the content of the file at respectively the first file storage and the second file storage, wherein storing includes at least one of adding, updating, modifying of content of the file.

20. The system of claim 17 , wherein the computer-readable storage device further comprises instructions which when executed by the computing device, cause the computing device to perform operations, the operations comprising:

receiving a delete request associated with the file at the first instance of the storage service;

in response to receiving the delete request,

sending a lock request through the persistence interface to an in-memory data grid at the first instance of the storage service to lock the file for accessing;

sending an instruction for execution of a delete operation to delete the file at the first file storage; and

sending a third request, by the replication executor, to the replication interface of the second instance of the storage service at the second availability zone to delete the file at the second file storage; and

in response to determining that deleting at the second file storage is executed successfully, sending a delete request to the in-memory data grid at the first instance of the storage service to delete metadata stored for the file.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 19, 2023
From: BOSHEV, STOYAN ZHIVKOV; VELESHKI, STOYAN IVANOV; KABADZHOV, NIKOLAY GEORGIEV; YORDANOV, DIYAN ASPARUHOV; POPOV, NIKOLA ANGELOV
To: SAP SE
Reel/Frame 063705/0467 →
Continuity (2)
Continuation 17208496 · Mar 22, 2021
Related Publication 20230289328A1 · Sep 14, 2023
References Cited (39)
US 7398285B2 · Kisley · 2008 [cited by applicant]
US 8078922B2 · Yordanov et al. · 2011 [cited by applicant]
US 8527992B2 · Dokovski et al. · 2013 [cited by applicant]
US 9432398B2 · Iliev et al. · 2016 [cited by applicant]
US 9558206B2 · Molaro et al. · 2017 [cited by applicant]
US 9602521B2 · Iliev et al. · 2017 [cited by applicant]
US 9787561B2 · Falco et al. · 2017 [cited by applicant]
US 9826035B2 · Genevski et al. · 2017 [cited by applicant]
US 10275346B2 · Boshev et al. · 2019 [cited by applicant]
US 10474547B2 · McAlister · 2019 [cited by examiner]
US 10528624B2 · Boshev · 2020 [cited by applicant]
US 11182096B1 · Tang et al. · 2021 [cited by applicant]
US 11210009B1 · Freilich et al. · 2021 [cited by applicant]
US 11288138B1 · Freilich et al. · 2022 [cited by applicant]
US 11314717B1 · Certain et al. · 2022 [cited by applicant]
US 11336723B1 · Muniswamy-Reddy et al. · 2022 [cited by applicant]
US 20130086154A1 · Junnarkar et al. · 2013 [cited by applicant]
US 20130339301A1 · Saito et al. · 2013 [cited by applicant]
US 20140244954A1 · Amrhein et al. · 2014 [cited by applicant]
US 20150341283A1 · Oliver et al. · 2015 [cited by applicant]
US 20160140201A1 · Cowling et al. · 2016 [cited by applicant]
US 20160292008A1 · Kumar et al. · 2016 [cited by applicant]
US 20170235645A1 · Theimer et al. · 2017 [cited by applicant]
US 20220019350A1 · Karr · 2022 [cited by applicant]
US 20220019385A1 · Karr et al. · 2022 [cited by applicant]
US 20220147541A1 · Mallipeddi et al. · 2022 [cited by applicant]
US 20220300459A1 · Boshev et al. · 2022 [cited by applicant]
US 20220300531A1 · Boshev et al. · 2022 [cited by applicant]
U.S. Appl. No. 17/067,223, filed Oct. 9, 2020, Boshev. [cited by applicant]
U.S. Appl. No. 17/068,245, filed Oct. 12, 2020, Boshev. [cited by applicant]
U.S. Appl. No. 17/098,618, filed Nov. 16, 2020, Boshev et al. [cited by applicant]
U.S. Appl. No. 17/169,754, filed Feb. 8, 2021, Yousouf et al. [cited by applicant]
U.S. Appl. No. 17/169,787, filed Feb. 8, 2021, Yousouf et al. [cited by applicant]
U.S. Appl. No. 17/170,105, filed Feb. 8, 2021, Yousouf et al. [cited by applicant]
U.S. Appl. No. 17/170,166, filed Feb. 8, 2021, Yousouf et al. [cited by applicant]
Didona et al., “Transactional auto scaler: Elastic scaling of replicated in-memory transactional data grids.” ACM Transactions on Autonomous and Adaptive Systems (TAAS) 9.2, Jul. 2014, 32 pages. [cited by applicant]
Non-Final Office Action in U.S. Appl. No. 17/208,558, dated Aug. 29, 2022, 16 pages. [cited by applicant]
Sebbah et al., “Availability Optimization in Cloud-Based In-Memory Data Grids” In: Rueher, M. (eds) Principles and Practice of Constraint Programming. CP 2016. Lecture Notes in Computer Science, vol. 9892, 42, 2016, 666… [cited by applicant]
Non-Final Office Action in U.S. Appl. No. 18/319,206, mailed on May 3, 2024, 18 pages. [cited by applicant]