Patents by Inventor Omid Fatemieh

Omid Fatemieh has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20220358142
    Abstract: An example method includes receiving a data load request requesting loading and partitioning of an unknown quantity of user data for storage at a data storage system. The user data including a partitioning key; a total data size of the user data; a plurality of rows, each row of the plurality of rows associated with a value defined by the partitioning key; and one or more columns. The method also includes identifying one or more storage constraints for the data storage system. The method further includes, after receiving the user data, determining a plurality of partitioning quantiles defining respective ranges of values of the partitioning key based on the user data and the one or more storage constraints for the data storage system; and range partitioning each row of the user data into files based on the value associated with the row defined by the partitioning key, and the respective ranges of the values of the partitioning key defined by the plurality of partitioning quantiles.
    Type: Application
    Filed: July 25, 2022
    Publication date: November 10, 2022
    Applicant: Google LLC
    Inventors: Seyed Omid Fatemieh, Mikhail Entin, Adrian Baras, Pavan Edara, Aleksandras Surna
  • Patent number: 11423049
    Abstract: A method for execution-time dynamic range partitioning includes receiving user data including a partitioning key and a clustering key. The user data includes a respective number of total rows defining a total data size for the user data. The method also includes identifying storage constraints for the data storage system. The storage constraints include a target file size and a target number of rows per file. The method further includes determining a plurality of split points for the user data based on the storage constraints. The method also includes generating partitioning quantiles from the plurality of split points that define a range between each split point of the plurality of split points. The method further includes range partitioning each row of the user data into files using the partitioning quantiles.
    Type: Grant
    Filed: May 11, 2020
    Date of Patent: August 23, 2022
    Assignee: Google LLC
    Inventors: Seyed Omid Fatemieh, Mikhail Entin, Adrian Baras, Pavan Edara, Aleksandras Surna
  • Publication number: 20210349648
    Abstract: A method for execution-time dynamic range partitioning includes receiving user data including a partitioning key and a clustering key. The user data includes a respective number of total rows defining a total data size for the user data. The method also includes identifying storage constraints for the data storage system. The storage constraints include a target file size and a target number of rows per file. The method further includes determining a plurality of split points for the user data based on the storage constraints. The method also includes generating partitioning quantiles from the plurality of split points that define a range between each split point of the plurality of split points. The method further includes range partitioning each row of the user data into files using the partitioning quantiles.
    Type: Application
    Filed: May 11, 2020
    Publication date: November 11, 2021
    Applicant: Google LLC
    Inventors: Seyed Omid Fatemieh, Mikhail Entin, Adrian Baras, Pavan Edara, Aleksandras Surna
  • Patent number: 10157155
    Abstract: An operating system includes an interrupt router that dynamically steers each interrupt to one or more processors within set of processors based on overall load information from the set of processors. An interrupt source is assigned to a processor based on the load imposed by the interrupt source and the target overall load for the processor. For example, each processor can maintain information about each interrupt it processes over time. The operating system receives this historical load information to determine an expected load for interrupts of a given type from a given device, an overall load on the system, and a target load for each processor. Given a set of interrupt sources, their expected loads, and target load for each processor, each interrupt source can be assigned dynamically to a processor during runtime of the system. These assignments can be changed given current operating conditions of the system.
    Type: Grant
    Filed: August 19, 2016
    Date of Patent: December 18, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Andrew Raffman, Minsang Kim, Jason Wohlgemuth, Tristan Brown, Youssef Barakat, Omid Fatemieh
  • Patent number: 10098069
    Abstract: Mobile devices periodically send resource usage reports to an energy server. The reports include information such as an amount of energy used during a time interval, and identify processes that are executed on the mobile devices during the time interval. These reports are analyzed by the energy server and are used to generate statistics regarding the energy used by the mobile devices and the processes that are executed by the mobile devices. When a mobile device experiences a suspected energy spike, the mobile device generates and sends a report to the energy server. After confirming the energy spike, the energy server uses the statistics and the received report to identify one or more causes of the energy spike. The causes can include one or more processes, or the mobile device itself. The mobile device can reduce the amount of energy used based on the identified causes.
    Type: Grant
    Filed: February 6, 2014
    Date of Patent: October 9, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Ranveer Chandra, Omid Fatemieh, Parya Moinzadeh, Chandramohan A. Thekkath, Yinglian Xie
  • Publication number: 20160357689
    Abstract: An operating system includes an interrupt router that dynamically steers each interrupt to one or more processors within set of processors based on overall load information from the set of processors. An interrupt source is assigned to a processor based on the load imposed by the interrupt source and the target overall load for the processor. For example, each processor can maintain information about each interrupt it processes over time. The operating system receives this historical load information to determine an expected load for interrupts of a given type from a given device, an overall load on the system, and a target load for each processor. Given a set of interrupt sources, their expected loads, and target load for each processor, each interrupt source can be assigned dynamically to a processor during runtime of the system. These assignments can be changed given current operating conditions of the system.
    Type: Application
    Filed: August 19, 2016
    Publication date: December 8, 2016
    Inventors: Andrew Raffman, Minsang Kim, Jason Wohlgemuth, Tristan Brown, Youssef Barakat, Omid Fatemieh
  • Patent number: 9424212
    Abstract: An operating system is provided in which an interrupt router dynamically steers each interrupt to one or more processors within set of processors based on overall load information from the set of processors. An interrupt source is assigned to a processor based on the load imposed by the interrupt source and the target overall load for the processor. For example, each processor can maintain information about each interrupt it processes over time. The operating system receives this historical load information to determine an expected load for interrupts of a given type from a given device, an overall load on the system, and a target load for each processor. Given a set of interrupt sources, their expected loads, and target load for each processor, each interrupt source can be assigned dynamically to a processor during runtime of the system. On a regular basis, these assignments can be changed given current operating conditions of the system.
    Type: Grant
    Filed: June 13, 2013
    Date of Patent: August 23, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Andrew Raffman, Minsang Kim, Jason Wohlgemuth, Tristan Brown, Youssef Barakat, Omid Fatemieh
  • Patent number: 9411755
    Abstract: Systems and methods for debouncing a signal line within a computer device are provided. The mechanical nature of physical buttons and switches oftentimes present irregular or noisy signals on a signal line when depressed by a user. Thus, noise and/or irregular waveforms may be present on a signal line that is monitored to produce interrupt signals, when deemed valid and genuine. In many embodiments given herein, debounce modules and techniques set a debounce interval timer and/or a noise filtering interval timer in which debounce modules and/or techniques may note whether the signal line is still asserted (e.g., possibly a genuine interrupt signal) during the debounce interval timer and stable (e.g., no further interrupts have fired) during the noise filtering interval timer.
    Type: Grant
    Filed: April 21, 2013
    Date of Patent: August 9, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Murali Ravirala, Omid Fatemieh, Gabriel Knezek, Youssef Barakat
  • Publication number: 20150223172
    Abstract: Mobile devices periodically send resource usage reports to an energy server. The reports include information such as an amount of energy used during a time interval, and identify processes that are executed on the mobile devices during the time interval. These reports are analyzed by the energy server and are used to generate statistics regarding the energy used by the mobile devices and the processes that are executed by the mobile devices. When a mobile device experiences a suspected energy spike, the mobile device generates and sends a report to the energy server. After confirming the energy spike, the energy server uses the statistics and the received report to identify one or more causes of the energy spike. The causes can include one or more processes, or the mobile device itself. The mobile device can reduce the amount of energy used based on the identified causes.
    Type: Application
    Filed: February 6, 2014
    Publication date: August 6, 2015
    Applicant: Microsoft Corporation
    Inventors: Ranveer Chandra, Omid Fatemieh, Parya Moinzadeh, Chandramohan A. Thekkath, Yinglian Xie
  • Publication number: 20140372649
    Abstract: An operating system is provided in which an interrupt router dynamically steers each interrupt to one or more processors within set of processors based on overall load information from the set of processors. An interrupt source is assigned to a processor based on the load imposed by the interrupt source and the target overall load for the processor. For example, each processor can maintain information about each interrupt it processes over time. The operating system receives this historical load information to determine an expected load for interrupts of a given type from a given device, an overall load on the system, and a target load for each processor. Given a set of interrupt sources, their expected loads, and target load for each processor, each interrupt source can be assigned dynamically to a processor during runtime of the system. On a regular basis, these assignments can be changed given current operating conditions of the system.
    Type: Application
    Filed: June 13, 2013
    Publication date: December 18, 2014
    Inventors: Andrew Raffman, Minsang Kim, Jason Wohlgemuth, Tristan Brown, Youssef Barakat, Omid Fatemieh
  • Publication number: 20140317327
    Abstract: Systems and methods for debouncing a signal line within a computer device are provided. The mechanical nature of physical buttons and switches oftentimes present irregular or noisy signals on a signal line when depressed by a user. Thus, noise and/or irregular waveforms may be present on a signal line that is monitored to produce interrupt signals, when deemed valid and genuine. In many embodiments given herein, debounce modules and techniques set a debounce interval timer and/or a noise filtering interval timer in which debounce modules and/or techniques may note whether the signal line is still asserted (e.g., possibly a genuine interrupt signal) during the debounce interval timer and stable (e.g., no further interrupts have fired) during the noise filtering interval timer.
    Type: Application
    Filed: April 21, 2013
    Publication date: October 23, 2014
    Applicant: Microsoft Corporation
    Inventors: Murali Ravirala, Omid Fatemieh, Gabriel Knezek, Youssef Barakat