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: 11429355
    Abstract: 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: Grant
    Filed: March 30, 2020
    Date of Patent: August 30, 2022
    Assignee: Google LLC
    Inventors: Gautham Thambidorai, Matthew Rosencrantz, Sanjay Ghemawat, Srdjan Petrovic, Ivan Posva
  • Patent number: 10887235
    Abstract: 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: Grant
    Filed: August 24, 2017
    Date of Patent: January 5, 2021
    Assignee: Google LLC
    Inventors: Gautham Thambidorai, Matthew Rosencrantz, Sanjay Ghemawat, Srdjan Petrovic, Ivan Posva
  • Publication number: 20200293292
    Abstract: 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: Application
    Filed: March 30, 2020
    Publication date: September 17, 2020
    Inventors: Gautham Thambidorai, Matthew Rosencrantz, Sanjay Ghemawat, Srdjan Petrovic, Ivan Posva
  • Patent number: 10642582
    Abstract: 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: Grant
    Filed: August 24, 2017
    Date of Patent: May 5, 2020
    Assignee: Google LLC
    Inventors: Gautham Thambidorai, Matthew Rosencrantz, Sanjay Ghemawat, Srdjan Petrovic, Ivan Posva
  • Patent number: 10599482
    Abstract: 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: Grant
    Filed: August 24, 2017
    Date of Patent: March 24, 2020
    Assignee: Google LLC
    Inventors: Gautham Thambidorai, Matthew Rosencrantz, Sanjay Ghemawat, Srdjan Petrovic, Ivan Posva
  • Publication number: 20190065154
    Abstract: 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: Application
    Filed: August 24, 2017
    Publication date: February 28, 2019
    Inventors: Gautham Thambidorai, Matthew Rosencrantz, Sanjay Ghemawat, Srdjan Petrovic, Ivan Posva
  • Publication number: 20190065162
    Abstract: 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: Application
    Filed: August 24, 2017
    Publication date: February 28, 2019
    Inventors: Gautham Thambidorai, Matthew Rosencrantz, Sanjay Ghemawat, Srdjan Petrovic, Ivan Posva
  • Publication number: 20190068504
    Abstract: 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: Application
    Filed: August 24, 2017
    Publication date: February 28, 2019
    Inventors: Gautham Thambidorai, Matthew Rosencrantz, Sanjay Ghemawat, Srdjan Petrovic, Ivan Posva
  • Patent number: 9201797
    Abstract: 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: Grant
    Filed: May 15, 2013
    Date of Patent: December 1, 2015
    Assignee: Google Inc.
    Inventors: Vyacheslav Egorov, Kevin Scott Millikin, Srdjan Mitrovic, Ivan Posva, Florian Schneider
  • Publication number: 20150324291
    Abstract: 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: Application
    Filed: May 15, 2013
    Publication date: November 12, 2015
    Inventors: Vyacheslav EGOROV, Kevin Scott MILLIKIN, Srdjan MITROVIC, Ivan POSVA, Florian SCHNEIDER
  • Publication number: 20150199186
    Abstract: 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: Application
    Filed: October 9, 2012
    Publication date: July 16, 2015
    Applicant: GOOGLE INC.
    Inventors: Srjdan MITROVIC, Kasper Verdich LUND, Ivan POSVA
  • Publication number: 20150199187
    Abstract: 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: Application
    Filed: October 9, 2012
    Publication date: July 16, 2015
    Applicant: Google Inc.
    Inventors: Matthias HAUSNER, Kasper Verdich LUND, Ivan POSVA
  • Patent number: 8949583
    Abstract: 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: Grant
    Filed: April 30, 2007
    Date of Patent: February 3, 2015
    Assignee: Azul Systems, Inc.
    Inventors: Gil Tene, Ivan Posva, Michael A. Wolf, Daniel Dwight Grove, Tom Kraljevic
  • Patent number: 8356297
    Abstract: 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: Grant
    Filed: March 21, 2007
    Date of Patent: January 15, 2013
    Assignee: Azul Systems, Inc.
    Inventors: Ivan Posva, Daniel Dwight Grove, Anirban Sengupta, Sivakumar Annamalai, Gil Tene
  • Patent number: 8230271
    Abstract: 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: Grant
    Filed: October 22, 2010
    Date of Patent: July 24, 2012
    Assignee: Azul Systems, Inc.
    Inventors: Daniel Dwight Grove, Ivan Posva, Jack H. Choquette, Cliff N. Click, Jr., Jeffrey Gee
  • Publication number: 20110041015
    Abstract: 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: Application
    Filed: October 22, 2010
    Publication date: February 17, 2011
    Applicant: AZUL SYSTEMS, INC.
    Inventors: Daniel Dwight Grove, Ivan Posva, Jack H. Choquette, Cliff N. Click, JR., Jeffrey Gee
  • Patent number: 7865701
    Abstract: 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: Grant
    Filed: September 14, 2005
    Date of Patent: January 4, 2011
    Assignee: Azul Systems, Inc.
    Inventors: Gil Tene, Ivan Posva, Michael A. Wolf, Daniel Dwight Grove, Tom Kraljevic
  • Patent number: 7844862
    Abstract: 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: Grant
    Filed: March 8, 2007
    Date of Patent: November 30, 2010
    Assignee: Azul Systems, Inc.
    Inventors: Daniel Dwight Grove, Ivan Posva, Jack H. Choquette, Cliff N. Click, Jr., Jeffrey Gee
  • Patent number: 7836280
    Abstract: 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: Grant
    Filed: September 14, 2005
    Date of Patent: November 16, 2010
    Assignee: Azul Systems, Inc.
    Inventors: Gil Tene, Ivan Posva, Michael A. Wolf, Daniel Dwight Grove, Tom Kraljevic
  • Patent number: 7257685
    Abstract: 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: Grant
    Filed: August 11, 2006
    Date of Patent: August 14, 2007
    Assignee: Azul Systems, Inc.
    Inventors: Gil Tene, Cliff N. Click, Michael A. Wolf, Ivan Posva