System and method for managing storage transaction requests
US-2019108104-A1 · Apr 11, 2019 · US
US10877992B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10877992-B2 |
| Application number | US-201715826867-A |
| Country | US |
| Kind code | B2 |
| Filing date | Nov 30, 2017 |
| Priority date | Nov 30, 2017 |
| Publication date | Dec 29, 2020 |
| Grant date | Dec 29, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Updating a database is provided. The updating is noticeable by all read and/or write processes. In response to a write request to the database, a temporary copy of the database is generated. The write operations are performed to the temporary copy of the database. The current database generation of the database is replaced with the temporary copy for creating a next database generation.
Opening claim text (preview).
The invention claimed is: 1. A method for updating a multidimensional database, the method comprising: based on there being an existing database file, finding a current generation of the database file that comprises a first version number encoded in a filename associated with the current generation; opening a file descriptor associated with the current generation of the database file; based on successful opening of the file descriptor, reading contents of the current generation of the database file associated with the file descriptor into a memory copy, and closing the file descriptor; updating the memory copy; writing the memory copy to a new temporary copy of the database; requesting to perform an update operation on the current generation of the database file, wherein the update operation comprises modifying file content associated with the memory copy of the current generation of the database file, writing the modified file content to the new temporary copy, and performing a renaming operation on the new temporary copy to create a next generation of the database file determining whether the update operation is successful based on the renaming operation, and in response to a failed renaming operation, performing a re-read operation of the file content associated with the current generation of the database file to retry the update operation; in response to a successful request and update operation, performing the renaming operation by encoding the new temporary copy with the filename including a second version number that is incrementally based on the first version number, and enabling a second update operation to be performed on the new temporary copy while preventing other current updates from being performed; and performing a replacement operation to replace the current generation of the database file with the next generation of the database file based on the encoded new temporary copy. 2. The method according to claim 1 , further comprising: using an atomic replacement operation for replacing the current database generation with the temporary copy of the database. 3. The method according to claim 1 , further comprising: a directory being moved on generating the temporary copy of the database. 4. The method according to claim 1 , further comprising: a directory being created on generating the temporary copy of the database. 5. The method according to claim 1 , further comprising: completing a write operation to the temporary copy before replacing the current database generation of the database with the temporary copy. 6. The method according to claim 1 , further comprising: performing a write operation to the temporary copy while substantially concurrently performing a read operation on the current database generation of the database. 7. The method according to claim 1 , further comprising: identifying different database generations of the database by timestamps. 8. The method according to claim 1 , further comprising: the database being implemented as a distributed multidimensional database. 9. The method according to claim 1 , further comprising: the current database generation of the database being defined as existing in case a file descriptor and/or a link to the database already exists in a computer system. 10. The method according to claim 1 , wherein performing the replacement operation to replace the current generation of the database file with the next generation of the database file further comprises: writing the updated memory copy to the temporary file; moving the current database generation to a deprecated database generation, wherein the deprecated generation is an inactive database generation which can be read; moving a temporary file to a next database generation, including a next generation number, based on the successful moving to the deprecated database generation; and moving the deprecated database generation to the next database generation, based on the unsuccessful moving of the current database generation to the deprecated database generation. 11. A computer program product for updating a multidimensional database, comprising: a computer readable storage medium readable by a processing circuit and having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to perform a method comprising: based on there being an existing database file, finding a current generation of the database file that comprises a first version number encoded in a filename associated with the current generation; opening a file descriptor associated with the current generation of the database file; based on successful opening of the file descriptor, reading contents of the database file associated with the file descriptor into a memory copy, and closing the file descriptor; applying updates to the memory copy; writing the memory copy to a new temporary copy of the database; requesting to perform an update operation on the current generation of the database file, wherein the update operation comprises modifying file content associated with the memory copy of the current generation of the database file, writing the modified file content to the new temporary copy, and performing a renaming operation on the new temporary copy to create a next generation of the database file determining whether the update operation is successful based on the renaming operation, and in response to a failed renaming operation, performing a re-read operation of the file content associated with the current generation of the database file to retry the update operation; in response to a successful request and update operation, performing the renaming operation by encoding the new temporary copy with the filename including a second version number that is incrementally based on the first version number, and enabling a second update operation to be performed on the new temporary copy while preventing other current updates from being performed; and performing a replacement operation to replace the current generation of the database file with the next generation of the database file based on the encoded new temporary copy. 12. The computer program product according to claim 11 , further comprising: using an atomic replacement operation for replacing the current database generation with the temporary copy of the database. 13. A system for execution of a data processing program comprising: a computer readable storage device having program instructions embodied therewith, wherein the computer readable storage medium is not a transitory signal per se, the program instructions executable by a processor to cause the processor to perform a method comprising: in response to a write request to the database, generating a temporary copy of the database; performing write operations to the temporary copy of the database; and replacing the current database generation of the database with the temporary copy for creating a next database generation, wherein replacing the current database generation comprises, requesting to perform an update operation on the current generation of the database file, wherein the update operation comprises modifying file content associated with the memory copy of the current generation of the database file, writing the modified file content to the new temporary copy, and performing a renaming operation on the new temporary copy to create a next generation of the database file determining whether the update operation is successful based on the renaming operation, and in response to a failed renaming operation, performing a re-read operation of the file content associated with the current genera
Ensuring data consistency and integrity · CPC title
Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP · CPC title
Design, administration or maintenance of databases · CPC title
Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.