Checkpoint and rewind method and apparatus in serverless platform

KR103021196B1Active Publication Date: 2026-09-16IND ACADEMIC COOP FOUND YONSEI UNIV +1
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
KR1020240065783
Authority / Receiving Office
KR · KR
Patent Type
Patents
Current Assignee / Owner
Filing Date
2024-05-21
Publication Date
2026-09-16
Estimated Expiration
2044-05-21

Smart Images

  • Figure 112024054770867-PAT00001_ABST
    Figure 112024054770867-PAT00001_ABST
Patent Text Reader

Abstract

The present disclosure relates to a checkpoint and rewind method in a serverless platform. The checkpoint and rewind method in a serverless platform comprises the steps of receiving a function execution request in a serverless platform, performing a checkpoint operation on a sandbox associated with the function execution request to save the initial state of the sandbox, and, after the operation corresponding to the function execution request is completed, performing a rewind operation on the sandbox to restore the state of the sandbox to the saved initial state.
Need to check novelty before this filing date? Find Prior Art

Description

Technology Field

[0001] The present disclosure relates to a checkpoint and rewind method and apparatus in a serverless platform, and more specifically to a checkpoint and rewind method and apparatus for removing data residue of a function executed in a serverless platform. Background Technology

[0003] Serverless computing refers to a service model where a cloud service provider offers peripheral application software functions necessary to run core functions. In serverless computing, functions associated with an application are processed within a sandbox, such as a container. In this process, it is crucial to maintain isolation between function requests—that is, statelessness.

[0004] Generally, to maintain statelessness, sandbox initialization is performed after the execution of a previous function and before processing the next function. However, when sandbox initialization is performed, there is a problem where the processing speed of the application is significantly degraded. To solve this problem, warm sandbox technology, which reuses the current sandbox without initializing it, is used; however, warm sandbox technology cannot guarantee complete isolation between function requests, so there is a problem where private data generated or used during function execution may be leaked. The problem to be solved

[0006] The present disclosure provides a checkpoint and rewind method in a serverless platform for solving the above-mentioned problems, a computer program stored on a computer-readable medium, a computer-readable medium on which the computer program is stored, and a device (system). means of solving the problem

[0008] The present disclosure may be implemented in various ways, including a method, an apparatus (system), a computer program stored on a computer-readable medium, or a computer-readable medium on which a computer program is stored.

[0009] According to one embodiment of the present disclosure, a checkpoint and rewind method in a serverless platform performed by at least one processor comprises: receiving a function execution request in the serverless platform; performing a checkpoint operation for a sandbox associated with the function execution request to save the initial state of the sandbox; and, after the operation corresponding to the function execution request is completed, performing a rewind operation for the sandbox to restore the state of the sandbox to the initial state.

[0010] According to one embodiment of the present disclosure, the step of storing an initial state of a sandbox includes the step of storing an initial state of a memory area of ​​a sandbox.

[0011] According to one embodiment of the present disclosure, the step of saving an initial state for a memory area of ​​a sandbox includes the step of copying a page table entry on a source page table onto a buddy page table.

[0012] According to one embodiment of the present disclosure, the step of copying a page table entry on a source page table onto a buddy page table includes the step of applying a CoW algorithm to the source page table and the buddy page table.

[0013] According to one embodiment of the present disclosure, the step of copying a page table entry on an original page table onto a buddy page table includes, if the first page table entry on the original page table is writable, changing the first page table entry to unwritable and copying it to the buddy page table.

[0014] According to one embodiment of the present disclosure, the step of copying a page table entry on an original page table onto a buddy page table further includes the step of maintaining the first page table entry copied to the buddy page table when the first page table entry on the original page table is changed.

[0015] According to one embodiment of the present disclosure, the step of copying a page table entry on a source page table onto a buddy page table includes, when a read fault occurs, copying a second page table entry associated with the read fault onto the source page table and the buddy page table.

[0016] According to one embodiment of the present disclosure, the step of copying a page table entry on an original page table onto a buddy page table includes, in the event that a record failure occurs for a file backup page, copying a third page table entry associated with the file backup page onto the buddy page table to reference the original copy.

[0017] According to one embodiment of the present disclosure, the step of copying a page table entry on an original page table onto a buddy page table includes, when a record failure occurs for an anonymous page, the step of copying a fourth page table entry associated with the anonymous page onto the buddy page table in a writable form.

[0018] According to one embodiment of the present disclosure, the step of performing a rewind operation for a sandbox to restore the state of the sandbox to an initial state includes, when the source page table and the buddy page table share a page frame number of a page table entry, the step of maintaining the page table entry of the source page table that shares the page frame number.

[0019] According to one embodiment of the present disclosure, the step of performing a rewind operation for a sandbox to restore the state of the sandbox to an initial state includes, if the original page table and the buddy page table do not share a page frame number of a page table entry, restoring the page table entry of the original page table to the page table entry of the buddy page table.

[0020] According to one embodiment of the present disclosure, the step of saving the initial state of the sandbox includes saving the initial state of the file system of the sandbox.

[0021] According to one embodiment of the present disclosure, the step of saving an initial state of a file system of a sandbox includes saving an initial state of a top file system in which changes are recorded among a file system including a top file system and a bottom file system.

[0022] According to one embodiment of the present disclosure, the step of performing a rewind operation for a sandbox to restore the state of the sandbox to an initial state includes, if a file corresponding to a first file included in an upper file system is included in a lower file system or initial state, converting the first file to a file in the lower file system or initial state.

[0023] According to one embodiment of the present disclosure, the step of performing a rewind operation for a sandbox to restore the state of the sandbox to an initial state includes the step of deleting a second file if the file corresponding to a second file included in the upper file system is not included in the lower file system or the initial state.

[0024] A computer program stored on a computer-readable recording medium is provided to execute the above-described method according to one embodiment of the present disclosure on a computer.

[0025] A computing device according to one embodiment of the present disclosure includes a communication module, a memory, and at least one processor connected to the memory and configured to execute at least one computer-readable program contained in the memory. The at least one program includes instructions for receiving a function execution request on a serverless platform, performing a checkpoint operation for a sandbox associated with the function execution request to save the initial state of the sandbox, and, after the operation corresponding to the function execution request is completed, performing a rewind operation for the sandbox to restore the state of the sandbox to the initial state. Effects of the invention

[0027] In various embodiments of the present disclosure, a computing device can simply remove personal information sensitive data contained in a sandbox by using checkpoint and rewind operations, and can improve the execution speed of a function by utilizing traces of a previous function while ensuring temporary isolation between function requests.

[0028] In various embodiments of the present disclosure, even if personal information sensitive data is written to the original page table, the page frame number referenced by the buddy page table may be maintained, so that information of the initial state of the memory area that does not contain personal information sensitive data may be returned during a rewind operation. Brief explanation of the drawing

[0030] Embodiments of the present disclosure will be described with reference to the accompanying drawings described below, wherein similar reference numerals indicate similar elements, but are not limited thereto. FIG. 1 is a block diagram showing the functional configuration of a computing device according to one embodiment of the present disclosure. FIG. 2 is a diagram showing an example in which a checkpoint operation is performed in the memory area of ​​a sandbox according to one embodiment of the present disclosure. FIG. 3 is a diagram showing an example of a function being executed in a memory area of ​​a sandbox according to one embodiment of the present disclosure. FIG. 4 is a diagram showing an example in which a rewind operation is performed in the memory area of ​​a sandbox according to one embodiment of the present disclosure. FIG. 5 is a diagram showing an example in which checkpoint operations and function execution are performed in a file system of a sandbox according to one embodiment of the present disclosure. FIG. 6 is a diagram showing an example of a rewind operation being performed in a file system of a sandbox according to one embodiment of the present disclosure. FIG. 7 is a flowchart illustrating an example of a checkpoint and rewind method in a serverless platform according to one embodiment of the present disclosure. FIG. 8 is a block diagram showing the internal configuration of a computing device according to one embodiment of the present disclosure. Specific details for implementing the invention

[0031] Hereinafter, specific details for implementing the present disclosure will be described in detail with reference to the attached drawings. However, in the following description, specific descriptions regarding widely known functions or configurations will be omitted if there is a risk that the gist of the present disclosure may be unnecessarily obscured.

[0032] In the attached drawings, identical or corresponding components are assigned the same reference numerals. Additionally, in the description of the following embodiments, the description of identical or corresponding components may be omitted. However, even if a description of a component is omitted, it is not intended that such component is not included in any embodiment.

[0033] The advantages and features of the disclosed embodiments and the methods for achieving them will become clear by referring to the embodiments described below in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below but may be implemented in various different forms, and these embodiments are provided merely to make the present invention complete and to fully inform those skilled in the art of the scope of the invention.

[0034] The terms used in this specification will be briefly explained, and the disclosed embodiments will be described in detail. The terms used in this specification have been selected to be as generally used as possible, taking into account their functions in the present invention; however, these terms may vary depending on the intent of those skilled in the relevant field, case law, the emergence of new technologies, etc. Additionally, in specific cases, terms may be arbitrarily selected by the applicant, and in such cases, their meanings will be described in detail in the relevant description of the invention. Therefore, the terms used in this invention should be defined not merely by their names, but based on their meanings and the overall content of this disclosure.

[0035] In this specification, singular expressions include plural expressions unless the context clearly specifies them as singular. Additionally, plural expressions include singular expressions unless the context clearly specifies them as plural. Throughout the specification, when a part is described as including a certain component, this means that, unless specifically stated otherwise, it does not exclude other components but may include additional components.

[0036] In the present disclosure, terms such as “comprising,” “comprising,” etc., may indicate the presence of features, steps, actions, elements, and / or components, but do not exclude the addition of one or more other functions, steps, actions, elements, components, and / or combinations thereof.

[0037] In the present disclosure, where a specific component is described as being "combined," "combined," "connected," or "reacting" with any other component, the specific component may be directly combined, combined, and / or connected, or reacting with the other component, but is not limited thereto. For example, one or more intermediate components may exist between the specific component and the other component. Additionally, in the present invention, "and / or" may include each of the one or more listed items or a combination of at least some of the one or more items.

[0038] In this disclosure, terms such as "first," "second," etc. are used to distinguish a specific component from another component, and the components described above are not limited by these terms. For example, the "first" component may be an element of the same or similar form as the "second" component.

[0039] In the present disclosure, "serverless computing" may refer to a type of service in which a cloud service provider provides peripheral application software functions necessary for the operation of core functions.

[0040] In the present disclosure, "sandbox" refers to a software unit equipped with components and functions necessary to run an application, and may include, for example, a container.

[0041] In the present disclosure, "checkpoint" may refer to an operation of saving the initial state of a sandbox, and "rewind" may refer to an operation of restoring the initial state of a sandbox saved by the checkpoint.

[0042] FIG. 1 is a block diagram showing the functional configuration of a computing device (100) according to one embodiment of the present disclosure. According to one embodiment, the computing device (100) may refer to any device for providing and managing serverless computing services. For example, when the computing device (100) receives a request from a user to execute a function associated with an application, it may execute the requested function on a sandbox such as a container. In this case, the computing device (100) may remove data residue resulting from the execution of the function from the sandbox using a checkpoint module (102) and a rewind module (104).

[0043] According to one embodiment, when a function is executed in a sandbox, privacy-sensitive data may remain within the sandbox. To remove such data residue remaining in the sandbox and to maintain isolation between function requests, the computing device (100) may use a checkpoint module (102) and a rewind module (104). For example, the computing device (100) may use the checkpoint module (102) to save the initial state of the sandbox before the function is executed, and when the execution of the function is completed, use the rewind module (104) to return the state of the sandbox to the initial state.

[0044] According to one embodiment, code for checkpoint and rewind operations may be included in a process of the sandbox. For example, the sandbox may include a proxy process and a launcher process. Here, the proxy process is for forwarding requests and responses to the launcher process, and the launcher process may be for loading a function into the sandbox, or for receiving function arguments and executing function code.

[0045] According to one embodiment, when a checkpoint operation is performed by a checkpoint module (102), information about the initial state of the launcher process can be obtained. When the launcher process receives arguments for a function and executes the function, personal information sensitive data may enter the sandbox, so the code for the checkpoint operation may be included in a proxy process.

[0046] According to one embodiment, when a rewind operation is performed by the rewind module (104), the launcher process can be restored to the initial state obtained by the checkpoint module (102). For example, the code for the rewind operation is located in a proxy process and can be executed after the result of the function execution in the launcher process is returned. As a result, data recorded while processing the function request is removed, and the sandbox can be restored to its initial state.

[0047] According to one embodiment, while a function is being executed in a sandbox, personal information sensitive data may be stored in memory or in a temporary file system. Additionally, a background task for processing personal information sensitive data may be processed. The computing device (100) may save the initial state of the sandbox and perform checkpoint and rewind operations on memory, a file system, and a task to restore the saved initial state after the function is executed.

[0048] In FIG. 1, each functional configuration included in the computing device (100) is described separately, but this is only for the purpose of helping to understand the invention, and one computing device may perform two or more functions. With such a configuration, the computing device (100) can simply remove personal information sensitive data included in the sandbox by using checkpoint and rewind operations, and can improve the execution speed of the function by utilizing traces of the previous function while ensuring temporary isolation between function requests.

[0049] FIG. 2 is a diagram illustrating an example in which a checkpoint operation is performed in a memory area of ​​a sandbox according to one embodiment of the present disclosure. According to one embodiment, the memory area of ​​the sandbox for performing a checkpoint operation may be composed of an original page table (212) and a buddy page table (214). In the illustrated example, the first table (210) may represent a memory area in an initial state, and the second table (220) may represent a memory area after a checkpoint operation has been performed.

[0050] According to one embodiment, the original page table (212) may represent a virtual memory area of ​​the original, and the buddy page table (214) may represent a virtual memory area for copying and storing the initial state of the original page table (212) and related information. The original page table (212) and the buddy page table (214) may be managed by software. For example, the original page table (212) and the buddy page table (214) may each be composed of 4KB, but are not limited thereto.

[0051] Referring to the first table (210), the original page table (212) may include five memory regions, and two of these memory regions may be filled with page table entries (PTEs). Additionally, referring to the second table (220), the memory regions of the original page table (212) may be copied to the buddy page table (214) through a checkpoint operation. That is, after the checkpoint operation, the second table (214) may include two page table entries.

[0052] According to one embodiment, the source page table (212) and the buddy page table (214) may operate by a copy-on-write (CoW) algorithm. Here, the CoW and / or CoW algorithm may refer to a method in which the source page table (212) and the buddy page table (214) reference the same memory area in order to efficiently manage memory resources, and then allocate a different memory area when the value stored in that memory area changes.

[0053] In the illustrated example, if the first page table entry (222) on the original page table (212) is writable (i.e., Writable: 1), the first page table entry (222) can be changed to unwritable (i.e., Writable: 0) by CoW and copied to the buddy page table (214). Then, if the value of the first page table entry (222) of the original page table (212) is rewritten or changed, the page frame number (PFN) referenced by the original page table (212) is changed, and the first page table entry (222) copied to the buddy page table (214) can be maintained in its initial state.

[0054] With this configuration, even if personal information sensitive data is written on the original page table (212), the page frame number referenced by the buddy page table (214) can be maintained, so that information of the initial state of the memory area that does not contain personal information sensitive data can be returned during a rewind operation.

[0055] FIG. 3 is a diagram illustrating an example of a function being executed in a memory area of ​​a sandbox according to one embodiment of the present disclosure. In the illustrated example, the second table (220) may represent a memory area after a checkpoint operation has been performed, and the third table (310) may represent a memory area after the function execution has been completed.

[0056] According to one embodiment, for unfilled areas (i.e., three of the five memory areas) where a page fault has occurred in the original page table (212) and the buddy page table (214), a checkpoint operation may be performed when the corresponding memory area is filled. That is, the timing at which the checkpoint operation is performed may be determined differently depending on when the page is filled in the original page table (212).

[0057] Referring to the third table (310), if a read fault occurs, the second page table entry (316) associated with the read fault can be copied to the original page table (212) and the buddy page table (214). That is, if the page fault is a read fault, the second page table entry (316) stored in the original page table (212) and the buddy page table (214) can both have a 'Writable' value of '0' and can refer to the same page frame number.

[0058] According to one embodiment, if a write fault occurs for a file-backed page, a third page table entry (314) associated with the file-backed page may be copied onto a buddy page table (214) to refer to the original copy of the page. In this case, the third page table entry (314) may refer to a private copy in the original page table (212). That is, the second page table entry (316) stored in the original page table (212) and the buddy page table (214) may have different 'Writable' values ​​of '0' and '1', respectively, and may refer to different page frame numbers.

[0059] According to one embodiment, if a write failure occurs for an anonymous page, the fourth page table entry (312) associated with the anonymous page can be copied onto the buddy page table (214) in a writable form. For example, since the anonymous page has an initial form filled with a value of '0', the initial state can be traced even if the 'Writable' value is '1'. That is, the fourth page table entry (312) stored in the original page table (212) and the buddy page table (214) can both have a 'Writable' value of '1' despite CoW protection and can refer to the same page frame number.

[0060] FIG. 4 is a diagram illustrating an example in which a rewind operation is performed in a memory area of ​​a sandbox according to one embodiment of the present disclosure. In the illustrated example, the third table (310) may represent a memory area after the function execution is completed, and the fourth table (410) may represent a memory area after the rewind operation is performed. For example, the rewind operation may be performed by dividing it into i) when the source page table (212) and the buddy page table (214) refer to a read-only page, and ii) when the source page table (212) and the buddy page table (214) refer to a writable page, and in the case of a writable page, it may be divided into a file backup page and an anonymous page.

[0061] According to one embodiment, the fifth page table entry (412) has a 'Writable' value of '0' in both the original page table (212) and the buddy page table (214), and can refer to the same page frame number ('0x002'). In this way, when the original page table (212) and the buddy page table (214) share a page frame number, the corresponding page table entry in the original page table (212) can be determined to have maintained its initial state. That is, the entry in the original page table (212) representing the initial state can be maintained for the fifth page table entry (412).

[0062] According to one embodiment, the first page table entry (222) may be determined such that the page frame number ('0x006') referenced by the original page table (212) and the page frame number ('0x001') referenced by the buddy page table (214) are different, by recording a new value after a checkpoint. In this way, if the original page table (212) and the buddy page table (214) do not share page frame numbers, the page table entry of the original page table (212) can be restored to the page table entry of the buddy page table (214). That is, the first page table entry (222) can be restored to the entry of the buddy page table (214) representing the initial state.

[0063] According to one embodiment, the fourth page table entry (312) may be an entry associated with an anonymous page. As described above, the fourth page table entry (312) associated with an anonymous page has a 'Writable' value of '1' in both the original page table (212) and the buddy page table (214), and may refer to the same page frame number ('0x008'). In this way, when the original page table (212) and the buddy page table (214) share a page frame number, the corresponding page table entry in the original page table (212) may be determined to have maintained its initial state. That is, the fourth page table entry (312) may maintain the entry of the original page table (212).

[0064] Through the process described in detail in FIGS. 2 to 4, the computing device can save the initial state of the memory area of ​​the sandbox using a virtual buddy page table (214) and a CoW algorithm, and can restore the initial state of the memory area based on the page table entries included in the original page table (212) and the buddy page table (214). With this configuration, the computing device can perform checkpoint and rewind operations in the memory area according to each case, thereby removing data residues on the memory area and preventing personal information sensitive data from being exploited during the execution of the next function.

[0065] FIG. 5 is a diagram illustrating an example in which checkpoint operations and function execution are performed in a file system of a sandbox according to one embodiment of the present disclosure. According to one embodiment, the file system of the sandbox may be composed of a merged file system (502), an upper file system (504), and a lower file system (506). Here, the lower file system (506) may contain a reference file, and the upper file system (504) may contain content modified during runtime. The file system of the sandbox may be in the form of a merged file system (502) in which the upper file system (504) and the lower file system (506) are merged, and may include, for example, OverlayFS.

[0066] According to one embodiment, the first file system (510) may represent a file system in an initial state. In the first file system (510), the lower file system (506) may be immutable, and the upper file system (504) may be volatile. That is, saving the initial state of the first file system (510) may be sufficient by copying and saving the files of the upper file system (504). That is, when a checkpoint operation is performed on the first file system (510), the initial state of the upper file system (504) in which changes are recorded may be copied and saved to a snapshot (508), which is a temporary storage space, by the checkpoint operation.

[0067] According to one embodiment, the second file system (520) may represent a file system after the function execution is completed. As illustrated, when a function is executed and a file is modified or created, the contents of the modified or created file may be written to the upper file system (504). For example, if a modification occurs to file B', file B" may be created, and if a modification occurs to file C, file C" may be created, and a new file D" may be created and written to the upper file system (504).

[0068] FIG. 6 is a diagram illustrating an example in which a rewind operation is performed in a file system of a sandbox according to one embodiment of the present disclosure. In the illustrated example, the second file system (520) may represent a file system after the function execution is completed, and the third file system (610) may represent a file system after the rewind operation is performed.

[0069] According to one embodiment, if a file corresponding to a specific file included in an upper file system (504) is included in a lower file system (506) or a snapshot (508), the file may be converted to a file in the lower file system (506) or the snapshot (508). Here, the snapshot (508) may represent a virtual temporary storage space. For example, if a file corresponding to a specific file is included in both the lower file system (506) and the snapshot (508), the file may be restored to a file in the snapshot (508), and if a file corresponding to a specific file is included only in the lower file system (506), the file may be restored to a file in the lower file system (506).

[0070] In the illustrated example, the file corresponding to the B" file may be included in the sub-file system (506) and the snapshot (508). In this case, the B" file may be restored based on the snapshot (508) and converted into the B' file. Additionally, the file corresponding to the C" file may be included only in the sub-file system (506). In this case, the C" file may be restored based on the sub-file system (506) and converted into the C file.

[0071] According to one embodiment, if a file corresponding to a specific file included in the upper file system (504) is not included in both the lower file system (506) and the snapshot (508), the file may be deleted. In the illustrated example, the file corresponding to the D" file may not be included in both the lower file system (506) and the snapshot (508). In this case, the D" file may be deleted. Thus, when restoration is completed for each file included in the upper file system (504), the merged file system (502) may be restored to its initial state.

[0072] FIGS. 2 to 4 illustrate examples in which checkpoints and rewinds are performed in a memory area, and FIGS. 5 to 6 illustrate examples in which checkpoints and rewinds are performed in a file system, but are not limited thereto. For example, checkpoints and rewinds can be performed on a task in a sandbox in a manner similar to the process described above. With such a configuration, the computing device can store and utilize the initial state of the sandbox in a memory area, a file system, and a task, thereby improving processing speed by utilizing traces of previous function execution to optimize the execution of consecutive functions while maintaining temporary isolation from the next function.

[0073] FIG. 7 is a flowchart illustrating an example of a checkpoint and rewind method (700) in a serverless platform according to one embodiment of the present disclosure. The checkpoint and rewind method (700) in a serverless platform may be performed by a processor (e.g., at least one processor of a computing device). The checkpoint and rewind method (700) in a serverless platform may be initiated by the processor receiving a request to execute a function in the serverless platform (S710). For example, if there is a request to execute an application from a user utilizing serverless computing, a request to execute a function associated with said application may be received.

[0074] According to one embodiment, the processor may save the initial state of the sandbox by performing a checkpoint operation for the sandbox associated with a function execution request (S720). For example, the processor may save the initial state of the sandbox's memory area, file system, and task. A checkpoint for the memory area may be performed by copying a page table entry from the source page table to the buddy page table. At this time, a CoW algorithm may be applied to the source page table and the buddy page table.

[0075] According to one embodiment, if a first page table entry on the original page table is writable, the processor may change the first page table entry to unwritable through CoW protection and copy it to the buddy page table. Then, if the first page table entry on the original page table is changed, the processor may maintain the first page table entry copied to the buddy page table and change the value of the original page table.

[0076] According to one embodiment, the processor may perform a checkpoint operation by handling page faults in a memory region. For example, if a read fault occurs, the processor may copy a second page table entry associated with the read fault onto the original page table and the buddy page table. In another example, if a write fault occurs for a file backup page, the processor may copy a third page table entry associated with the file backup page onto the buddy page table to reference the original copy. In yet another example, if a write fault occurs for an anonymous page, the processor may copy a fourth page table entry associated with the anonymous page onto the buddy page table in a writable form.

[0077] According to one embodiment, the processor may store the initial state of the upper file system in which changes are recorded among a file system including a file system and a lower file system. For example, the file system may include a merged file system in which the upper file system and the lower file system are merged, and the processor may simply store the initial state of the file system by storing only the initial state of the upper file system without needing to store the initial state of the lower file system in which the stored contents are immutable.

[0078] According to one embodiment, after the task corresponding to the function execution request is completed, the processor may perform a rewind operation on the sandbox to restore the state of the sandbox to its initial state (S730). For example, if the original page table and the buddy page table share a page frame number of a page table entry in the memory area, the processor may maintain the page table entry of the original page table that shares the page frame number. Additionally, if the original page table and the buddy page table do not share a page frame number of a page table entry, the processor may restore the page table entry of the original page table to the page table entry of the buddy page table.

[0079] Additionally, the processor may convert the first file into a file in the lower file system or the initial state if the file corresponding to the first file included in the upper file system is included in the lower file system or the initial state. Furthermore, the processor may delete the second file if the file corresponding to the second file included in the upper file system is not included in the lower file system or the initial state.

[0080] FIG. 8 is a block diagram showing the internal configuration of a computing device (100) according to one embodiment of the present disclosure. The computing device (100) may include a memory (810), a processor (820), a communication module (830), and an input / output interface (840), and as shown in FIG. 8, the computing device (100) may be configured to communicate information and / or data through a network using the communication module (830).

[0081] The memory (810) may include any non-transient computer-readable recording medium. According to one embodiment, the memory (810) may include a permanent mass storage device such as random access memory (RAM), read-only memory (ROM), disk drive, solid state drive (SSD), flash memory, etc. As another example, a permanent mass storage device such as ROM, SSD, flash memory, disk drive, etc. may be included in the computing device (100) as a separate permanent storage device distinct from the memory. Additionally, an operating system and at least one program code may be stored in the memory (810).

[0082] These software components may be loaded from a computer-readable recording medium separate from memory (810). This separate computer-readable recording medium may include a recording medium that can be directly connected to this computing device (100), for example, a computer-readable recording medium such as a floppy drive, disk, tape, DVD / CD-ROM drive, or memory card. As another example, the software components may be loaded into memory (810) via a communication module (830) rather than a computer-readable recording medium. For example, at least one program may be loaded into memory (810) based on a computer program installed by files provided through the communication module (830) by developers or a file distribution system that distributes installation files for applications.

[0083] The processor (820) may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input / output operations. Instructions may be provided to another user terminal (not shown) or another external system by memory (810) or a communication module (830).

[0084] The communication module (830) may provide a configuration or function for a user terminal (not shown) and a computing device (100) to communicate with each other via a network, and may provide a configuration or function for the computing device (100) to communicate with an external system (e.g., a separate cloud system). For example, control signals, commands, data, etc. provided under the control of the processor (820) of the computing device (100) may be transmitted to the user terminal and / or the external system through the communication module (830) and the network, and through the communication module of the user terminal and / or the external system.

[0085] Additionally, the input / output interface (840) of the computing device (100) may be a means for interfacing with a device (not shown) for input or output that is connected to the computing device (100) or that the computing device (100) may include. In FIG. 8, the input / output interface (840) is shown as an element configured separately from the processor (820), but is not limited thereto, and the input / output interface (840) may be configured to be included in the processor (820). The computing device (100) may include more components than those shown in FIG. 8. However, there is no need to clearly illustrate most of the prior art components.

[0086] The processor (820) of the computing device (100) may be configured to manage, process, and / or store information and / or data received from a plurality of user terminals and / or a plurality of external systems.

[0087] The methods and / or various embodiments described above may be realized in digital electronic circuits, computer hardware, firmware, software, and / or combinations thereof. Various embodiments of the present disclosure may be executed by a data processing device, for example, one or more programmable processors and / or one or more computing devices, or may be implemented as a computer program stored on a computer-readable recording medium and / or a computer program stored on a computer-readable recording medium. The computer program described above may be written in any form of programming language, including a compiled language or an interpreted language, and may be distributed in any form, such as a standalone program, a module, a subroutine, etc. The computer program may be distributed through a single computing device, a plurality of computing devices connected through the same network, and / or a plurality of computing devices distributed to be connected through a plurality of different networks.

[0088] The above-described methods and / or various embodiments may be performed by one or more processors configured to execute one or more computer programs that process, store, and / or manage any functions, functions, etc., by operating based on input data or generating output data. For example, the methods and / or various embodiments of the present disclosure may be performed by special-purpose logic circuits such as a Field Programmable Gate Array (FPGA) or an Application Specific Integrated Circuit (ASIC), and an apparatus and / or system for performing the methods and / or embodiments of the present disclosure may be implemented as a special-purpose logic circuit such as an FPGA or an ASIC.

[0089] One or more processors executing a computer program may include one or more processors of a general-purpose or special-purpose microprocessor and / or any type of digital computing device. The processor may receive instructions and / or data from each of read-only memory and random access memory, or receive instructions and / or data from read-only memory and random access memory. In the present invention, components of a computing device performing the methods and / or embodiments may include one or more processors for executing instructions and one or more memory devices for storing instructions and / or data.

[0090] According to one embodiment, a computing device may exchange data with one or more mass storage devices for storing data. For example, the computing device may receive and / or receive data from a magnetic disc or an optical disc, and may transfer data to a magnetic disc or an optical disc. A computer-readable storage medium suitable for storing instructions and / or data associated with a computer program may include, but is not limited to, any form of non-volatile memory including semiconductor memory devices such as EPROM (Erasable Programmable Read-Only Memory), EEPROM (Electrically Erasable PROM), and flash memory devices. For example, a computer-readable storage medium may include magnetic discs such as internal hard disks or removable disks, optical magnetic discs, CD-ROMs, and DVD-ROMs.

[0091] To provide interaction with a user, the computing device may include, but is not limited to, a display device for providing or displaying information to the user (e.g., CRT (Cathode Ray Tube), LCD (Liquid Crystal Display), etc.) and a pointing device (e.g., keyboard, mouse, trackball, etc.) on which the user can provide input and / or commands, etc. on the computing device. That is, the computing device may further include any other type of device for providing interaction with the user. For example, the computing device may provide any form of sensory feedback to the user for interaction with the user, including visual feedback, auditory feedback and / or tactile feedback. In this regard, the user may provide input to the computing device through various gestures such as visual, vocal, and motion.

[0092] In the present invention, various embodiments may be implemented in a computing system comprising backend components (e.g., data servers), middleware components (e.g., application servers), and / or frontend components. In this case, the components may be interconnected by any form or medium of digital data communication, such as a communication network. For example, the communication network may include a Local Area Network (LAN), a Wide Area Network (WAN), etc.

[0093] A computing device based on the exemplary embodiments described herein may be implemented using hardware and / or software configured to interact with a user, including a user device, a user interface (UI) device, a user terminal, or a client device. For example, the computing device may include a portable computing device such as a laptop computer. Additionally or alternatively, the computing device may include, but is not limited to, Personal Digital Assistants (PDAs), tablet PCs, game consoles, wearable devices, Internet of Things (IoT) devices, Virtual Reality (VR) devices, Augmented Reality (AR) devices, etc. The computing device may further include other types of devices configured to interact with a user. Additionally, the computing device may include a portable communication device suitable for wireless communication over a network such as a mobile communication network (e.g., a mobile phone, a smartphone, a wireless cellular phone, etc.). A computing device may be configured to communicate wirelessly with a network server using wireless communication technologies and / or protocols such as radio frequency (RF), microwave frequency (MWF) and / or infrared frequency (IRF).

[0094] Various embodiments of the present invention, including specific structural and functional details, are exemplary. Accordingly, the embodiments of the present disclosure are not limited to those described above and may be implemented in various other forms. Furthermore, the terms used in the present invention are intended to describe some embodiments and are not to be interpreted as limiting the embodiments. For example, singular words and the above may be interpreted to include plural forms unless the context clearly indicates otherwise.

[0095] In this invention, unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as generally understood by those skilled in the art to which such concepts belong. Furthermore, commonly used terms, such as those defined in advance, should be interpreted as having a meaning consistent with their meaning in the context of the relevant technology.

[0096] Although the present invention has been described in relation to some embodiments, various modifications and changes may be made without departing from the scope of the present disclosure as understood by a person skilled in the art to which the invention of the present disclosure pertains. Furthermore, such modifications and changes should be considered to fall within the scope of the claims appended to this specification. Explanation of the symbols

[0098] 100: Computing device 102: Checkpoint Module 104: Rewind Module

Claims

Claim 1 A checkpoint and rewind method in a serverless platform performed by at least one processor, comprising: receiving a request for function execution in the serverless platform; and performing a checkpoint operation for a sandbox associated with the function execution request to save the initial state of the sandbox. A checkpoint and rewind method in a serverless platform, comprising: a step of performing a rewind operation on the sandbox to restore the state of the sandbox to the initial state after the operation corresponding to the function execution request is completed; wherein the step of saving the initial state of the sandbox includes a step of saving the initial state of the memory area of ​​the sandbox; and the step of saving the initial state of the memory area of ​​the sandbox includes a step of copying a page table entry (PTE) on an original page table onto a buddy page table; and the step of copying the page table entry on the original page table onto the buddy page table includes, if the first page table entry on the original page table is writable, a step of changing the first page table entry to unwritable and copying it to the buddy page table. Claim 2 delete Claim 3 delete Claim 4 A checkpoint and rewind method on a serverless platform, wherein, in claim 1, the step of copying a page table entry on the source page table onto a buddy page table comprises the step of applying a copy-on-write (CoW) algorithm to the source page table and the buddy page table. Claim 5 delete Claim 6 A checkpoint and rewind method in a serverless platform, wherein the step of copying a page table entry on the original page table to a buddy page table further comprises the step of maintaining the first page table entry copied to the buddy page table when the first page table entry on the original page table is changed. Claim 7 A checkpoint and rewind method in a serverless platform, wherein, in claim 1, the step of copying a page table entry on the original page table onto a buddy page table, when a read fault occurs, the step of copying a second page table entry associated with the read fault onto the original page table and the buddy page table. Claim 8 A checkpoint and rewind method on a serverless platform, wherein the step of copying a page table entry on the original page table onto a buddy page table comprises, in the event that a record failure occurs for a file-backed page, a third page table entry associated with the file-backed page onto the buddy page table to refer to the original copy. Claim 9 A checkpoint and rewind method in a serverless platform, wherein, in claim 1, the step of copying a page table entry on the original page table onto a buddy page table comprises, when a record failure occurs for an anonymous page, the step of copying a fourth page table entry associated with the anonymous page onto the buddy page table in a writable form. Claim 10 A checkpoint and rewind method in a serverless platform, wherein the step of performing a rewind operation on the sandbox to restore the state of the sandbox to the initial state comprises: a step of maintaining the page table entry of the original page table that shares the page frame number (PFN) when the original page table and the buddy page table share the page frame number of the page table entry. Claim 11 A checkpoint and rewind method in a serverless platform according to claim 1, wherein the step of performing a rewind operation for the sandbox to restore the state of the sandbox to the initial state comprises: a step of restoring the page table entry of the original page table to the page table entry of the buddy page table when the original page table and the buddy page table do not share the page frame number of the page table entry. Claim 12 A checkpoint and rewind method on a serverless platform, wherein, in claim 1, the step of saving the initial state of the sandbox includes the step of saving the initial state of the file system of the sandbox. Claim 13 In claim 12, the step of saving the initial state of the file system of the sandbox comprises the step of saving the initial state of the upper file system in which changes are recorded among the file systems including the upper file system and the lower file system; a checkpoint and rewind method in a serverless platform. Claim 14 In claim 12, the step of performing a rewind operation on the sandbox to restore the state of the sandbox to the initial state comprises: a step of converting the first file into a file in the lower file system or the initial state when a file corresponding to the first file included in the upper file system of the file system is included in the lower file system of the file system or the initial state; a checkpoint and rewind method in a serverless platform. Claim 15 In claim 12, the step of performing a rewind operation on the sandbox to restore the state of the sandbox to the initial state comprises: a step of deleting the second file when the file corresponding to the second file included in the upper file system of the file system is not included in the lower file system of the file system or the initial state; a checkpoint and rewind method in a serverless platform. Claim 16 A computer program stored on a computer-readable recording medium for executing a method according to any one of paragraphs 1, 4, 6 through 15 on a computer. Claim 17 A computing device comprising: a communication module; a memory; and at least one processor connected to the memory and configured to execute at least one computer-readable program contained in the memory; wherein the at least one program includes instructions for receiving a function execution request on a serverless platform, performing a checkpoint operation on a sandbox associated with the function execution request to save the initial state of the sandbox, and, after the operation corresponding to the function execution request is completed, performing a rewind operation on the sandbox to restore the state of the sandbox to the initial state; wherein saving the initial state of the sandbox saves the initial state of the memory area of ​​the sandbox, and saving the initial state of the memory area of ​​the sandbox copies a page table entry (PTE) on an original page table onto a buddy page table, and, if the first page table entry on the original page table is writable, changes the first page table entry to unwritable and copies it to the buddy page table.

Citation Information

Patent Citations

  • Enhanced Function-as-a-Service (FAAS) System

    KR1020210076882A

  • FaaS In-Memory Checkpoint Restore

    US20210049070A1