Moving data between partitions

US9965497B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9965497-B2
Application numberUS-201414289926-A
CountryUS
Kind codeB2
Filing dateMay 29, 2014
Priority dateMay 29, 2014
Publication dateMay 8, 2018
Grant dateMay 8, 2018

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.

Techniques are provided for moving data between partitions. Such a process may be performed without requiring any locks that block transactions that target a partition from being executed. Instead, such transactions may proceed while a move operation is being performed. The move operation involves copying data from the targeted partition to another partition that is hidden from (or “invisible” to) those transactions that attempt to read from or write to the partition. During the move operation, changes that are made to the partition are also reflected in a journal. Eventually, the changes reflected in the journal are drained and applied to the hidden partition. Once the partition and the hidden partition are synchronized, the identities of the partitions are swapped so that future transactions will target the previously-hidden partition instead of the previously-viewable partition.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: receiving an instruction, that is initiated by a first user, to move a partition to a new storage location, to split the partition into two or more partitions, or to merge a plurality of partitions that includes the partition into a single partition; in response to receiving the instruction and while allowing a plurality of transactions, that are initiated by a plurality of users, to modify data reflected in the partition, performing an operation that moves, splits, or merges the partition; wherein performing the operation comprises: creating a new partition that the plurality of transactions cannot access; copying data, from the partition that the plurality of transactions can access, into the new partition; wherein the method is performed by one or more computing devices. 2. The method of claim 1 , wherein performing the operation further comprises: generating journaling metadata that indicates that transactions are to store change information, caused by the transactions, in a journal; after generating the journaling metadata, generating cooperation metadata that indicates that subsequent transactions are to check the journal and apply changes, caused by the subsequent transactions, to the new partition. 3. The method of claim 2 , further comprising: in response to determining a particular time after the journaling metadata is generated and before the cooperation metadata is generated, waiting for one or more transactions that were pending at the particular time to commit before copying the data. 4. The method of claim 2 , further comprising: after generating the cooperation metadata, identifying a particular change in the journal and applying the particular change to the new partition. 5. The method of claim 4 , wherein: identifying and applying are performed by a process that is executing a data definition language (DDL) transaction that began prior to creating the new partition; the process performs copying the data, generating the journaling metadata, and generating the cooperation metadata. 6. The method of claim 2 , further comprising: in response to determining a particular time that the journal does not contain any change entries that have not been applied to the new partition, waiting for one or more transactions that were pending at the particular time to commit before exchanging identities of the partition and the new partition. 7. The method of claim 2 , further comprising: after generating the cooperation metadata, exchanging identities of the partition and the new partition. 8. The method of claim 2 , further comprising invalidating one or more first cursors after creating the journal and invalidating one or more second cursors after generating the cooperation metadata. 9. The method of claim 1 , wherein performing the operation comprises: determining whether a local index exists for the partition; in response to determining that a local index exists for the partition, generating a new local index for the new partition. 10. The method of claim 1 , further comprising: generating a plurality of mappings, each of which maps a location identifier for the partition with a location identifier for the new partition. 11. The method of claim 1 , further comprising: determining that a global index exists for the partition; in response to receiving a query: identifying an entry in the global index, identifying a first location identifier that is indicated in the entry, based on a mapping in a plurality of mappings, identifying a second location identifier that corresponds to the first location identifier, using the second location identifier to retrieve data from the new partition. 12. The method of claim 1 , wherein performing the operation is part of one transaction that is different than the plurality of transactions. 13. The method of claim 1 , wherein a transaction in the plurality of transactions includes inserting new data into the partition, deleting existing data from the partition, or updating the existing data to create updated data. 14. One or more non-transitory storage media storing instructions which, when executed by one or more computing devices, cause: receiving an instruction, that is initiated by a first user, to move a partition to a new storage location, to split the partition into two or more partitions, or to merge a plurality of partitions that includes the partition into a single partition; in response to receiving the instruction and while allowing a plurality of transactions, that are initiated by a plurality of users, to modify data reflected in the partition, performing an operation that moves, splits, or merges the partition; wherein performing the operation comprises: creating a new partition that the plurality of transactions cannot access; copying data, from the partition that the plurality of transactions can access, into the new partition. 15. The one or more non-transitory storage media of claim 14 , wherein performing the operation further comprises: generating journaling metadata that indicates that transactions are to store change information, caused by the transactions, in a journal; after generating the journaling metadata, generating cooperation metadata that indicates that subsequent transactions are to check the journal and apply changes, caused by the subsequent transactions, to the new partition. 16. The one or more non-transitory storage media of claim 15 , wherein the instructions, when executed by the one or more computing devices, further cause: in response to determining a particular time after the journaling metadata is generated and before the cooperation metadata is generated, waiting for one or more transactions that were pending at the particular time to commit before copying the data. 17. The one or more non-transitory storage media of claim 15 , wherein the instructions, when executed by the one or more computing devices, further cause: after generating the cooperation metadata, identifying a particular change in the journal and applying the particular change to the new partition. 18. The one or more non-transitory storage media of claim 17 , wherein: identifying and applying are performed by a process that is executing a data definition language (DDL) transaction that began prior to creating the new partition; the process performs copying the data, generating the journaling metadata, and generating the cooperation metadata. 19. The one or more non-transitory storage media of claim 15 , wherein the instructions, when executed by the one or more computing devices, further cause: in response to determining a particular time that the journal does not contain any change entries that have not been applied to the new partition, waiting for one or more transactions that were pending at the particular time to commit before exchanging identities of the partition and the new partition. 20. The one or more non-transitory storage media of claim 15 , wherein the instructions, when executed by the one or more computing devices, further cause: after generating the cooperation metadata, exchanging identities of the partition and the new partition. 21. The one or more non-transitory storage media of claim 15 , wherein the instructions, when executed by the one or more computing devices, further cause: invalidating one or more first cursors after creating the journal and invalidating one or more second cursors after generating the cooperation m

Assignees

Inventors

Classifications

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 US9965497B2 cover?
Techniques are provided for moving data between partitions. Such a process may be performed without requiring any locks that block transactions that target a partition from being executed. Instead, such transactions may proceed while a move operation is being performed. The move operation involves copying data from the targeted partition to another partition that is hidden from (or “invisible” …
Who is the assignee on this patent?
Oracle Int Corp
What technology area does this patent fall under?
Primary CPC classification G06F17/303. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 08 2018 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 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).