Patents by Inventor Patrick James Helland
Patrick James Helland 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: 10158642Abstract: Log entries are provided with unique entry identifiers, which may be sequenced in an incremental or decremental order, to create or to update a distributed log which may be replicated and distributed to multiple servers in a network. The entry identifiers may be appended to their respective log entries. Files, records or data which are identified by their respective log entries may be transmitted regardless of the sequence of the entry identifiers.Type: GrantFiled: May 6, 2016Date of Patent: December 18, 2018Assignee: salesforce.com, inc.Inventors: Venkateswararao Jujjuri, Sameer Tiwari, James John Seeger, Jr., Patrick James Helland
-
Publication number: 20180218023Abstract: Techniques are disclosed relating to efficiently processing of concurrent database transactions. In one embodiment, a database system receives a first key-value pair for a database transaction and stores the key-value pair in a data structure for active database transactions. The storing may include indexing into a hash table of the data structure with a key of the key-value pair to identify a hash bucket of the hash table corresponding to the key, acquiring a latch associated with the identified hash bucket, and, based on a state of the acquired latch, appending, to the hash bucket, a record specifying the key-value pair. The database system may cause the key-value pair from the data structure to be committed to persistent storage in response to the database transaction being committed.Type: ApplicationFiled: January 31, 2017Publication date: August 2, 2018Inventors: Thomas Fanghaenel, Patrick James Helland, James E. Mace
-
Publication number: 20180217987Abstract: This disclosure provides various techniques that may allow for accessing values stored in a data structure that stores multiple values corresponding to database transactions using a skip list. A key may be used to traverse the skip list to access data associated with the key. The skip list maintains on ordering of multiple keys, each associated with a particular record in the data structure, using indirect links between data records in the data structure that reference buckets included in hash table. Each bucket includes pointers to one or more records in the skip list.Type: ApplicationFiled: January 31, 2017Publication date: August 2, 2018Inventors: Patrick James Helland, James E. Mace, Thomas Fanghaenel
-
Publication number: 20180129693Abstract: Systems and methods provide multi-version concurrency control of database records with uncommitted transactions. The system and methods may include receiving a query regarding a transaction counter number. When a transaction header identifying data is updated with the assigned transaction counter number, the updated transaction header may be used in identifying data as an instance of multiversion concurrency control information by the received query. A key lookup may be performed, and when the key lookup encounters an uncommitted row for a transaction number, a corresponding transaction header identifying data to identify a data array element to determine whether the transaction number is committed, and determining the transaction counter number when the transaction number is committed. The transaction counter number may be stamped on the row version record when it is determined that the row is committed.Type: ApplicationFiled: November 4, 2016Publication date: May 10, 2018Inventors: Subho Sanjay Chatterjee, Patrick James Helland, Nathaniel Wyatt, James E. Mace, Punit B. Shah
-
Publication number: 20180129585Abstract: Systems and methods are provided for creating a sandbox for an original tenant at a point in time, the original tenant having original tenant data stored in an immutable storage associated with an original tenant identifier, the original tenant data as of the sandbox creation point in time being a virtual snapshot of the original tenant data accessible by a sandbox tenant, where the sandbox tenant data can be changed without changing the original tenant data, and the original tenant data can be changed without changing the sandbox tenant data. A sandbox tenant is created by associating a sandbox tenant identifier with the virtual snapshot of the original tenant data and with sandbox tenant data created by the sandbox tenant subsequent to the sandbox creation point in time. Original tenant data is subsequently created and associated with the original tenant identifier, and is not accessible to the sandbox tenant.Type: ApplicationFiled: November 8, 2016Publication date: May 10, 2018Inventors: Jameison Bear Martin, Subho Sanjay Chatterjee, Patrick James Helland, Nathaniel Wyatt, Thomas Fanghaenel, Terry Chong
-
Publication number: 20170322994Abstract: Log entries are provided with unique entry identifiers, which may be sequenced in an incremental or decremental order, to create or to update a distributed log which may be replicated and distributed to multiple servers in a network. The entry identifiers may be appended to their respective log entries. Files, records or data which are identified by their respective log entries may be transmitted regardless of the sequence of the entry identifiers.Type: ApplicationFiled: May 6, 2016Publication date: November 9, 2017Inventors: Venkateswararao Jujjuri, Sameer Tiwari, James John Seeger, JR., Patrick James Helland
-
Publication number: 20160117318Abstract: In accordance with embodiments, there are provided mechanisms and methods for facilitating dynamically unified system of record in an on-demand services environment in a multi-tenant environment according to one embodiment. In one embodiment and by way of example, a method includes integrating, by and incorporating into the database system, a plurality of subsystems into a unified system of record (“unified system), where each subsystem is independent of and incompatible with other subsystems of the plurality of subsystems, and collectively managing the plurality of subsystems, where collectively managing includes facilitating common communication within and between and uniform management of the plurality of subsystems based on common communication criteria and unified storage of data associated with the plurality of subsystems.Type: ApplicationFiled: October 28, 2014Publication date: April 28, 2016Inventor: PATRICK JAMES HELLAND
-
Patent number: 8819017Abstract: Embodiments of the present invention relate to systems, methods, and computer-storage media for affinitizing datasets based on efficient query processing. In one embodiment, a plurality of datasets within a data stream is received. The data stream is partitioned based on efficient query processing. Once the data stream is partitioned, an affinity identifier is assigned to datasets based on the partitioning of the dataset. Further, when datasets are broken into extents, the affinity identifier of the parent dataset is retained in the resulting extent. The affinity identifier of each extent is then referenced to preferentially store extents having common affinity identifiers within close proximity of one other across a data center.Type: GrantFiled: October 15, 2010Date of Patent: August 26, 2014Assignee: Microsoft CorporationInventors: Jingren Zhou, Patrick James Helland, Jonathan Forbes, Yaron Burd
-
Publication number: 20120096001Abstract: Embodiments of the present invention relate to systems, methods, and computer-storage media for affinitizing datasets based on efficient query processing. In one embodiment, a plurality of datasets within a data stream is received. The data stream is partitioned based on efficient query processing. Once the data stream is partitioned, an affinity identifier is assigned to datasets based on the partitioning of the dataset. Further, when datasets are broken into extents, the affinity identifier of the parent dataset is retained in the resulting extent. The affinity identifier of each extent is then referenced to preferentially store extents having common affinity identifiers within close proximity of one other across a data center.Type: ApplicationFiled: October 15, 2010Publication date: April 19, 2012Applicant: MICROSOFT CORPORATIONInventors: JINGREN ZHOU, PATRICK JAMES HELLAND, JONATHAN FORBES, YARON BURD
-
Patent number: 7076784Abstract: A run-time executive of an object management system for managing execution of software components in an object execution environment uses a component context object to store intrinsic context properties related to an associated component. The run-time executive maintains an implicit association of the component context object with the application component. For example, the context properties can include a client id, an activity id, and a transaction reference. The component context object also provides an interface accessible to the associated component, with member functions for use in transaction processing, in creating additional other application components inheriting component's context properties, and in access control based on abstract user classes (roles).Type: GrantFiled: October 22, 1999Date of Patent: July 11, 2006Assignee: Microsoft CorporationInventors: Wilfred G. Russell, Patrick James Helland, Greg Hope, Rodney Limprecht, Mohsen Al-Ghosein, Jan Stephen Gray
-
Patent number: 7062770Abstract: A component-based framework includes system services and component integration interfaces that provide a run-time environment for component-based server application in which server application components have control over the duration of their state independent of client action. The framework provides functions that a server application component calls to indicate its work for a client is complete, and its state is to be destroyed. On the component's return from the client's method call, the framework destroys the component's state thus releasing any server computer resources held by the component. This allows the server application components to be programmed so as to minimize the duration that their state remains in memory consuming server computer resources, and which enhances scalability of the server application.Type: GrantFiled: February 15, 2005Date of Patent: June 13, 2006Assignee: Microsoft CorporationInventors: Rodney T. Limprecht, Patrick James Helland, Mohsen M. Agsen
-
Patent number: 7043734Abstract: A component-based framework includes system services and component integration interfaces that provide a run-time environment for component-based server application in which server application components have control over the duration of their state independent of client action. The framework provides functions that a server application component calls to indicate its work for a client is complete, and its state is to be destroyed. On the component's return from the client's method call, the framework destroys the component's state thus releasing any server computer resources held by the component. This allows the server application components to be programmed so as to minimize the duration that their state remains in memory consuming server computer resources, and which enhances scalability of the server application.Type: GrantFiled: February 15, 2005Date of Patent: May 9, 2006Assignee: Microsoft CorporationInventors: Rodney T. Limprecht, Patrick James Helland, Mohsen M. Agsen
-
Patent number: 7043733Abstract: A component-based framework includes system services and component integration interfaces that provide a run-time environment for component-based server application in which server application components have control over the duration of their state independent of client action. The framework provides functions that a server application component calls to indicate its work for a client is complete, and its state is to be destroyed. On the component's return from the client's method call, the framework destroys the component's state thus releasing any server computer resources held by the component. This allows the server application components to be programmed so as to minimize the duration that their state remains in memory consuming server computer resources, and which enhances scalability of the server application.Type: GrantFiled: June 14, 2004Date of Patent: May 9, 2006Assignee: Microsoft CorporationInventors: Rodney Limprecht, Patrick James Helland, Mohsen Al-Ghosein
-
Publication number: 20040230986Abstract: A component-based framework includes system services and component integration interfaces that provide a run-time environment for component-based server application in which server application components have control over the duration of their state independent of client action. The framework provides functions that a server application component calls to indicate its work for a client is complete, and its state is to be destroyed. On the component's return from the client's method call, the framework destroys the component's state thus releasing any server computer resources held by the component. This allows the server application components to be programmed so as to minimize the duration that their state remains in memory consuming server computer resources, and which enhances scalability of the server application.Type: ApplicationFiled: June 14, 2004Publication date: November 18, 2004Applicant: Microsoft CorporationInventors: Rodney Limprecht, Patrick James Helland, Mohsen Al-Ghosein
-
Patent number: 6813769Abstract: A component-based framework includes system services and component integration interfaces that provide a run-time environment for component-based server application in which server application components have control over the duration of their state independent of client action. The framework provides functions that a server application component calls to indicate its work for a client is complete, and its state is to be destroyed. On the component's return from the client's method call, the framework destroys the component's state thus releasing any server computer resources held by the component. This allows the server application components to be programmed so as to minimize the duration that their state remains in memory consuming server computer resources, and which enhances scalability of the server application.Type: GrantFiled: October 28, 1997Date of Patent: November 2, 2004Assignee: Microsoft CorporationInventors: Rodney Limprecht, Patrick James Helland, Mohsen Al-Ghosein
-
Patent number: 6714962Abstract: A multi-tier server application architecture provides a simplified programming model of multiple user server applications that enhances programmer productivity. The multi-tier architecture comprises a client tier for client application code that initiates processing by the server application in response to user input, a middle tier of object-oriented server application code, and a database tier of shared access data and management code. A run-time environment for the object-oriented server application code limits access to instantiated objects of the middle tier server application code to a single one of the users. Objects in the middle tier that are instantiated to initiate processing for a particular user and grouped into a collection. The run-time environment manages the flow of execution into the collection such that the collection has only a single logical thread of execution and access by the client application code is exclusive to the particular user.Type: GrantFiled: March 16, 2000Date of Patent: March 30, 2004Assignee: Microsoft CorporationInventors: Patrick James Helland, Rodney Limprecht, Mohsen Al-Ghosein, David R. Reed
-
Patent number: 6678696Abstract: A component-based framework includes system services and component integration interfaces that provide a run-time environment which automatically processes work of component-based server applications in transactions according to transactional rules or behaviors declaratively specified to apply to the respective components. A transaction attribute is declaratively specified for a server application component that represents whether the component requires execution in a transaction. When a client requests creation of a server application component without having first initiated a transaction and the component's transaction attribute indicates a transaction is required, the framework automatically initiates a transaction in which to run the server application component. The framework also completes the automatically initiated transaction upon receiving an indication from the server application component that its transactional work is complete.Type: GrantFiled: January 4, 1999Date of Patent: January 13, 2004Assignee: Microsoft CorporationInventors: Patrick James Helland, Rodney Limprecht, Mohsen Al-Ghosein, Wilfred G. Russell
-
Patent number: 6631425Abstract: A run-time environment implemented as system services and component integration interfaces provides scalable and robust component-based server applications by deactivating server application components between uses by a client program on separate items of work while allowing the client program to retain references to server application components when deactivated. When a server application component is deactivated, a data state of the component and any resources held by the component are released. The run-time environment activates a component on receiving a call by the client to the component while the component is deactivated, whereupon the component is instantiated with an initial data state.Type: GrantFiled: October 28, 1997Date of Patent: October 7, 2003Assignee: Microsoft CorporationInventors: Patrick James Helland, Rodney Limprecht, Mohsen Al-Ghosein, Wilfred G. Russell, Jan Stephen Gray
-
Patent number: 6301601Abstract: A run-time environment implemented as system services and component integration interfaces provides a capability for components of a component-based server application to reversibly disable committal of a transaction in which the component participates. On return from a call to the component which leaves the component's transactional work in an invalid state, the component can disable commit of the transaction so as to avoid premature committal of the component's transactional work. On return from a call to the component which renders the component's transactional work in a valid state, the component re-enables commit of the transaction. If committal of the transaction is initiated when any component in the transaction disables commit, the transaction is aborted.Type: GrantFiled: July 12, 1999Date of Patent: October 9, 2001Assignee: Microsoft CorporationInventors: Patrick James Helland, Rodney Limprecht, Mohsen Al-Ghosein
-
Patent number: 6167423Abstract: In a computing environment containing a plurality of state machines that communicate by passing messages on connections, a construct called a clique controls access into a set of the state machines by worker threads that deliver the messages arriving on the connections. A clique is a collection of connections into the set of the state machines that have a common relationship for which concurrency isolation is required. Each clique has a message queue and a guard for marking the clique as busy or not busy, The guard prevents more than one thread at a time from delivering messages that arrive on connections in the clique to the set of state machines, thus ensuring concurrency isolation of the set of state machines. Messages that arrive on a connection in the clique while the clique is marked as busy are queued in the clique's message queue. The queued messages are delivered one at a time by a same worker thread that is currently busy in the clique.Type: GrantFiled: April 3, 1997Date of Patent: December 26, 2000Assignee: Microsoft CorporationInventors: Gagan Chopra, Matthew Clark McCline, Patrick James Helland, Mohsen M. Al-Ghosein