MLchartDataset catalogue

Patent · US10313769B2 · B2 · US

Technologies for performing partially synchronized writes

(11) Publication number
US10313769B2
(21) Application number
15/396,284
(22) Filing date
2016-12-30
(30) Priority date
2016-07-22
(43) Publication date
2019-06-04
(45) Date of grant
2019-06-04
(51) IPC
B25J 15/00; B65G 1/04; G02B 6/38; G02B 6/42; G02B 6/44; G05D 23/19; G05D 23/20; G06F 1/18; G06F 11/14; G06F 11/34; G06F 12/0862; G06F 12/0893; G06F 12/10; G06F 12/109; G06F 12/14; G06F 13/16; G06F 13/40; G06F 13/42; G06F 15/80; G06F 16/901; G06F 3/06; G06F 8/65; G06F 9/4401; G06F 9/50; G06Q 10/00; G06Q 10/06; G06Q 10/08; G06Q 50/04; G07C 5/00; G08C 17/02; G11C 11/56; G11C 14/00; G11C 5/02; G11C 5/06; G11C 7/10; H03M 7/30; H03M 7/40; H04B 10/25; H04L 12/24; H04L 12/26; H04L 12/28; H04L 12/751; H04L 12/781; H04L 12/811; H04L 12/851; H04L 12/911; H04L 12/919; H04L 12/927; H04L 12/931; H04L 12/933; H04L 12/939; H04L 12/947; H04L 29/06; H04L 29/08; H04L 29/12; H04L 9/06; H04L 9/14; H04L 9/32; H04Q 1/04; H04Q 11/00; H04W 4/02; H04W 4/80; H05K 1/02; H05K 1/18; H05K 13/04; H05K 5/02; H05K 7/14; H05K 7/20
(52) CPC
  • G06F Electric digital data processing: 3/061, 1/183, 1/20, 11/141, 11/3414, 12/0862, 12/0893, 12/10, 12/109, 12/1408, 13/161, 13/1668, 13/1694, 13/385, 13/4022, 13/4068, 13/409, 13/42, 13/4282, 15/161, 15/8061, 16/1748, 16/9014, 17/30949, 2209/483, 2209/5019, 2209/5022, 2212/1008, 2212/1024, 2212/1041, 2212/1044, 2212/152, 2212/202, 2212/401, 2212/402, 2212/7207, 3/0611, 3/0613, 3/0616, 3/0619, 3/0625, 3/0631, 3/0638, 3/064, 3/0647, 3/065, 3/0653, 3/0655, 3/0658, 3/0659, 3/0664, 3/0665, 3/067, 3/0673, 3/0679, 3/0683, 3/0688, 3/0689, 8/65, 9/30036, 9/3887, 9/4401, 9/4881, 9/5016, 9/5027, 9/5044, 9/505, 9/5072, 9/5077, 9/544
  • B25J Manipulators; chambers provided with manipulation devices: 15/0014
  • B65G Transport or storage devices, e.g. conveyors for loading or tipping, shop conveyor systems or pneumatic tube conveyors: 1/0492
  • G02B Optical elements, systems or apparatus: 6/3882, 6/3893, 6/3897, 6/4292, 6/4452
  • G05D Systems for controlling or regulating non-electric variables: 23/1921, 23/2039
  • G06Q Information and communication technology [ICT] specially adapted for administrative, commercial, financial, managerial or supervisory purposes; systems or methods specially adapted for administrative, commercial, financial, managerial or supervisory purposes, not otherwise provided for: 10/06, 10/06314, 10/087, 10/20, 50/04
  • G07C Time or attendance registers; registering or indicating the working of machines; generating random numbers; voting or lottery apparatus; arrangements, systems or apparatus for checking not provided for elsewhere: 5/008
  • G08C Transmission systems for measured values, control or similar signals: 17/02, 2200/00
  • G11C Static stores: 11/56, 14/0009, 5/02, 5/06, 7/1072
  • H03M Coding; decoding; code conversion in general: 7/30, 7/3084, 7/3086, 7/40, 7/4031, 7/4056, 7/4081, 7/6005, 7/6023
  • H04B Transmission: 10/25, 10/2504, 10/25891
  • H04J Multiplex communication: 14/00
  • H04L Transmission of digital information, e.g. telegraphic communication: 12/2809, 29/12009, 41/024, 41/046, 41/0813, 41/082, 41/0896, 41/12, 41/145, 41/147, 41/149, 41/40, 41/5019, 43/065, 43/08, 43/0817, 43/0876, 43/0894, 43/16, 45/02, 45/52, 47/24, 47/38, 47/765, 47/782, 47/805, 47/82, 47/823, 47/83, 49/00, 49/15, 49/25, 49/35, 49/357, 49/45, 49/555, 61/00, 67/02, 67/10, 67/1004, 67/1008, 67/1012, 67/1014, 67/1029, 67/1034, 67/1097, 67/12, 67/16, 67/306, 67/34, 67/51, 69/04, 69/18, 69/329, 9/0643, 9/14, 9/3247, 9/3263
  • H04Q Selecting: 1/04, 1/09, 11/00, 11/0003, 11/0005, 11/0062, 11/0071, 2011/0037, 2011/0041, 2011/0052, 2011/0073, 2011/0079, 2011/0086, 2213/13523, 2213/13527
  • H04W Wireless communication networks: 4/023, 4/80
  • H05K Printed circuits; casings or constructional details of electric apparatus; manufacture of assemblages of electrical components: 1/0203, 1/181, 13/0486, 2201/066, 2201/10121, 2201/10159, 2201/10189, 5/0204, 7/1418, 7/1421, 7/1422, 7/1442, 7/1447, 7/1461, 7/1485, 7/1487, 7/1489, 7/1491, 7/1492, 7/1498, 7/2039, 7/20709, 7/20727, 7/20736, 7/20745, 7/20836
  • Y02D Climate change mitigation technologies in information and communication technologies [ICT], i.e. information and communication technologies aiming at the reduction of their own energy use: 10/00, 10/14, 10/151
  • Y02P Climate change mitigation technologies in the production or processing of goods: 90/30
  • Y04S Systems integrating technologies related to power network operation, communication or information technologies for improving the electrical power generation, transmission, distribution, management or usage, i.e. smart grids: 10/50, 10/52
  • Y10S Technical subjects covered by former uspc cross-reference art collections [xracs] and digests: 901/01, 901/30
(73) Assignee
Intel Corp
(72) Inventors
Steven C. Miller
(54) Title
Technologies for performing partially synchronized writes
(57) Abstract

Technologies for managing partially synchronized writes include a managed node. The managed node is to issue a write request to write a data block, on behalf of a workload, to multiple data storage devices connected to a network, pause execution of the workload, receive an initial acknowledgment associated with one of the multiple data storage devices, wherein the initial acknowledgement is indicative of successful storage of the data block, and resume execution of the workload after receipt of the initial acknowledgement and before receipt of subsequent acknowledgements associated with any of the other data storage devices. Other embodiments are also described and claimed.

Full text
View on Google Patents

Claims (22)

  1. A managed node to manage partially synchronized writes, the managed node comprising: a network communicator to issue a write request to write a data block, on behalf of a workload, to multiple data storage devices connected to a network; and a data manager to pause execution of the workload; wherein the network communicator is further to receive an initial acknowledgment associated with one of the multiple data storage devices, wherein the initial acknowledgement is indicative of successful storage of the data block; the data manager is further to resume execution of the workload after receipt of the initial acknowledgement and before receipt of subsequent acknowledgements associated with any other data storage devices of the multiple data storage devices; the network communicator is further to receive a subsequent acknowledgement associated with one of the other data storage devices after the workload has been resumed; and the data manager is further to determine an elapsed time period between the initial acknowledgement and the subsequent acknowledgement.
  2. The managed node of claim 1, wherein: the data manager is further to determine whether the elapsed time period satisfies a predefined threshold time period; and the network communicator is further to send, in response to a determination that the elapsed time period does not satisfy the predefined threshold time period, a request to at least one network device to increase a priority of write requests relative to other network traffic.
  3. The managed node of claim 2, wherein the data manager is further to: receive an assignment of the workload from an orchestrator server; and receive, with the assignment, an indication of the predefined threshold time period.
  4. The managed node of claim 1, wherein the data manager is further to: determine whether the elapsed time period satisfies a predefined threshold time period; and determine to await at least two acknowledgements in response to future write requests before resumption of the workload.
  5. The managed node of claim 1, wherein the data manager is further to: receive an assignment of the workload from an orchestrator server; receive, with the assignment, an indication of whether to enable partially synchronized writes; and wherein to resume execution of the workload comprises to: determine whether the assignment indicates to enable partially synchronized writes; and resume execution in response to a determination that the assignment indicates to enable partially synchronized writes.
  6. The managed node of claim 1, wherein to issue the write request to multiple data storage devices comprises to issue the write request to multiple data storage devices in different failure domains.
  7. The managed node of claim 1, wherein to issue the write request to write a data block comprises to send a key associated with the data block, wherein the key uniquely identifies the data block.
  8. The managed node of claim 1, wherein to issue the write request to multiple storage devices comprises to issue the write request to one or more data storage devices of a different managed node.
  9. The managed node of claim 1, wherein to resume execution of the workload comprises to: determine a number of partially synchronized write requests that have been issued, wherein each partially synchronized write request is a write request for which only one acknowledgement has been received; determine whether the number of partially synchronized write requests satisfies a threshold number of allowable partially synchronized write requests; and resume, in response to a determination that the number of partially synchronized write requests satisfies the threshold number, execution of the workload.
  10. The managed node of claim 9, wherein the data manager is further to receive an indication of the threshold number from an orchestrator server.
  11. One or more non-transitory computer-readable storage media comprising a plurality of instructions that, when executed by a managed node, cause the managed node to: issue a write request to write a data block, on behalf of a workload, to multiple data storage devices connected to a network; pause execution of the workload; receive an initial acknowledgment associated with one of the multiple data storage devices, wherein the initial acknowledgement is indicative of successful storage of the data block; resume execution of the workload after receipt of the initial acknowledgement and before receipt of subsequent acknowledgements associated with any other data storage devices of the multiple data storage devices; receive a subsequent acknowledgement associated with one of the other data storage devices after the workload has been resumed; and determine an elapsed time period between the initial acknowledgement and the subsequent acknowledgement.
  12. The one or more non-transitory computer-readable storage media of claim 11, wherein the plurality of instructions, when executed, cause the managed node to: determine whether the elapsed time period satisfies a predefined threshold time period; and send, in response to a determination that the elapsed time period does not satisfy the predefined threshold time period, a request to at least one network device to increase a priority of write requests relative to other network traffic.
  13. The one or more non-transitory computer-readable storage media of claim 12, wherein the plurality of instructions, when executed, cause the managed node to: receive an assignment of the workload from an orchestrator server; and receive with the assignment, an indication of the predefined threshold time period.
  14. The one or more non-transitory computer-readable storage media of claim 11, wherein the plurality of instructions, when executed, cause the managed node to: determine whether the elapsed time period satisfies a predefined threshold time period; and determine to await at least two acknowledgements in response to future write requests before resumption of the workload.
  15. The one or more non-transitory computer-readable storage media of claim 11, wherein the plurality of instructions, when executed, cause the managed node to: receive an assignment of the workload from an orchestrator server; receive with the assignment, an indication of whether to enable partially synchronized writes; and wherein to resume execution of the workload comprises to: determine whether the assignment indicates to enable partially synchronized writes; and resume execution in response to a determination that the assignment indicates to enable partially synchronized writes.
  16. The one or more non-transitory computer-readable storage media of claim 11, wherein to issue the write request to multiple data storage devices comprises to issue the write request to multiple data storage devices in different failure domains.
  17. The one or more non-transitory computer-readable storage media of claim 11, wherein to issue the write request to write a data block comprises to send a key associated with the data block, wherein the key uniquely identifies the data block.
  18. The one or more non-transitory computer-readable storage media of claim 11, wherein to issue the write request to multiple storage devices comprises to issue the write request to one or more data storage devices of a different managed node.
  19. The one or more non-transitory computer-readable storage media of claim 11, wherein to resume execution of the workload comprises to: determine a number of partially synchronized write requests that have been issued, wherein each partially synchronized write request is a write request for which only one acknowledgement has been received; determine whether the number of partially synchronized write requests satisfies a threshold number of allowable partially synchronized write requests; and resume, in response to a determination that the number of partially synchronized write requests satisfies the threshold number, execution of the workload.
  20. A method for managing partially synchronized writes, the method comprising: issuing, by a managed node, a write request to write a data block, on behalf of a workload, to multiple data storage devices connected to a network; pausing, by the managed node, execution of the workload; receiving, by the managed node, an initial acknowledgment associated with one of the multiple data storage devices, wherein the initial acknowledgement is indicative of successful storage of the data block; resuming, by the managed node, execution of the workload after receipt of the initial acknowledgement and before receipt of subsequent acknowledgements associated with any other data storage devices of the multiple data storage devices; receiving, by the managed node, a subsequent acknowledgement associated with one of the other data storage devices after the workload has been resumed; and determining, by the managed node, an elapsed time period between the initial acknowledgement and the subsequent acknowledgement.
  21. The method of claim 20, further comprising: determining, by the managed node, whether the elapsed time period satisfies a predefined threshold time period; and sending, by the managed node and in response to a determination that the elapsed time period does not satisfy the predefined threshold time period, a request to at least one network device to increase a priority of write requests relative to other network traffic.
  22. The method of claim 21, further comprising: receiving, by the managed node, an assignment of the workload from an orchestrator server; and receiving, by the managed node, with the assignment, an indication of the predefined threshold time period.

Description

In a data center, a compute node executing a workload may request to write a data block to data storage. To provide redundancy in the data storage, the compute node may send the data block through a network to multiple data storage devices that may be located in different locations, such that if any one of the data storage devices becomes disconnected from the network or otherwise unavailable, the compute node may rely on one of the other data storage devices to access the data. In doing so, the compute node typically pauses execution of the workload until the compute node has received a confirmation from the multiple networked data storage devices that the data has been successfully committed to non-volatile storage. At that point, the compute node determines that the data has been made “durable” (e.g., able to withstand at least one failure at one of the locations). However, while the process enhances the resiliency of the data, the time consumed in receiving the acknowledgements may adversely affect the quality of service (e.g., latency, etc.) of the workload.

The concepts described herein are illustrated by way of example and not by way of limitation in the accompanying figures. For simplicity and clarity of illustration, elements illustrated in the figures are not necessarily drawn to scale. Where considered appropriate, reference labels have been repeated among the figures to indicate corresponding or analogous elements.

FIG. 1 is a diagram of a conceptual overview of a data center in which one or more techniques described herein may be implemented according to various embodiments;

Citations (11)

  • US20050015657A1
  • US20050243609A1
  • US20100281229A1
  • US8316196B1
  • US20140229673A1
  • US20130042156A1
  • US20130238876A1
  • US9311207B1
  • US20160034210A1
  • US20160041882A1
  • US20170286153A1
Record as JSON
{
  "publication_number": "US10313769B2",
  "country": "US",
  "kind": "B2",
  "title": "Technologies for performing partially synchronized writes",
  "abstract": "Technologies for managing partially synchronized writes include a managed node. The managed node is to issue a write request to write a data block, on behalf of a workload, to multiple data storage devices connected to a network, pause execution of the workload, receive an initial acknowledgment associated with one of the multiple data storage devices, wherein the initial acknowledgement is indicative of successful storage of the data block, and resume execution of the workload after receipt of the initial acknowledgement and before receipt of subsequent acknowledgements associated with any of the other data storage devices. Other embodiments are also described and claimed.",
  "claims": [
    "1. A managed node to manage partially synchronized writes, the managed node comprising: a network communicator to issue a write request to write a data block, on behalf of a workload, to multiple data storage devices connected to a network; and a data manager to pause execution of the workload; wherein the network communicator is further to receive an initial acknowledgment associated with one of the multiple data storage devices, wherein the initial acknowledgement is indicative of successful storage of the data block; the data manager is further to resume execution of the workload after receipt of the initial acknowledgement and before receipt of subsequent acknowledgements associated with any other data storage devices of the multiple data storage devices; the network communicator is further to receive a subsequent acknowledgement associated with one of the other data storage devices after the workload has been resumed; and the data manager is further to determine an elapsed time period between the initial acknowledgement and the subsequent acknowledgement.",
    "2. The managed node of claim 1, wherein: the data manager is further to determine whether the elapsed time period satisfies a predefined threshold time period; and the network communicator is further to send, in response to a determination that the elapsed time period does not satisfy the predefined threshold time period, a request to at least one network device to increase a priority of write requests relative to other network traffic.",
    "3. The managed node of claim 2, wherein the data manager is further to: receive an assignment of the workload from an orchestrator server; and receive, with the assignment, an indication of the predefined threshold time period.",
    "4. The managed node of claim 1, wherein the data manager is further to: determine whether the elapsed time period satisfies a predefined threshold time period; and determine to await at least two acknowledgements in response to future write requests before resumption of the workload.",
    "5. The managed node of claim 1, wherein the data manager is further to: receive an assignment of the workload from an orchestrator server; receive, with the assignment, an indication of whether to enable partially synchronized writes; and wherein to resume execution of the workload comprises to: determine whether the assignment indicates to enable partially synchronized writes; and resume execution in response to a determination that the assignment indicates to enable partially synchronized writes.",
    "6. The managed node of claim 1, wherein to issue the write request to multiple data storage devices comprises to issue the write request to multiple data storage devices in different failure domains.",
    "7. The managed node of claim 1, wherein to issue the write request to write a data block comprises to send a key associated with the data block, wherein the key uniquely identifies the data block.",
    "8. The managed node of claim 1, wherein to issue the write request to multiple storage devices comprises to issue the write request to one or more data storage devices of a different managed node.",
    "9. The managed node of claim 1, wherein to resume execution of the workload comprises to: determine a number of partially synchronized write requests that have been issued, wherein each partially synchronized write request is a write request for which only one acknowledgement has been received; determine whether the number of partially synchronized write requests satisfies a threshold number of allowable partially synchronized write requests; and resume, in response to a determination that the number of partially synchronized write requests satisfies the threshold number, execution of the workload.",
    "10. The managed node of claim 9, wherein the data manager is further to receive an indication of the threshold number from an orchestrator server.",
    "11. One or more non-transitory computer-readable storage media comprising a plurality of instructions that, when executed by a managed node, cause the managed node to: issue a write request to write a data block, on behalf of a workload, to multiple data storage devices connected to a network; pause execution of the workload; receive an initial acknowledgment associated with one of the multiple data storage devices, wherein the initial acknowledgement is indicative of successful storage of the data block; resume execution of the workload after receipt of the initial acknowledgement and before receipt of subsequent acknowledgements associated with any other data storage devices of the multiple data storage devices; receive a subsequent acknowledgement associated with one of the other data storage devices after the workload has been resumed; and determine an elapsed time period between the initial acknowledgement and the subsequent acknowledgement.",
    "12. The one or more non-transitory computer-readable storage media of claim 11, wherein the plurality of instructions, when executed, cause the managed node to: determine whether the elapsed time period satisfies a predefined threshold time period; and send, in response to a determination that the elapsed time period does not satisfy the predefined threshold time period, a request to at least one network device to increase a priority of write requests relative to other network traffic.",
    "13. The one or more non-transitory computer-readable storage media of claim 12, wherein the plurality of instructions, when executed, cause the managed node to: receive an assignment of the workload from an orchestrator server; and receive with the assignment, an indication of the predefined threshold time period.",
    "14. The one or more non-transitory computer-readable storage media of claim 11, wherein the plurality of instructions, when executed, cause the managed node to: determine whether the elapsed time period satisfies a predefined threshold time period; and determine to await at least two acknowledgements in response to future write requests before resumption of the workload.",
    "15. The one or more non-transitory computer-readable storage media of claim 11, wherein the plurality of instructions, when executed, cause the managed node to: receive an assignment of the workload from an orchestrator server; receive with the assignment, an indication of whether to enable partially synchronized writes; and wherein to resume execution of the workload comprises to: determine whether the assignment indicates to enable partially synchronized writes; and resume execution in response to a determination that the assignment indicates to enable partially synchronized writes.",
    "16. The one or more non-transitory computer-readable storage media of claim 11, wherein to issue the write request to multiple data storage devices comprises to issue the write request to multiple data storage devices in different failure domains.",
    "17. The one or more non-transitory computer-readable storage media of claim 11, wherein to issue the write request to write a data block comprises to send a key associated with the data block, wherein the key uniquely identifies the data block.",
    "18. The one or more non-transitory computer-readable storage media of claim 11, wherein to issue the write request to multiple storage devices comprises to issue the write request to one or more data storage devices of a different managed node.",
    "19. The one or more non-transitory computer-readable storage media of claim 11, wherein to resume execution of the workload comprises to: determine a number of partially synchronized write requests that have been issued, wherein each partially synchronized write request is a write request for which only one acknowledgement has been received; determine whether the number of partially synchronized write requests satisfies a threshold number of allowable partially synchronized write requests; and resume, in response to a determination that the number of partially synchronized write requests satisfies the threshold number, execution of the workload.",
    "20. A method for managing partially synchronized writes, the method comprising: issuing, by a managed node, a write request to write a data block, on behalf of a workload, to multiple data storage devices connected to a network; pausing, by the managed node, execution of the workload; receiving, by the managed node, an initial acknowledgment associated with one of the multiple data storage devices, wherein the initial acknowledgement is indicative of successful storage of the data block; resuming, by the managed node, execution of the workload after receipt of the initial acknowledgement and before receipt of subsequent acknowledgements associated with any other data storage devices of the multiple data storage devices; receiving, by the managed node, a subsequent acknowledgement associated with one of the other data storage devices after the workload has been resumed; and determining, by the managed node, an elapsed time period between the initial acknowledgement and the subsequent acknowledgement.",
    "21. The method of claim 20, further comprising: determining, by the managed node, whether the elapsed time period satisfies a predefined threshold time period; and sending, by the managed node and in response to a determination that the elapsed time period does not satisfy the predefined threshold time period, a request to at least one network device to increase a priority of write requests relative to other network traffic.",
    "22. The method of claim 21, further comprising: receiving, by the managed node, an assignment of the workload from an orchestrator server; and receiving, by the managed node, with the assignment, an indication of the predefined threshold time period."
  ],
  "description_excerpt": "In a data center, a compute node executing a workload may request to write a data block to data storage. To provide redundancy in the data storage, the compute node may send the data block through a network to multiple data storage devices that may be located in different locations, such that if any one of the data storage devices becomes disconnected from the network or otherwise unavailable, the compute node may rely on one of the other data storage devices to access the data. In doing so, the compute node typically pauses execution of the workload until the compute node has received a confirmation from the multiple networked data storage devices that the data has been successfully committed to non-volatile storage. At that point, the compute node determines that the data has been made “durable” (e.g., able to withstand at least one failure at one of the locations). However, while the process enhances the resiliency of the data, the time consumed in receiving the acknowledgements may adversely affect the quality of service (e.g., latency, etc.) of the workload.\n\nThe concepts described herein are illustrated by way of example and not by way of limitation in the accompanying figures. For simplicity and clarity of illustration, elements illustrated in the figures are not necessarily drawn to scale. Where considered appropriate, reference labels have been repeated among the figures to indicate corresponding or analogous elements.\n\nFIG. 1 is a diagram of a conceptual overview of a data center in which one or more techniques described herein may be implemented according to various embodiments;",
  "cpc": [
    "G06F 3/061",
    "B25J 15/0014",
    "B65G 1/0492",
    "G02B 6/3882",
    "G02B 6/3893",
    "G02B 6/3897",
    "G02B 6/4292",
    "G02B 6/4452",
    "G05D 23/1921",
    "G05D 23/2039",
    "G06F 1/183",
    "G06F 1/20",
    "G06F 11/141",
    "G06F 11/3414",
    "G06F 12/0862",
    "G06F 12/0893",
    "G06F 12/10",
    "G06F 12/109",
    "G06F 12/1408",
    "G06F 13/161",
    "G06F 13/1668",
    "G06F 13/1694",
    "G06F 13/385",
    "G06F 13/4022",
    "G06F 13/4068",
    "G06F 13/409",
    "G06F 13/42",
    "G06F 13/4282",
    "G06F 15/161",
    "G06F 15/8061",
    "G06F 16/1748",
    "G06F 16/9014",
    "G06F 17/30949",
    "G06F 2209/483",
    "G06F 2209/5019",
    "G06F 2209/5022",
    "G06F 2212/1008",
    "G06F 2212/1024",
    "G06F 2212/1041",
    "G06F 2212/1044",
    "G06F 2212/152",
    "G06F 2212/202",
    "G06F 2212/401",
    "G06F 2212/402",
    "G06F 2212/7207",
    "G06F 3/0611",
    "G06F 3/0613",
    "G06F 3/0616",
    "G06F 3/0619",
    "G06F 3/0625",
    "G06F 3/0631",
    "G06F 3/0638",
    "G06F 3/064",
    "G06F 3/0647",
    "G06F 3/065",
    "G06F 3/0653",
    "G06F 3/0655",
    "G06F 3/0658",
    "G06F 3/0659",
    "G06F 3/0664",
    "G06F 3/0665",
    "G06F 3/067",
    "G06F 3/0673",
    "G06F 3/0679",
    "G06F 3/0683",
    "G06F 3/0688",
    "G06F 3/0689",
    "G06F 8/65",
    "G06F 9/30036",
    "G06F 9/3887",
    "G06F 9/4401",
    "G06F 9/4881",
    "G06F 9/5016",
    "G06F 9/5027",
    "G06F 9/5044",
    "G06F 9/505",
    "G06F 9/5072",
    "G06F 9/5077",
    "G06F 9/544",
    "G06Q 10/06",
    "G06Q 10/06314",
    "G06Q 10/087",
    "G06Q 10/20",
    "G06Q 50/04",
    "G07C 5/008",
    "G08C 17/02",
    "G08C 2200/00",
    "G11C 11/56",
    "G11C 14/0009",
    "G11C 5/02",
    "G11C 5/06",
    "G11C 7/1072",
    "H03M 7/30",
    "H03M 7/3084",
    "H03M 7/3086",
    "H03M 7/40",
    "H03M 7/4031",
    "H03M 7/4056",
    "H03M 7/4081",
    "H03M 7/6005",
    "H03M 7/6023",
    "H04B 10/25",
    "H04B 10/2504",
    "H04B 10/25891",
    "H04J 14/00",
    "H04L 12/2809",
    "H04L 29/12009",
    "H04L 41/024",
    "H04L 41/046",
    "H04L 41/0813",
    "H04L 41/082",
    "H04L 41/0896",
    "H04L 41/12",
    "H04L 41/145",
    "H04L 41/147",
    "H04L 41/149",
    "H04L 41/40",
    "H04L 41/5019",
    "H04L 43/065",
    "H04L 43/08",
    "H04L 43/0817",
    "H04L 43/0876",
    "H04L 43/0894",
    "H04L 43/16",
    "H04L 45/02",
    "H04L 45/52",
    "H04L 47/24",
    "H04L 47/38",
    "H04L 47/765",
    "H04L 47/782",
    "H04L 47/805",
    "H04L 47/82",
    "H04L 47/823",
    "H04L 47/83",
    "H04L 49/00",
    "H04L 49/15",
    "H04L 49/25",
    "H04L 49/35",
    "H04L 49/357",
    "H04L 49/45",
    "H04L 49/555",
    "H04L 61/00",
    "H04L 67/02",
    "H04L 67/10",
    "H04L 67/1004",
    "H04L 67/1008",
    "H04L 67/1012",
    "H04L 67/1014",
    "H04L 67/1029",
    "H04L 67/1034",
    "H04L 67/1097",
    "H04L 67/12",
    "H04L 67/16",
    "H04L 67/306",
    "H04L 67/34",
    "H04L 67/51",
    "H04L 69/04",
    "H04L 69/18",
    "H04L 69/329",
    "H04L 9/0643",
    "H04L 9/14",
    "H04L 9/3247",
    "H04L 9/3263",
    "H04Q 1/04",
    "H04Q 1/09",
    "H04Q 11/00",
    "H04Q 11/0003",
    "H04Q 11/0005",
    "H04Q 11/0062",
    "H04Q 11/0071",
    "H04Q 2011/0037",
    "H04Q 2011/0041",
    "H04Q 2011/0052",
    "H04Q 2011/0073",
    "H04Q 2011/0079",
    "H04Q 2011/0086",
    "H04Q 2213/13523",
    "H04Q 2213/13527",
    "H04W 4/023",
    "H04W 4/80",
    "H05K 1/0203",
    "H05K 1/181",
    "H05K 13/0486",
    "H05K 2201/066",
    "H05K 2201/10121",
    "H05K 2201/10159",
    "H05K 2201/10189",
    "H05K 5/0204",
    "H05K 7/1418",
    "H05K 7/1421",
    "H05K 7/1422",
    "H05K 7/1442",
    "H05K 7/1447",
    "H05K 7/1461",
    "H05K 7/1485",
    "H05K 7/1487",
    "H05K 7/1489",
    "H05K 7/1491",
    "H05K 7/1492",
    "H05K 7/1498",
    "H05K 7/2039",
    "H05K 7/20709",
    "H05K 7/20727",
    "H05K 7/20736",
    "H05K 7/20745",
    "H05K 7/20836",
    "Y02D 10/00",
    "Y02D 10/14",
    "Y02D 10/151",
    "Y02P 90/30",
    "Y04S 10/50",
    "Y04S 10/52",
    "Y10S 901/01",
    "Y10S 901/30"
  ],
  "ipc": [
    "B25J 15/00",
    "B65G 1/04",
    "G02B 6/38",
    "G02B 6/42",
    "G02B 6/44",
    "G05D 23/19",
    "G05D 23/20",
    "G06F 1/18",
    "G06F 11/14",
    "G06F 11/34",
    "G06F 12/0862",
    "G06F 12/0893",
    "G06F 12/10",
    "G06F 12/109",
    "G06F 12/14",
    "G06F 13/16",
    "G06F 13/40",
    "G06F 13/42",
    "G06F 15/80",
    "G06F 16/901",
    "G06F 3/06",
    "G06F 8/65",
    "G06F 9/4401",
    "G06F 9/50",
    "G06Q 10/00",
    "G06Q 10/06",
    "G06Q 10/08",
    "G06Q 50/04",
    "G07C 5/00",
    "G08C 17/02",
    "G11C 11/56",
    "G11C 14/00",
    "G11C 5/02",
    "G11C 5/06",
    "G11C 7/10",
    "H03M 7/30",
    "H03M 7/40",
    "H04B 10/25",
    "H04L 12/24",
    "H04L 12/26",
    "H04L 12/28",
    "H04L 12/751",
    "H04L 12/781",
    "H04L 12/811",
    "H04L 12/851",
    "H04L 12/911",
    "H04L 12/919",
    "H04L 12/927",
    "H04L 12/931",
    "H04L 12/933",
    "H04L 12/939",
    "H04L 12/947",
    "H04L 29/06",
    "H04L 29/08",
    "H04L 29/12",
    "H04L 9/06",
    "H04L 9/14",
    "H04L 9/32",
    "H04Q 1/04",
    "H04Q 11/00",
    "H04W 4/02",
    "H04W 4/80",
    "H05K 1/02",
    "H05K 1/18",
    "H05K 13/04",
    "H05K 5/02",
    "H05K 7/14",
    "H05K 7/20"
  ],
  "assignees": [
    "Intel Corp"
  ],
  "inventors": [
    "Steven C. Miller"
  ],
  "filing_date": "2016-12-30",
  "publication_date": "2019-06-04",
  "grant_date": "2019-06-04",
  "priority_date": "2016-07-22",
  "application_number": "US-201615396284-A",
  "family_id": "60804962",
  "cited_by_count": 15,
  "citations": [
    "US20050015657A1",
    "US20050243609A1",
    "US20100281229A1",
    "US8316196B1",
    "US20140229673A1",
    "US20130042156A1",
    "US20130238876A1",
    "US9311207B1",
    "US20160034210A1",
    "US20160041882A1",
    "US20170286153A1"
  ]
}

Record 2,780 of 8,000 in Patents full text (MLC-0201). Request the full dataset.