Patents by Inventor Ivan Posva
Ivan Posva 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).
-
Patent number: 11429355Abstract: A programming model provides a method for type inference in programming operations. Information defining one or more attributes of an operation is received, the information specifying a field including a field name and a field type identifier for each of the attributes. Constraints for the operation are determined at least based on the attributes, wherein the constraints restrict at least one of a type of input for the operation or a type of output for the operation. Information defining an input for the operation is received, and it is determined, based on the constraints and the received information defining the input, the type of output for the operation. The type of output is associated with an output for the operation.Type: GrantFiled: March 30, 2020Date of Patent: August 30, 2022Assignee: Google LLCInventors: Gautham Thambidorai, Matthew Rosencrantz, Sanjay Ghemawat, Srdjan Petrovic, Ivan Posva
-
Patent number: 10887235Abstract: A programming model provides a method for executing a program in a distributed architecture. One or more first shards of the distributed architecture execute one or more operations, and sending tuples to at least one second shard, the tuples being part of a stream and being based on the one or more operations. The one or more first shards send a token value to the at least one second shard when the sending of the tuples in the stream is complete. The at least one second shard determines whether a total of the token values matches a number of the one or more first shards, and takes a first action in response to determining that the total of the token values matches the number of the one or more first shards. The first action may include marking the stream as being complete and/or generating a message indicating that the stream is complete.Type: GrantFiled: August 24, 2017Date of Patent: January 5, 2021Assignee: Google LLCInventors: Gautham Thambidorai, Matthew Rosencrantz, Sanjay Ghemawat, Srdjan Petrovic, Ivan Posva
-
Publication number: 20200293292Abstract: A programming model provides a method for type inference in programming operations. Information defining one or more attributes of an operation is received, the information specifying a field including a field name and a field type identifier for each of the attributes. Constraints for the operation are determined at least based on the attributes, wherein the constraints restrict at least one of a type of input for the operation or a type of output for the operation. Information defining an input for the operation is received, and it is determined, based on the constraints and the received information defining the input, the type of output for the operation. The type of output is associated with an output for the operation.Type: ApplicationFiled: March 30, 2020Publication date: September 17, 2020Inventors: Gautham Thambidorai, Matthew Rosencrantz, Sanjay Ghemawat, Srdjan Petrovic, Ivan Posva
-
Patent number: 10642582Abstract: A programming model provides a method for type inference in programming operations. Information defining one or more attributes of an operation is received, the information specifying a field including a field name and a field type identifier for each of the attributes. Constraints for the operation are determined at least based on the attributes, wherein the constraints restrict at least one of a type of input for the operation or a type of output for the operation. Information defining an input for the operation is received, and it is determined, based on the constraints and the received information defining the input, the type of output for the operation. The type of output is associated with an output for the operation.Type: GrantFiled: August 24, 2017Date of Patent: May 5, 2020Assignee: Google LLCInventors: Gautham Thambidorai, Matthew Rosencrantz, Sanjay Ghemawat, Srdjan Petrovic, Ivan Posva
-
Patent number: 10599482Abstract: A programming model generates a graph for a program, the graph including a plurality of nodes and edges, wherein each node of the graph represents an operation and edges between the nodes represent streams of data input to and output from the operations represented by the nodes. The model determines where in a distributed architecture to execute the operations represented by the nodes. Such determining may include determining which nodes have location restrictions, assigning locations to each node having a location restriction based on the restriction, and partitioning the graph into a plurality of subgraphs, the partitioning including assigning locations to nodes without location restrictions in accordance with a first set of constraints, wherein each node within a particular subgraph is assigned to the same location. Each of the subgraphs is executed at its assigned location in a respective single thread.Type: GrantFiled: August 24, 2017Date of Patent: March 24, 2020Assignee: Google LLCInventors: Gautham Thambidorai, Matthew Rosencrantz, Sanjay Ghemawat, Srdjan Petrovic, Ivan Posva
-
Publication number: 20190065154Abstract: A programming model provides a method for type inference in programming operations. Information defining one or more attributes of an operation is received, the information specifying a field including a field name and a field type identifier for each of the attributes. Constraints for the operation are determined at least based on the attributes, wherein the constraints restrict at least one of a type of input for the operation or a type of output for the operation. Information defining an input for the operation is received, and it is determined, based on the constraints and the received information defining the input, the type of output for the operation. The type of output is associated with an output for the operation.Type: ApplicationFiled: August 24, 2017Publication date: February 28, 2019Inventors: Gautham Thambidorai, Matthew Rosencrantz, Sanjay Ghemawat, Srdjan Petrovic, Ivan Posva
-
Publication number: 20190065162Abstract: A programming model generates a graph for a program, the graph including a plurality of nodes and edges, wherein each node of the graph represents an operation and edges between the nodes represent streams of data input to and output from the operations represented by the nodes. The model determines where in a distributed architecture to execute the operations represented by the nodes. Such determining may include determining which nodes have location restrictions, assigning locations to each node having a location restriction based on the restriction, and partitioning the graph into a plurality of subgraphs, the partitioning including assigning locations to nodes without location restrictions in accordance with a first set of constraints, wherein each node within a particular subgraph is assigned to the same location. Each of the subgraphs is executed at its assigned location in a respective single thread.Type: ApplicationFiled: August 24, 2017Publication date: February 28, 2019Inventors: Gautham Thambidorai, Matthew Rosencrantz, Sanjay Ghemawat, Srdjan Petrovic, Ivan Posva
-
Publication number: 20190068504Abstract: A programming model provides a method for executing a program in a distributed architecture. One or more first shards of the distributed architecture execute one or more operations, and sending tuples to at least one second shard, the tuples being part of a stream and being based on the one or more operations. The one or more first shards send a token value to the at least one second shard when the sending of the tuples in the stream is complete. The at least one second shard determines whether a total of the token values matches a number of the one or more first shards, and takes a first action in response to determining that the total of the token values matches the number of the one or more first shards. The first action may include marking the stream as being complete and/or generating a message indicating that the stream is complete.Type: ApplicationFiled: August 24, 2017Publication date: February 28, 2019Inventors: Gautham Thambidorai, Matthew Rosencrantz, Sanjay Ghemawat, Srdjan Petrovic, Ivan Posva
-
Patent number: 9201797Abstract: Aspects of the subject technology relate to a computer-implemented process, including steps for compiling a first method call at a first call site in code of an object-oriented language, wherein the first call site is associated with a first selector, referencing a global cache comprising a plurality of per-selector caches, wherein each of the per-selector caches is indexed based on a corresponding selector identification and identifying a first per-selector cache, from among the plurality of per-selector caches, using the first selector. In certain aspects, the process can further include steps for invoking a method on a first object by performing a lookup in the first per-selector cache using a class associated with the first object to determine if a first target function exists in the first per-selector cache. Systems and computer readable media are also provided.Type: GrantFiled: May 15, 2013Date of Patent: December 1, 2015Assignee: Google Inc.Inventors: Vyacheslav Egorov, Kevin Scott Millikin, Srdjan Mitrovic, Ivan Posva, Florian Schneider
-
Publication number: 20150324291Abstract: Aspects of the subject technology relate to a computer-implemented process, including steps for compiling a first method call at a first call site in code of an object-oriented language, wherein the first call site is associated with a first selector, referencing a global cache comprising a plurality of per-selector caches, wherein each of the per-selector caches is indexed based on a corresponding selector identification and identifying a first per-selector cache, from among the plurality of per-selector caches, using the first selector. In certain aspects, the process can further include steps for invoking a method on a first object by performing a lookup in the first per-selector cache using a class associated with the first object to determine if a first target function exists in the first per-selector cache. Systems and computer readable media are also provided.Type: ApplicationFiled: May 15, 2013Publication date: November 12, 2015Inventors: Vyacheslav EGOROV, Kevin Scott MILLIKIN, Srdjan MITROVIC, Ivan POSVA, Florian SCHNEIDER
-
Publication number: 20150199186Abstract: Methods and systems are provided for implementing an inline cache that uses a data array to perform receiver class checks. The data array contains classes, targets, and counters. The invocation is forwarded to the appropriate target when the checked class matches. On the other hand, an inline cache miss expands the data array with the new receiver class. The inline cache stub counts the invocations for specific classes and stores the count into the data array. The optimizing compiler can generate better code using the call type frequency (e.g., sort checks, limit the number of checks to the most frequently used classes, etc.).Type: ApplicationFiled: October 9, 2012Publication date: July 16, 2015Applicant: GOOGLE INC.Inventors: Srjdan MITROVIC, Kasper Verdich LUND, Ivan POSVA
-
Publication number: 20150199187Abstract: Methods and systems are provided for increasing the speed at which source code is incrementally compiled by eagerly tokenizing the source code and retaining the sequence of tokens for later use of the compiler. The token sequence may be stored along with a snapshot of the execution state of the program. This snapshot represents the program logic as well as a specific state of the program. The snapshot can be sent to the client, which then recreates the state of the program. Fast startup time of programs on the client is achieved by incrementally compiling only the parts of the program that are executed. Rather than tokenizing the program each time a small portion of it is compiled, the sequence of tokens stored in the snapshot may be used.Type: ApplicationFiled: October 9, 2012Publication date: July 16, 2015Applicant: Google Inc.Inventors: Matthias HAUSNER, Kasper Verdich LUND, Ivan POSVA
-
Patent number: 8949583Abstract: Executing a set one or more instructions is disclosed. A set of one or more register states is saved in a software data structure. The set of instructions is speculatively executed. At least one store made to a memory location during the speculative execution is not committed until the speculative execution is successfully completed. If an abort indication is received, the state of one or more registers restored.Type: GrantFiled: April 30, 2007Date of Patent: February 3, 2015Assignee: Azul Systems, Inc.Inventors: Gil Tene, Ivan Posva, Michael A. Wolf, Daniel Dwight Grove, Tom Kraljevic
-
Patent number: 8356297Abstract: Interacting with an external environment of a segmented virtual machine is disclosed. An indication that a communication with an external environment is desired is received. It is determined whether the communication can be initiated directly from a core virtual machine of the segmented virtual machine without initiating the communication from a shell virtual machine of the segmented virtual machine. An attempt to initiate the communication is made based as at least in part on the determination.Type: GrantFiled: March 21, 2007Date of Patent: January 15, 2013Assignee: Azul Systems, Inc.Inventors: Ivan Posva, Daniel Dwight Grove, Anirban Sengupta, Sivakumar Annamalai, Gil Tene
-
Patent number: 8230271Abstract: Detecting a race condition is disclosed. An indication of a store operation to a memory address is received. An identifier of the memory address is stored. The identifier is used to detect an occurrence of a memory operation that is not associated with a previous ordering operation.Type: GrantFiled: October 22, 2010Date of Patent: July 24, 2012Assignee: Azul Systems, Inc.Inventors: Daniel Dwight Grove, Ivan Posva, Jack H. Choquette, Cliff N. Click, Jr., Jeffrey Gee
-
Publication number: 20110041015Abstract: Detecting a race condition is disclosed. An indication of a store operation to a memory address is received. An identifier of the memory address is stored. The identifier is used to detect an occurrence of a memory operation that is not associated with a previous ordering operation.Type: ApplicationFiled: October 22, 2010Publication date: February 17, 2011Applicant: AZUL SYSTEMS, INC.Inventors: Daniel Dwight Grove, Ivan Posva, Jack H. Choquette, Cliff N. Click, JR., Jeffrey Gee
-
Patent number: 7865701Abstract: Executing a set one or more instructions atomically is disclosed. Executing includes saving a set of one or more register states in a software data structure, speculatively executing the set of instructions, and restoring the state of one or more registers when an abort indication is received.Type: GrantFiled: September 14, 2005Date of Patent: January 4, 2011Assignee: Azul Systems, Inc.Inventors: Gil Tene, Ivan Posva, Michael A. Wolf, Daniel Dwight Grove, Tom Kraljevic
-
Patent number: 7844862Abstract: Detecting a race condition is disclosed. An indication of a store operation to a memory address is received. An identifier of the memory address is stored. The identifier is used to detect an occurrence of a memory operation that is not associated with a previous ordering operation.Type: GrantFiled: March 8, 2007Date of Patent: November 30, 2010Assignee: Azul Systems, Inc.Inventors: Daniel Dwight Grove, Ivan Posva, Jack H. Choquette, Cliff N. Click, Jr., Jeffrey Gee
-
Patent number: 7836280Abstract: Executing a set of one or more instructions atomically is disclosed. Executing includes determining whether speculatively executing the instructions is advised based at least in part on dynamic information associated with synchronization data and speculatively executing the instructions when it is determined that speculatively executing the instructions is advised.Type: GrantFiled: September 14, 2005Date of Patent: November 16, 2010Assignee: Azul Systems, Inc.Inventors: Gil Tene, Ivan Posva, Michael A. Wolf, Daniel Dwight Grove, Tom Kraljevic
-
Patent number: 7257685Abstract: Improving performance of a computer program is disclosed. A first set of escape data is gathered. A first compiled program is provided using the first set of escape data. A second set of escape data is gathered based on the first compiled program. A second compiled program is provided using the second set of escape data. The second compiled program is more optimized than the first compiled program.Type: GrantFiled: August 11, 2006Date of Patent: August 14, 2007Assignee: Azul Systems, Inc.Inventors: Gil Tene, Cliff N. Click, Michael A. Wolf, Ivan Posva