Disk optimized paging for column oriented databases

US9922060B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9922060-B2
Application numberUS-201615137827-A
CountryUS
Kind codeB2
Filing dateApr 25, 2016
Priority dateDec 30, 2013
Publication dateMar 20, 2018
Grant dateMar 20, 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.

Implementing a database system using a plurality of sequentially ordered drives to store sequential portions of columns of the database, but where the database system is usable by a system configured for use with in-memory database systems. The method includes loading one or more columns of a database into main memory of a computing system as a table based database. The method further includes dividing a column of the database into sequential portions. Each of the sequential portions is of sufficient size to create efficient transfers using hard disk controllers to transfer an entire sequential portion. The method further includes writing each of the sequential portions sequentially onto sequentially ordered drives in a round robin fashion such that sequential portions of the column are on sequential drives.

First claim

Opening claim text (preview).

What is claimed is: 1. In a computing environment, a database system using a plurality of sequentially ordered drives to store sequential portions of columns of the database, but where the database system is usable by a system configured for use with in-memory database systems, the system comprising: one or more processors; a plurality of sequentially ordered drives for storing data; main memory; and one or more computer readable media, wherein the one or more computer readable media comprise computer executable instructions that are executable by at least one of the one or more processors to cause at least one of the one or more processors to perform the following: load one or more columns of a database into main memory of a computing system as a table based database; divide a column of the database into sequential portions; write each of the sequential portions sequentially onto the sequentially ordered drives in a round robin fashion such that sequential portions of the column are stored on sequential drives, the sequential portions of the column being stored on sequential drives enabling parallelism during querying; copy at least some of the sequential portions from the sequentially ordered drives into a ring buffer; and upon determining that certain data copied into the ring buffer is hot data that has a predetermined frequency of reuse, transfer the hot data to another buffer. 2. The database system of claim 1 , wherein each of the sequentially ordered drives is an SSD drive. 3. The database system of claim 1 , wherein each of the sequential portions is a segment. 4. The database system of claim 1 , wherein each of the drives stores database data on a file per column basis such that each drive has a single data file for a given column of the database irrespective of how many portions of a column are stored at a given drive. 5. The database system of claim 1 , wherein the computer executable instructions are further executable by at least one of the one or more processors to cause at least one of the one or more processors to: for one or more other columns, divide a column of the database into sequential portions and write each of the sequential portions sequentially onto sequentially ordered drives in a round robin fashion. 6. The database system of claim 1 , wherein the ring buffer is implemented in the main memory. 7. The database system of claim 6 , wherein said another buffer is implemented in the main memory of the computing system. 8. The database system of claim 1 , wherein said another buffer is smaller than the ring buffer. 9. The database system of claim 1 , wherein items in said another buffer are recycled at a slower rate than items in the ring buffer. 10. A computing system comprising: one or more processors; a ring buffer, the ring buffer including a first pointer and a second pointer, wherein the first pointer marks a start of a free portion of the ring buffer and the second pointer marks an end of the free portion, the free portion comprising a portion of the ring buffer that is available to be overwritten by data being read to the ring buffer; and one or more computer readable media, wherein the one or more computer readable media comprise computer executable instructions that are executable by at least one of the one or more processors to cause at least one of the one or more processors to perform the following: subsequent to a data item in the ring buffer being used, wherein the data item is currently outside of the free portion during use, move the second ring buffer from a first side of the data item, to an opposing side of the data item, such that the data item is contained within the free portion subsequent to the use, thereby marking a memory location of the ring buffer containing the data item as free for use. 11. The computing system of claim 10 , wherein the computer executable instructions are further executable by at least one of the one or more processors to cause at least one of the one or more processors to: detect a potential new use of the data item; and upon determining that the data item has not been overwritten in the ring buffer, moving the second pointer back to the first side of the data item, such that the data item is no longer contained within the free portion. 12. The computing system of claim 10 , wherein the computer executable instructions are further executable by at least one of the one or more processors to cause at least one of the one or more processors to: reuse the data item subsequent to the moving the second pointer back to the first side of the data item. 13. The computing system of claim 12 , wherein the computer executable instructions are further executable by at least one of the one or more processors to cause at least one of the one or more processors to: subsequent to a data item in the ring buffer being re-used, move the second ring buffer from the first side of the data item, to the opposing side of the data item again, such that the data item is again contained within the free portion of the ring buffer. 14. The computing system of claim 10 , wherein the computer executable instructions are further executable by at least one of the one or more processors to cause at least one of the one or more processors to: further base movement of the second pointer on a determination as to a predetermined percentage of data that is needed from the ring buffer. 15. A computing system comprising: one or more processors; a ring buffer, the ring buffer including a first pointer and a second pointer, wherein the first pointer marks a start of a free portion of the ring buffer and the second pointer marks an end of the free portion, the free portion comprising a portion of the ring buffer that is available to be overwritten by data being read to the ring buffer; and one or more computer readable media, wherein the one or more computer readable media comprise computer executable instructions that are executable by at least one of the one or more processors to cause at least one of the one or more processors to perform the following: subsequent to a data item in the ring buffer being used, wherein the data item is currently outside of the free portion during use, writing the data item to a front of the free portion, next to the first pointer. 16. The computing system of claim 15 , wherein the computer executable instructions are further executable by at least one of the one or more processors to cause at least one of the one or more processors to: move the first pointer to an opposing side of the data item in such a manner as to capture the data item within the free portion, between the first pointer and the second pointer.

Assignees

Inventors

Classifications

  • Physics · mapped topic

  • Physics · mapped topic

  • Physics · mapped topic

  • File or folder operations, e.g. details of user interfaces specifically adapted to file systems · CPC title

  • Distributed file systems · 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 US9922060B2 cover?
Implementing a database system using a plurality of sequentially ordered drives to store sequential portions of columns of the database, but where the database system is usable by a system configured for use with in-memory database systems. The method includes loading one or more columns of a database into main memory of a computing system as a table based database. The method further includes …
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F17/30315. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 20 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 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).