IP Library Granted Patent US 12,481,557
Granted Patent B2
US 12,481,557 · App. 18/326,253 · Granted Nov 25, 2025

Managed data distribution using a wireless network

Inventors: S Christopher Gladwin (Chicago, IL); Gary W. Grube (Barrington Hills, IL); Timothy W. Markison (Mesa, AZ)
Assignee: Pure Storage, Inc.
G06F11/1076G06F3/0613G06F3/0619G06F3/0631G06F3/064G06F3/067G06F11/00G06F11/1012G06F11/1092H04L1/0041H04L1/0057H04L1/0076H04L63/08H04L67/1097H04W12/02H04W12/033G06F11/10G06F2211/1028H04L2001/0092
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,481,557
App. No.
18/326,253
Granted
Nov 25, 2025
Kind
B2
Abstract

A data distribution server includes a first interface for communicating with a plurality of content providers and a second interface for comminating with a plurality of wireless transceivers. The data distribution server includes memory storing operational instructions and processing circuitry operably coupled to the first and second interfaces and to the memory, where the processing circuitry is configured to execute the operational instructions to receive a portion of a data object from a content provider of the plurality of content providers, generate a plurality of data slices from the portion of the data object, distribute the plurality of data slices between the plurality of wireless transceivers for temporary storage and facilitate transmittal of the plurality of data slices to a user device that is adapted to wirelessly communicate with each wireless transceiver of the plurality of wireless transceivers.

Claims (59)

1 . A data distribution server comprises:

a first interface configured to interface and communicate with a plurality of content providers;

a second interface configured to interface and communicate with a plurality of wireless transceivers;

memory that stores operational instructions;

processing circuitry operably coupled to the first and second interfaces and to the memory, wherein the processing circuitry is configured to execute the operational instructions to:

receive a data object from a content provider of the plurality of content providers;

divide the data object into a plurality of data object portions;

determine dispersal parameters for a data object portion of the plurality of data object portions based on a predetermined wireless connection performance between a first number of plurality of wireless transceivers of the plurality of wireless transceivers and the user device;

generate a plurality of data slices from the data object portion of the plurality of data object portions generate the plurality of data slices by:

distribute the plurality of data slices to a first wireless transceiver of the plurality of wireless transceivers for temporary storage;

distribute the plurality of data slices to a second wireless transceiver of the plurality of wireless transceivers for temporary storage;

and

facilitate transmittal of a first portion of the plurality of data slices from the first wireless transceiver to a user device;

facilitate transmittal of a second portion of the plurality of data slices from the second wireless transceiver to a user device, wherein the user device is adapted to wirelessly communicate with each wireless transceiver of the plurality of wireless transceivers.

2 . The data distribution server of claim 1 , wherein the processing circuitry is further configured to execute the operational instructions to:

distribute the first and second portions of the plurality of data slices between the plurality of wireless transceivers according to a schedule.

3 . The data distribution server of claim 2 , wherein the schedule is based on at least one of a predictive algorithm or content already distributed to the user device.

4 . The data distribution server of claim 2 , wherein the schedule is based on at least one of a performance history, a link speed, a link latency, a prioritization scheme or a lookup table.

5 . The data distribution server of claim 1 , wherein the processing circuitry is further configured to execute the operational instructions to:

generate the plurality of data slices by:

determining dispersal parameters for another data object portion of the plurality of data object portions on a predetermined wireless connection performance between a second number of the plurality of wireless transceivers and the user device.

6 . A data distribution server comprises:

a first interface configured to interface and communicate with a content provider;

a second interface configured to interface and communicate with a plurality of wireless transceivers;

memory that stores operational instructions;

processing circuitry operably coupled to the first and second interfaces and to the memory, wherein the processing circuitry is configured to execute the operational instructions to:

receive a data object from the content provider;

dispersed error encode the data object according to first error coding dispersal parameters to generate a set of data slices;

distribute a first subset of the set of data slices to a first wireless transceiver;

distribute a second subset of the set of data slices to a second wireless transceiver; and

facilitate transmittal of the set of data slices to a plurality of user devices, wherein each of the plurality of user devices is adapted to wirelessly communicate with the first and second wireless transceiver.

7 . The data distribution server of claim 6 , wherein the processing circuitry is further configured to execute the operational instructions to:

distribute the first subset of the set of data slices to the first wireless transceiver and the second subset of the set of data slices to the second wireless transceiver according to a schedule.

8 . The data distribution server of claim 7 , wherein the schedule is based on at least one of a predictive algorithm or content already distributed to the plurality of user devices.

9 . The data distribution server of claim 7 , wherein the schedule is based on at least one of a performance history, a link speed, a link latency, a prioritization scheme or a lookup table.

10 . The data distribution server of claim 6 , wherein the processing circuitry is further configured to execute the operational instructions to:

encode the data object according to second error coding dispersal parameters to generate another set of data slices; and

distribute a first subset of the another set of data slices to a third wireless transceiver, wherein the second error coding dispersal parameters for the another set of data slices is based on a relative wireless connection performance between the third wireless transceiver and the plurality of user devices.

11 . The data distribution server of claim 10 , wherein the another set of data slices includes at least a decode threshold number of data slices.

12 . The data distribution server of claim 6 , wherein the set of data slices includes at least a decode threshold number of data slices.

13 . A method comprises:

receiving, by a data distribution server, a data object from a content provider of a plurality of content providers;

dividing the data object into a plurality of data object portions;

determining dispersal parameters for a data object portion of the plurality of data object portions based on a predetermined wireless connection performance between a first number of plurality of wireless transceivers of the plurality of wireless transceivers and the user device;

generating a plurality of data slices from a data object portion of the plurality of data object portions;

distributing the plurality of data slices to a first wireless transceiver of a plurality of wireless transceivers for temporary storage;

distributing the plurality of data slices to a second wireless transceiver of a plurality of wireless transceivers for temporary storage; and

facilitating transmittal of a portion of the plurality of data slices from the first wireless transceiver to a user device; and

facilitating transmittal of a portion of the plurality of data slices from the first wireless transceiver to a user device, wherein the user device is adapted to wirelessly communicate with each wireless transceiver of the plurality of wireless transceivers.

14 . The method of claim 13 , further comprising:

distributing the plurality of data slices between the plurality of wireless transceivers according to a schedule.

15 . The method of claim 14 , wherein the schedule is based on at least one of a predictive algorithm or content already distributed to the user device.

16 . The method of claim 14 , wherein the schedule is based on at least one of a performance history, a link speed, a link latency, a prioritization scheme or a lookup table.

17 . The method of claim 13 , further comprising:

generating the plurality of data slices by:

determining dispersal parameters for a data object portion of the plurality of data object portions based on a predetermined wireless connection performance between a first number of the plurality of wireless transceivers and the user device.

18 . The method of claim 13 , further comprising:

generating the plurality of data slices by:

determining dispersal parameters for another data object portion of the plurality of data object portions on a predetermined wireless connection performance between a second number of the plurality of wireless transceivers and the user device.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2023
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 063823/0910 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2023
From: GLADWIN, S. CHRISTOPHER; GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 063821/0129 →
Continuity (8)
Continuation 17167882 · Feb 4, 2021
Continuation 15874461 · Jan 18, 2018
Continuation In Part 15190925 · Jun 23, 2016
Continuation 13647528 · Oct 9, 2012
Continuation In Part 13464166 · May 4, 2012
Provisional Application 61554152 · Nov 1, 2011
Provisional Application 61493825 · Jun 6, 2011
Related Publication 20230305926A1 · Sep 28, 2023
References Cited (151)
US 4092732A · Ouchi · 1978 [cited by applicant]
US 5454101A · Mackay · 1995 [cited by applicant]
US 5485474A · Rabin · 1996 [cited by applicant]
US 5774643A · Lubbers · 1998 [cited by applicant]
US 5802364A · Senator · 1998 [cited by applicant]
US 5809285A · Hilland · 1998 [cited by applicant]
US 5890156A · Rekieta · 1999 [cited by applicant]
US 5987622A · Lo Verso · 1999 [cited by applicant]
US 5991414A · Garay · 1999 [cited by applicant]
US 6012159A · Fischer · 2000 [cited by applicant]
US 6058454A · Gerlach · 2000 [cited by applicant]
US 6128277A · Bruck · 2000 [cited by applicant]
US 6175571B1 · Haddock · 2001 [cited by applicant]
US 6189123B1 · Anders Nystrom · 2001 [cited by applicant]
US 6192472B1 · Garay · 2001 [cited by applicant]
US 6256688B1 · Suetaka · 2001 [cited by applicant]
US 6272658B1 · Steele · 2001 [cited by applicant]
US 6301604B1 · Nojima · 2001 [cited by applicant]
US 6356949B1 · Katsandres · 2002 [cited by applicant]
US 6366995B1 · Nikolaevich · 2002 [cited by applicant]
US 6374336B1 · Peters · 2002 [cited by applicant]
US 6415373B1 · Peters · 2002 [cited by applicant]
US 6418539B1 · Walker · 2002 [cited by applicant]
US 6449688B1 · Peters · 2002 [cited by applicant]
US 6567948B2 · Steele · 2003 [cited by applicant]
US 6571282B1 · Bowman-Amuah · 2003 [cited by applicant]
US 6609223B1 · Wolfgang · 2003 [cited by applicant]
US 6718361B1 · Basani · 2004 [cited by applicant]
US 6760808B2 · Peters · 2004 [cited by applicant]
US 6785768B2 · Peters · 2004 [cited by applicant]
US 6785783B2 · Buckland · 2004 [cited by applicant]
US 6826711B2 · Moulton · 2004 [cited by applicant]
US 6879596B1 · Dooply · 2005 [cited by applicant]
US 7003688B1 · Pittelkow · 2006 [cited by applicant]
US 7024451B2 · Jorgenson · 2006 [cited by applicant]
US 7024609B2 · Wolfgang · 2006 [cited by applicant]
US 7080101B1 · Watson · 2006 [cited by applicant]
US 7103824B2 · Halford · 2006 [cited by applicant]
US 7103915B2 · Redlich · 2006 [cited by applicant]
US 7111115B2 · Peters · 2006 [cited by applicant]
US 7140044B2 · Redlich · 2006 [cited by applicant]
US 7146644B2 · Redlich · 2006 [cited by applicant]
US 7171493B2 · Shu · 2007 [cited by applicant]
US 7222133B1 · Raipurkar · 2007 [cited by applicant]
US 7240236B2 · Cutts · 2007 [cited by applicant]
US 7272613B2 · Sim · 2007 [cited by applicant]
US 7313693B2 · Noble · 2007 [cited by applicant]
US 7636724B2 · de la Torre · 2009 [cited by applicant]
US 7840680B2 · Zuckerman · 2010 [cited by applicant]
US 8448227B2 · Eyal · 2013 [cited by applicant]
US 9214963B1 · Garani · 2015 [cited by examiner]
US 9280416B1 · Xin · 2016 [cited by examiner]
US 9509514B2 · Resch · 2016 [cited by applicant]
US 10372686B2 · Grube · 2019 [cited by applicant]
US 10505947B2 · Grube · 2019 [cited by applicant]
US 20020062422A1 · Butterworth · 2002 [cited by applicant]
US 20020166079A1 · Ulrich · 2002 [cited by applicant]
US 20030018927A1 · Gadir · 2003 [cited by applicant]
US 20030037261A1 · Meffert · 2003 [cited by applicant]
US 20030065617A1 · Watkins · 2003 [cited by applicant]
US 20030084020A1 · Shu · 2003 [cited by examiner]
US 20040024963A1 · Talagala · 2004 [cited by applicant]
US 20040122917A1 · Menon · 2004 [cited by applicant]
US 20040215998A1 · Buxton · 2004 [cited by applicant]
US 20040228493A1 · Ma · 2004 [cited by applicant]
US 20050100022A1 · Ramprashad · 2005 [cited by applicant]
US 20050114594A1 · Corbett · 2005 [cited by applicant]
US 20050125593A1 · Karpoff · 2005 [cited by applicant]
US 20050131993A1 · Fatula, Jr. · 2005 [cited by applicant]
US 20050132070A1 · Redlich · 2005 [cited by applicant]
US 20050144382A1 · Schmisseur · 2005 [cited by applicant]
US 20050229069A1 · Hassner · 2005 [cited by applicant]
US 20060047907A1 · Shiga · 2006 [cited by applicant]
US 20060136448A1 · Cialini · 2006 [cited by applicant]
US 20060156059A1 · Kitamura · 2006 [cited by applicant]
US 20060224603A1 · Correll, Jr. · 2006 [cited by applicant]
US 20070079081A1 · Gladwin · 2007 [cited by applicant]
US 20070079082A1 · Gladwin · 2007 [cited by applicant]
US 20070079083A1 · Gladwin · 2007 [cited by applicant]
US 20070088970A1 · Buxton · 2007 [cited by applicant]
US 20070174192A1 · Gladwin · 2007 [cited by applicant]
US 20070214285A1 · Au · 2007 [cited by applicant]
US 20070234110A1 · Soran · 2007 [cited by applicant]
US 20070283167A1 · Venters, III · 2007 [cited by applicant]
US 20090094251A1 · Gladwin · 2009 [cited by applicant]
US 20090094318A1 · Gladwin · 2009 [cited by applicant]
US 20100023524A1 · Gladwin · 2010 [cited by applicant]
US 20100296654A1 · Wilson · 2010 [cited by examiner]
US 20110107094A1 · Resch · 2011 [cited by applicant]
US 20110161680A1 · Grube · 2011 [cited by applicant]
US 20110185258A1 · Grube · 2011 [cited by examiner]
US 20110225361A1 · Resch · 2011 [cited by examiner]
US 20110311051A1 · Resch · 2011 [cited by applicant]
US 20120198537A1 · Grube · 2012 [cited by applicant]
US 20120311068A1 · Gladwin et al. · 2012 [cited by applicant]
US 20130013761A1 · Grube · 2013 [cited by applicant]
US 20130086447A1 · Resch · 2013 [cited by examiner]
US 20130108048A1 · Grube · 2013 [cited by applicant]
US 20130275744A1 · Resch · 2013 [cited by applicant]
US 20130275776A1 · Baptist · 2013 [cited by applicant]
US 20130346795A1 · Gladwin · 2013 [cited by examiner]
US 20140359276A1 · Resch · 2014 [cited by applicant]
US 20150254150A1 · Gordon · 2015 [cited by examiner]
US 20160062833A1 · Slik · 2016 [cited by examiner]
US 20160328298A1 · Resch · 2016 [cited by applicant]
US 20160337376A1 · Grube · 2016 [cited by applicant]
US 20160337377A1 · Grube · 2016 [cited by applicant]
US 20160350171A1 · Resch · 2016 [cited by applicant]
US 20160357646A1 · Dhuse · 2016 [cited by applicant]
US 20160359918A1 · Grube · 2016 [cited by applicant]
US 20170004045A1 · Abhijeet · 2017 [cited by examiner]
US 20170031761A1 · Horan · 2017 [cited by examiner]
US 20170091030A1 · Hegde · 2017 [cited by examiner]
US 20170118288A1 · Baptist · 2017 [cited by examiner]
US 20170192700A1 · Wozniak · 2017 [cited by examiner]
US 20180048468A1 · Baptist · 2018 [cited by applicant]
US 20180062791A1 · Resch · 2018 [cited by examiner]
US 20180067964A1 · Johnson · 2018 [cited by examiner]
US 20180074904A1 · Alnafoosi · 2018 [cited by examiner]
US 20180091595A1 · Gray · 2018 [cited by examiner]
US 20180115606A1 · Isely · 2018 [cited by applicant]
US 20180115617A1 · Kalaf · 2018 [cited by applicant]
US 20180150353A1 · Gladwin · 2018 [cited by applicant]
US 20180268043A1 · Kazi · 2018 [cited by examiner]
US 20190087599A1 · Resch · 2019 [cited by applicant]
US 20190149556A1 · Grube · 2019 [cited by applicant]
US 20190205312A1 · Kazi · 2019 [cited by examiner]
US 20200192757A1 · Qin · 2020 [cited by examiner]
US 20210344971A1 · Chen · 2021 [cited by examiner]
US 20220012123A1 · Horan · 2022 [cited by examiner]
US 20220078590A1 · Gundavelli · 2022 [cited by examiner]
US 20240303160A1 · Gladwin · 2024 [cited by examiner]
EP 0674441A1 · 1995 [cited by applicant]
Chung; An Automatic Data Segmentation Method for 3D Measured Data Points; National Taiwan University; pp. 1-8; 1998. [cited by applicant]
Harrison; Lightweight Directory Access Protocol (LDAP): Authentication Methods and Security Mechanisms; IETF Network Working Group; RFC 4513; Jun. 2006; pp. 1-32. [cited by applicant]
Kubiatowicz, et al.; OceanStore: An Architecture for Global-Scale Persistent Storage; Proceedings of the Ninth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 20… [cited by applicant]
Legg; Lightweight Directory Access Protocol (LDAP): Syntaxes and Matching Rules; IETF Network Working Group; RFC 4517; Jun. 2006; pp. 1-50. [cited by applicant]
Plank, T1: Erasure Codes for Storage Applications; FAST2005, 4th Usenix Conference on File Storage Technologies; Dec. 13-16, 2005; pp. 1-74. [cited by applicant]
Rabin; Efficient Dispersal of Information for Security, Load Balancing, and Fault Tolerance; Journal of the Association for Computer Machinery; vol. 36, No. 2; Apr. 1989; pp. 335-348. [cited by applicant]
Satran, et al.; Internet Small Computer Systems Interface (ISCSI); IETF Network Working Group; RFC 3720; Apr. 2004; pp. 1-257. [cited by applicant]
Sciberras; Lightweight Directory Access Protocol (LDAP): Schema for User Applications; IETF Network Working Group; RFC 4519; Jun. 2006; pp. 1-33. [cited by applicant]
Sermersheim; Lightweight Directory Access Protocol (LDAP): The Protocol; IETF Network Working Group; RFC 4511; Jun. 2006; pp. 1-68. [cited by applicant]
Shamir; How to Share a Secret; Communications of the ACM; vol. 22, No. 11; Nov. 1979; pp. 612-613. [cited by applicant]
Smith; Lightweight Directory Access Protocol (LDAP): Uniform Resource Locator; IETF Network Working Group; RFC 4516; Jun. 2006; pp. 1-15. [cited by applicant]
Smith; Lightweight Directory Access Protocol (LDAP): String Representation of Search Filters; IETF Network Working Group; RFC 4515; Jun. 2006; pp. 1-12. [cited by applicant]
Wildi; Java iSCSi Initiator; Master Thesis; Department of Computer and Information Science, University of Konstanz; Feb. 2007; 60 pgs. [cited by applicant]
Xin, et al.; Evaluation of Distributed Recovery in Large-Scale Storage Systems; 13th IEEE International Symposium on High Performance Distributed Computing; Jun. 2004; pp. 172-181. [cited by applicant]
Zeilenga; Lightweight Directory Access Protocol (LDAP): Directory Information Models; IETF Network Working Group; RFC 4512; Jun. 2006; pp. 1-49. [cited by applicant]
Zeilenga; Lightweight Directory Access Protocol (LDAP): Internationalized String Preparation; IETF Network Working Group; RFC 4518; Jun. 2006; pp. 1-14. [cited by applicant]
Zeilenga; Lightweight Directory Access Protocol (LDAP): String Representation of Distinguished Names; IETF Network Working Group; RFC 4514; Jun. 2006; pp. 1-15. [cited by applicant]
Zeilenga; Lightweight Directory Access Protocol (LDAP): Technical Specification Road Map; IETF Network Working Group; RFC 4510; Jun. 2006; pp. 1-8. [cited by applicant]