Genevieve Fernandes - Redmond WA, US Marko Radmilac - Bellevue WA, US Donald James McCrady - Redmond WA, US Krishnan Varadarajan - Redmond WA, US
Assignee:
Microsoft Corporation - Redmond WA
International Classification:
G06F 9/46 G06F 15/173
US Classification:
718105, 718104, 709226
Abstract:
Embodiments are directed to dynamically allocating processing resources among a plurality of resource schedulers. A resource manager dynamically allocates resources to a first resource scheduler. The resource manager is configured to dynamically allocate resources among a plurality of resource schedulers, and each scheduler is configured to manage various processing resources. The resource manager determines that at least one of the processing resources dynamically allocated to the first resource scheduler is idle. The resource manager determines that at least one other resource scheduler needs additional processing resources and, based on the determination, loans the determined idle processing resource of the first resource scheduler to a second resource scheduler.
Henry Gabryjelski - Seattle WA, US Krishnan Varadarajan - Redmond WA, US Peter Wieland - Seattle WA, US Raju Ramanathan - Redmond WA, US
Assignee:
Microsoft Corporation - Redmond WA
International Classification:
G06F 17/30 G06F 13/28
US Classification:
707206000, 711135000, 711141000
Abstract:
A system that facilitates the storage of data using a write barrier. The system interfaces to a hardware component that stores data, and includes a write barrier component that dynamically employs instructions compatible with the hardware component to ensure data integrity during storage of the data. The write barrier component is independent of at least an operating system and an application and can operate in a least one of a user mode and a kernel mode. The write barrier component includes at least one of software instructions, routines, and methods, the selection of one or more of which is based on hardware data extracted from the hardware component. A selection component interrogates the hardware component for hardware data to facilitate selection of one or more instructions most suitable for interfacing to the hardware component. A coalescing component combines cache synchronization requests into a single set of instructions, which set is processed to flush a disk cache in one process.
Krishnan Varadarajan - Redmond WA, US Michael L. Chu - Bellevue WA, US
Assignee:
MICROSOFT CORPORATION - Redmond WA
International Classification:
G06F 9/45 G06F 9/46
US Classification:
717136, 718104
Abstract:
An execution environment in a computer system provides dynamic data and compute resources elasticity for user code to improve execution efficiency. The execution environment translates the user code into a runtime agnostic representation with a set of tasks. For each task, the execution environment determines a level of concurrency for executing the task based on the size of the set of input data for the task, the amount of compute resources available at the time of invocation of the task, and any context-sensitive heuristics provided by the user code.
Runtime Agnostic Representation Of User Code For Execution With Selected Execution Runtime
Krishnan Varadarajan - Redmond WA, US Michael L. Chu - Bellevue WA, US
Assignee:
MICROSOFT CORPORATION - Redmond WA
International Classification:
G06F 9/45 G06F 9/46
US Classification:
717136, 718102
Abstract:
An execution environment in a computer system allows user code to be executed using multiple execution runtimes. The execution environment translates the user code into a runtime agnostic representation, selects an execution runtime for executing the runtime agnostic representation, and invokes a scheduler for the selected execution runtime. The scheduler dispatches tasks from the runtime agnostic representation for execution by the computer system using concurrency mechanisms in the selected execution runtime.
Declarative Programming Model With A Native Programming Language
Krishnan Varadarajan - Redmond WA, US Michael L. Chu - Bellevue WA, US
Assignee:
MICROSOFT CORPORATION - Redmond WA
International Classification:
G06F 9/45
US Classification:
717136
Abstract:
An execution environment in a computer system supports a declarative programming model where user code is written with a query syntax in a native programming language to express inherent parallelism in terms of data flow. The execution environment translates queries in the user code into a runtime agnostic representation and dynamically selects an execution runtime for executing the runtime agnostic representation.
Verification Of A Dataflow Representation Of A Program Through Static Type-Checking
Krishnan Varadarajan - Redmond WA, US Michael L. Chu - Bellevue WA, US
Assignee:
Microsoft Corporation - Redmond WA
International Classification:
G06F 9/45
US Classification:
717155
Abstract:
Functionality is described for providing a compiled program that can be executed in a parallel and a distributed manner by any selected runtime environment. The functionality includes a compiler module for producing the compiled program based on a dataflow representation of a program (i.e., a dataflow-expressed program). The dataflow-expressed program, in turn, includes a plurality of tasks that are connected together in a manner specified by a graph (such as a directed acyclic graph). The compiler module also involves performing static type-checking on the dataflow-expressed program to identify the presence of any mismatch errors in the dataflow-expressed program. By virtue of this approach, the above-described functionality can identify any errors in constructing the graph prior to its instantiation and execution in a runtime environment.
Throttling Queue For A Request Scheduling And Processing System
Various methods and systems for implementing request scheduling and processing in a multi-tenant distributed computing environment are provided. Requests to utilize system resources in the distributed computing environment are stored in account queues corresponding to tenant accounts. If storing a request in an account queue would exceed a throttling threshold such as a limit on the number of requests stored per account, the request is dropped to a throttling queue. A scheduler prioritizes processing requests stored in the processing queue before processing requests stored in the account queues. The account queues can be drained using dominant resource scheduling. In some embodiments, a request is not picked up from an account queue if processing the request would exceed a predefined hard limit on system resource utilization for the corresponding tenant account. In some embodiments, the hard limit is defined as a percentage of threads the system has to process requests.
- Redmond WA, US Krishnan VARADARAJAN - Redmond WA, US Maneesh SAH - Sammamish WA, US Sundar P. SUBRAMANI - Bellevue WA, US Bitan DEB - Redmond WA, US Bharat JOSHI - Kirkland WA, US Malavika ARUNMOZHI - Bellevue WA, US
Assignee:
Microsoft Technology Licensing, LLC - Redmond WA
International Classification:
G06F 11/14
Abstract:
Described herein is a system method for point in time blob restore. In response to receipt of a request to restore a particular blob range to a particular point in time, read and/or write operations on the particular blob range requested to be restored are blocked. Blob(s) in the particular blob range which have changed since the particular point in time are determined based, at least in part, upon information stored in a change log and/or a deleted blob store. A determination is made as to whether the requested restore operation can be performed, for example, based upon a restoration policy. When it is determined that the requested restore operation can be performed, blob(s) determined to have changed since the particular point in time based, at least in part, upon information stored in the change log and/or the deleted blob store are restored.
University of Illinois at Urbana - Champaign 1997 - 1999
Master of Science, Masters, Computer Science
College of Engineering, Trivandrum 1991 - 1995
Bachelors, Bachelor of Science, Computer Science