Effective range partition splitting in scalable storage

US9286001B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9286001-B2
Application numberUS-201414319758-A
CountryUS
Kind codeB2
Filing dateJun 30, 2014
Priority dateJun 30, 2014
Publication dateMar 15, 2016
Grant dateMar 15, 2016

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.

A method for load balancing includes determining a reference key within a partition key range of a partition of scalable storage, the partition key range being divided into buckets that have boundaries defining sub ranges of the partition key range. The reference key is determined based on traffic values that correspond to tracked traffic within the buckets. The traffic values are updated based on additional traffic within the buckets and the boundaries are adjusted based on the updated traffic values. A reference key speed is determined that corresponds to a rate of change of a distribution of the tracked traffic with respect to the reference key. Reference key drop-off time may be determined for reference keys. Reference keys can be utilized to determine where to split the partition and reference key speed and reference key drop-off time can be utilized to determine whether or not to split the partition.

First claim

Opening claim text (preview).

The invention claimed is: 1. A computer-implemented method for load balancing a scalable storage, the method comprising: determining a reference key within a partition key range of a partition of the scalable storage, the partition key range being divided into buckets that have boundaries defining sub ranges of the partition key range, wherein the reference key is determined based on traffic values that correspond to tracked traffic within the buckets; updating the traffic values based on additional traffic within the buckets; adjusting the boundaries of the buckets based on the updated traffic values; determining a reference key speed that corresponds to a rate of change of a distribution of the tracked traffic with respect to the reference key; splitting the partition into multiple partitions based on the reference key speed. 2. The computer-implemented method of claim 1 , wherein the adjusting the boundaries of the buckets more evenly distributes the updated traffic values amongst the buckets. 3. The computer-implemented method of claim 1 , wherein the determining the reference key is based on identifying one of the buckets that is closest to a mid-point of the traffic values prior to the updating of the traffic values. 4. The computer-implemented method of claim 1 , wherein the splitting the partition into multiple partitions is in response determining that the reference key speed is not exceeding a threshold value. 5. The computer-implemented method of claim 1 , wherein the adjusting the boundaries comprises merging at least some of the buckets into a single bucket. 6. The computer-implemented method of claim 1 , wherein the adjusting the boundaries comprises splitting at least one of the buckets into multiple buckets. 7. The computer-implemented method of claim 1 , wherein the adjusting the boundaries comprises moving a common boundary between adjacent buckets. 8. The computer-implemented method of claim 1 , wherein the traffic values are based on request latency of access requests on the partition. 9. The computer-implemented method of claim 1 , wherein the splitting the partition into multiple partitions is further based on a reference key drop-off time. 10. A computer-implemented method for load balancing a scalable storage, the method comprising: determining a reference key within a partition key range of a partition of the scalable storage, the reference key dividing tracked traffic across the partition key range; updating the tracked traffic across the partition key range based on additional traffic across the partition key range; determining a reference key speed that corresponds to a rate of change of a distribution of the tracked traffic with respect to the reference key; splitting the partition into multiple partitions based on the reference key speed. 11. The computer-implemented method of claim 10 , wherein the rate of change of the distribution of the tracked traffic is based on a change between the tracked traffic and the updated tracked traffic. 12. The computer-implemented method of claim 10 , wherein the reference key speed is based on a running window of samples. 13. The computer-implemented method of claim 10 , wherein the splitting the partition results in the one of the multiple partitions being assigned to a first server of the scalable storage and another of the multiple partitions being assigned to a second server of the scalable storage. 14. The computer-implemented method of claim 10 , wherein the reference key speed is based on a first time stamp of a first sample of the reference key and a second time stamp of a second sample of the reference key. 15. One or more computer-storage media storing computer-useable instructions that, when executed by a computing device, perform a method for load balancing a scalable storage, the method comprising: tracking traffic within boundaries that define sub ranges of a partition key range of a partition of the scalable storage; adjusting the boundaries to more evenly distribute the tracked traffic within the boundaries; determining a reference key based on the adjusted boundaries; splitting the partition into multiple partitions based on the reference key. 16. The one or more computer-storage media of claim 15 , wherein the splitting the partition into multiple partitions is at a split-point that is based on the reference key. 17. The one or more computer-storage media of claim 15 , wherein the determining the reference key based on the adjusted boundaries comprises identifying one of the sub ranges that is closest to the mid-point of the tracked traffic. 18. The one or more computer-storage media of claim 15 , wherein the adjusting the boundaries comprises merging adjacent ones of the sub ranges into a composite sub range that is defined by the adjusted boundaries. 19. The one or more computer-storage media of claim 15 , wherein the splitting the partition into multiple partitions is further based on determining a time it takes for a reference key to be outside of a window of traffic. 20. The one or more computer-storage media of claim 15 , comprising maintaining sample keys within the sub ranges, wherein in the adjusting the boundaries, at least one of the boundaries is adjusted to one of the sample keys.

Assignees

Inventors

Classifications

  • by changing the path, e.g. traffic rerouting, path reconfiguration · CPC title

  • Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455) · CPC title

  • Load balancing · CPC title

  • G06F3/061Primary

    Improving I/O performance · CPC title

  • Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · 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 US9286001B2 cover?
A method for load balancing includes determining a reference key within a partition key range of a partition of scalable storage, the partition key range being divided into buckets that have boundaries defining sub ranges of the partition key range. The reference key is determined based on traffic values that correspond to tracked traffic within the buckets. The traffic values are updated based…
Who is the assignee on this patent?
Microsoft Corp, Microsoft Licensing Technology Llc
What technology area does this patent fall under?
Primary CPC classification G06F3/061. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 15 2016 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).