Patents by Inventor Andrew J Schofield
Andrew J Schofield 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: 10608970Abstract: A messaging system having a cluster of receiving applications for handling received messages, and a cluster of messaging engines for receiving messages from one or more message sources and forwarding the received messages to one of the receiving applications is provided. Each messaging engine is operable to transmit load balancing information, the load balancing information comprising an indication of the current loading on the messaging engine. The receiving applications are instructed to establish a connection to receive messages from a particular messaging engine within the cluster based on the load balancing information. Accordingly, applications are able to receive messages in such a way that the messages do not build up unprocessed on a particular messaging engine for too long, and such that messages are routed to messaging engines where messages are being consumed, and so that the receiving applications receive messages from every messaging engine where messages are arriving.Type: GrantFiled: April 1, 2016Date of Patent: March 31, 2020Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Leo J. Davison, Ian C. Edwards, Jonathan Levell, Andrew J. Schofield
-
Patent number: 10013293Abstract: In a messaging and queuing system that supports a cluster of logically associated messaging servers for controlling queues of messages, messages are processed. In response to an application program command to a first messaging server, a queue is opened, the queue having multiple instances on further messaging servers of the cluster. Responding to first messaging server putting messages on the queue, messages are distributed among the multiple instances of the queue on their respective messaging servers so as to balance. For the first message of an affinity set, access information for the particular queue instance to which it is put is obtained and stored. The access information may be used in order to send the further message to the particular queue instance and, if said further message is not part of the affinity set, it is put to an instance of the queue as determined by said predetermined rules.Type: GrantFiled: April 23, 2012Date of Patent: July 3, 2018Assignee: International Business Machines CorporationInventors: Andrew J. Schofield, Philip G. Willoughby
-
Publication number: 20170289084Abstract: A messaging system having a cluster of receiving applications for handling received messages, and a cluster of messaging engines for receiving messages from one or more message sources and forwarding the received messages to one of the receiving applications is provided. Each messaging engine is operable to transmit load balancing information, the load balancing information comprising an indication of the current loading on the messaging engine. The receiving applications are instructed to establish a connection to receive messages from a particular messaging engine within the cluster based on the load balancing information. Accordingly, applications are able to receive messages in such a way that the messages do not build up unprocessed on a particular messaging engine for too long, and such that messages are routed to messaging engines where messages are being consumed, and so that the receiving applications receive messages from every messaging engine where messages are arriving.Type: ApplicationFiled: April 1, 2016Publication date: October 5, 2017Inventors: LEO J. DAVISON, IAN C. EDWARDS, JONATHAN LEVELL, ANDREW J. SCHOFIELD
-
Patent number: 9519579Abstract: Technique for analyzing memory areas based on local copies of a global counter by: (i) determining a plurality of currently-executing fast threads and a plurality of currently executed slow threads; (ii) intermittently incrementing a global counter variable to have a current global counter value; (iii) intermittently setting the local counter of the data set for each fast thread of the plurality of fast threads to be equal to the current global counter value; (iv) determining that no slow threads of the plurality of slow threads reference the first memory region; (v) assigning a free-after value to the first memory region; (vi) determining whether the free-after value of the first memory region is less than or equal to all of the local counters of the fast thread data sets of the plurality of fast threads; and (vii) de-allocating the first memory region.Type: GrantFiled: March 31, 2015Date of Patent: December 13, 2016Assignee: International Business Machines CorporationInventors: Ian C. Edwards, Jonathan Levell, Andrew J. Schofield
-
Patent number: 9513812Abstract: Technique for analyzing memory areas based on local copies of a global counter by: (i) determining a plurality of currently-executing fast threads and a plurality of currently executed slow threads; (ii) intermittently incrementing a global counter variable to have a current global counter value; (iii) intermittently setting the local counter of the data set for each fast thread of the plurality of fast threads to be equal to the current global counter value; (iv) determining that no slow threads of the plurality of slow threads reference the first memory region; (v) assigning a free-after value to the first memory region; (vi) determining whether the free-after value of the first memory region is less than or equal to all of the local counters of the fast thread data sets of the plurality of fast threads; and (vii) de-allocating the first memory region.Type: GrantFiled: November 12, 2015Date of Patent: December 6, 2016Assignee: International Business Machines CorporationInventors: Ian C. Edwards, Jonathan Levell, Andrew J. Schofield
-
Publication number: 20160292072Abstract: Technique for analyzing memory areas based on local copies of a global counter by: (i) determining a plurality of currently-executing fast threads and a plurality of currently executed slow threads; (ii) intermittently incrementing a global counter variable to have a current global counter value; (iii) intermittently setting the local counter of the data set for each fast thread of the plurality of fast threads to be equal to the current global counter value; (iv) determining that no slow threads of the plurality of slow threads reference the first memory region; (v) assigning a free-after value to the first memory region; (vi) determining whether the free-after value of the first memory region is less than or equal to all of the local counters of the fast thread data sets of the plurality of fast threads; and (vii) de-allocating the first memory region.Type: ApplicationFiled: March 31, 2015Publication date: October 6, 2016Inventors: Ian C. Edwards, Jonathan Levell, Andrew J. Schofield
-
Publication number: 20160291880Abstract: Technique for analyzing memory areas based on local copies of a global counter by: (i) determining a plurality of currently-executing fast threads and a plurality of currently executed slow threads; (ii) intermittently incrementing a global counter variable to have a current global counter value; (iii) intermittently setting the local counter of the data set for each fast thread of the plurality of fast threads to be equal to the current global counter value; (iv) determining that no slow threads of the plurality of slow threads reference the first memory region; (v) assigning a free-after value to the first memory region; (vi) determining whether the free-after value of the first memory region is less than or equal to all of the local counters of the fast thread data sets of the plurality of fast threads; and (vii) de-allocating the first memory region.Type: ApplicationFiled: November 12, 2015Publication date: October 6, 2016Inventors: Ian C. Edwards, Jonathan Levell, Andrew J. Schofield
-
Patent number: 9009730Abstract: Transactional capable queuing is provided. A queue having an ordered list of messages is provided. A get cursor operation is provided within the queue to point to a current starting place for a getting application to start searching for a message to retrieve. A first lock is provided for putting operations, in response to there being more than one putting application, to ensure only one application is putting to the queue at a time. A second lock is provided for getting operations, in response to there being more than one getting application, to ensure that only one application is getting from the queue at a time. Putting applications and getting applications are synchronized to check and update the get cursor operation.Type: GrantFiled: January 30, 2014Date of Patent: April 14, 2015Assignee: International Business Machines CorporationInventors: Ian C. Edwards, Jonathan Levell, Trevor Lobban, Andrew J. Schofield
-
Publication number: 20140289744Abstract: Transactional capable queuing is provided. A queue having an ordered list of messages is provided. A get cursor operation is provided within the queue to point to a current starting place for a getting application to start searching for a message to retrieve. A first lock is provided for putting operations, in response to there being more than one putting application, to ensure only one application is putting to the queue at a time. A second lock is provided for getting operations, in response to there being more than one getting application, to ensure that only one application is getting from the queue at a time. Putting applications and getting applications are synchronized to check and update the get cursor operation.Type: ApplicationFiled: January 30, 2014Publication date: September 25, 2014Applicant: International Business Machines CorporationInventors: Ian C. Edwards, Jonathan Levell, Trevor Lobban, Andrew J. Schofield
-
Patent number: 8577981Abstract: A system receives an identifier for a temporary destination in response to messaging software at a client requesting that a messaging server create the temporary destination. The messaging software uses the identifier to indicate the temporary destination as a destination for responses to messages from the messaging software. The identifier is logged. A disconnection from the messaging server is detected. A second request for a temporary destination is created. The identifier is indicated in the second request. The second request indicating the identifier is transmitted to the messaging server to preserve a messaging service in a highly available environment.Type: GrantFiled: June 18, 2012Date of Patent: November 5, 2013Assignee: International Business Machines CorporationInventor: Andrew J. Schofield
-
Publication number: 20120290639Abstract: In a messaging and queuing system that supports a cluster of logically associated messaging servers for controlling queues of messages, messages are processed. In response to an application program command to a first messaging server, a queue is opened, the queue having multiple instances on further messaging servers of the cluster. Responding to first messaging server putting messages on the queue, messages are distributed among the multiple instances of the queue on their respective messaging servers so as to balance. For the first message of an affinity set, access information for the particular queue instance to which it is put is obtained and stored. The access information may be used in order to send the further message to the particular queue instance and, if said further message is not part of the affinity set, it is put to an instance of the queue as determined by said predetermined rules.Type: ApplicationFiled: April 23, 2012Publication date: November 15, 2012Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Andrew J. Schofield, Philip G. Willoughby
-
Publication number: 20120254336Abstract: A system receives an identifier for a temporary destination in response to messaging software at a client requesting that a messaging server create the temporary destination. The messaging software uses the identifier to indicate the temporary destination as a destination for responses to messages from the messaging software. The identifier is logged. A disconnection from the messaging server is detected. A second request for a temporary destination is created. The identifier is indicated in the second request. The second request indicating the identifier is transmitted to the messaging server to preserve a messaging service in a highly available environment.Type: ApplicationFiled: June 18, 2012Publication date: October 4, 2012Applicant: International Business Machines CorporationInventor: Andrew J. Schofield
-
Patent number: 8234345Abstract: A system receives an identifier for a temporary destination in response to messaging software at a client requesting that a messaging server create the temporary destination. The messaging software uses the identifier to indicate the temporary destination as a destination for responses to messages from the messaging software. The identifier is logged. A disconnection from the messaging server is detected. A second request for a temporary destination is created. The identifier is indicated in the second request. The second request indicating the identifier is transmitted to the messaging server to preserve a messaging service in a highly available environment.Type: GrantFiled: November 30, 2009Date of Patent: July 31, 2012Assignee: International Business Machines CorporationInventor: Andrew J. Schofield
-
Patent number: 8095766Abstract: A method and system for increasing a system's performance and achieving improved memory utilization by approximating the memory sizes that will be required for data objects that can be deserialized and constructed in a memory cache. The method and system may use accurate calculations or measurements of similar objects to calibrate the approximate memory sizes.Type: GrantFiled: April 7, 2008Date of Patent: January 10, 2012Assignee: International Business Machines CorporationInventors: Tian Cheng Liu, Susan P Paice, Andrew J Schofield, Qi Ming Teng
-
Publication number: 20100325640Abstract: In a messaging and queuing system that supports a cluster of logically associated messaging servers for controlling queues of messages, messages are processed. In response to an application program command to a first messaging server, a queue is opened, the queue having multiple instances on further messaging servers of the cluster. Responding to first messaging server putting messages on the queue, messages are distributed among the multiple instances of the queue on their respective messaging servers so as to balance. For the first message of an affinity set, access information for the particular queue instance to which it is put is obtained and stored. The access information may be used in order to send the further message to the particular queue instance and, if said further message is not part of the affinity set, it is put to an instance of the queue as determined by said predetermined rules.Type: ApplicationFiled: June 16, 2010Publication date: December 23, 2010Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Andrew J. Schofield, Philip G. Willoughby
-
Publication number: 20100268781Abstract: A system receives an identifier for a temporary destination in response to messaging software at a client requesting that a messaging server create the temporary destination. The messaging software uses the identifier to indicate the temporary destination as a destination for responses to messages from the messaging software. The identifier is logged. A disconnection from the messaging server is disconnected. A second request for a temporary destination is created. The identifier is indicated in the second request. The second request indicating the identifier is transmitted to the messaging server to preserve a messaging service in a highly available environment.Type: ApplicationFiled: November 30, 2009Publication date: October 21, 2010Applicant: International Business Machines CorporationInventor: Andrew J. Schofield
-
Publication number: 20090254706Abstract: A method and system for increasing a system's performance and achieving improved memory utilization by approximating the memory sizes that will be required for data objects that can be deserialized and constructed in a memory cache. The method and system may use accurate calculations or measurements of similar objects to calibrate the approximate memory sizes.Type: ApplicationFiled: April 7, 2008Publication date: October 8, 2009Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Tian Cheng Liu, Qi Ming Teng, Susan P. Paice, Andrew J Schofield