Updating a database

US10877992B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10877992-B2
Application numberUS-201715826867-A
CountryUS
Kind codeB2
Filing dateNov 30, 2017
Priority dateNov 30, 2017
Publication dateDec 29, 2020
Grant dateDec 29, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • 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

  • G06F16/27Primary

    Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10877992B2 cover?
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.
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F16/2365. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 29 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 10 related publications on this page (citations in our corpus or others sharing the same primary CPC).