Patent application number | Description | Published |
20110078696 | WORK QUEUE SELECTION ON A LOCAL PROCESSOR WITHIN A MULTIPLE PROCESSOR ARCHITECTURE - A method and system is disclosed for selecting a work queue associated with a processor within a multiple processor architecture to assign a new task. A local and a remote queue availability flag is maintained to indicate a relative size of work queues, in relationship to a mean queue size, for each processor in a multiple processor architecture. In determining to which processor to assign a task, the processor evaluates its own queue size by examining its local queue availability flag and evaluates other processor's queue sizes by examining their remote queue availability flags. The local queue availability flags are maintained asynchronously from task assignment. Remote flags are maintained at time of task assignment. The presented algorithm provides improved local processor queue size determinations in systems where task distribution processes execute with lower priorities that other tasks. | 03-31-2011 |
20110078700 | TASK DISPATCHING IN MULTIPLE PROCESSOR SYSTEMS - A method and system is disclosed for dispatching tasks to multiple processors that all share a shared memory. A composite queue size for multiple work queues each having an associated processor is determined. A queue availability flag is stored in shared memory for each processor work queue and is set based upon the composite queue size and the size of the work queue for that processor. Each queue availability flag indicates availability or unavailability of the work queue to accept new tasks. A task is placed in a selected work queue based on that work queue having an associated queue availability flag indicating availability to accept new tasks. The data associated with task dispatching is maintained so as to increase the likelihood that valid copies of the data remain present in each processor's local cache without requiring updating do to their being changed by other processors. | 03-31-2011 |
20120078963 | SUPPORTING LINKED MULTI-USER DECISION MAKING IN ENVIRONMENTS WITH CONSTRAINED SHARED RESOURCES UTILIZING DURABLE FILES - Embodiments of the present invention manage multiple requests to allocate real world resources in a multi-user environment. A set of resource availability information is stored in a first durable data file for each resource in a plurality of resources provided by a database environment. The database environment is shared between a plurality of users. A decision context is associated with a second durable data file. The decision context is associated with a user interacting with the database environment. The decision context exists for a defined duration of time. A least one resource is determined to have been temporarily allocated to the decision context for the defined duration of time. The second durable data file is updated to indicate that the at least one resource has been temporarily allocated to the decision context. The first durable data file is updated to indicate that the at least one resource is currently unavailable. | 03-29-2012 |
20120079212 | ARCHITECTURE FOR SHARING CACHES AMONG MULTIPLE PROCESSES - Various embodiments of the present invention provide a system for caching information in a multi-process environment. The system includes a processor. A shared memory is communicatively coupled to the processor. The shared memory includes a set of data. A writer process is communicatively coupled to the shared memory. The write process reads and updates the set of data. A plurality of reader processes is communicatively coupled to the shared memory. Each reader process reads at least part of the set of data directly from the shared memory and sends a set of update information to the writer process. The writer process then updates the set of data stored in the shared memory based on the set of update information. | 03-29-2012 |
20120079213 | MANAGING CONCURRENT ACCESSES TO A CACHE - Various embodiments of the present invention manage concurrent accesses to a resource in a parallel computing environment. A plurality of locks is assigned to manage concurrent access to a plurality of parts of a resource. A usage of at least one of the plurality of parts of the resource is monitored. The assignment of the plurality of locks to the plurality of parts of the resource is modified based on the usage that has been monitored. | 03-29-2012 |
20120079391 | SUPPORTING LINKED MULTI-USER DECISION MAKING IN ENVIRONMENTS WITH CONSTRAINED SHARED RESOURCES - Embodiments of the present invention manage multiple requests to allocate real world resources in a multi-user environment. A request for interacting with a database environment comprising records of allocations of a plurality of resources is received from a user in a plurality of users. The database environment is shared between the plurality of users. A set of action choices available for the request is provided to the user via the user interface. A set of resources required by each action choice is identified. The set of resources is associated with a decision context. The decision context exists for a period of time. The set of resources are allocated to the user for a duration of the decision context. The allocating prevents the set of resources from being allocated to other users for the duration of the decision context irrespective of a set of actions performed by the other users. | 03-29-2012 |
20120303908 | MANAGING CONCURRENT ACCESSES TO A CACHE - Various embodiments of the present invention allow concurrent accesses to a cache. A request to update an object stored in a cache is received. A first data structure comprising a new value for the object is created in response to receiving the request. A cache pointer is atomically modified to point to the first data structure. A second data structure comprising an old value for the cached object is maintained until a process, which holds a pointer to the old value of the cached object, at least one of one of ends and indicates that the old value is no longer needed. | 11-29-2012 |
20130282985 | MANAGING CONCURRENT ACCESSES TO A CACHE - Various embodiments of the present invention allow concurrent accesses to a cache. A request to update an object stored in a cache is received. A first data structure comprising a new value for the object is created in response to receiving the request. A cache pointer is atomically modified to point to the first data structure. A second data structure comprising an old value for the cached object is maintained until a process, which holds a pointer to the old value of the cached object, at least one of one of ends and indicates that the old value is no longer needed. | 10-24-2013 |
20140215159 | MANAGING CONCURRENT ACCESSES TO A CACHE - Various embodiments of the present invention allow concurrent accesses to a cache. A request to update an object stored in a cache is received. A first data structure comprising a new value for the object is created in response to receiving the request. A cache pointer is atomically modified to point to the first data structure. A second data structure comprising an old value for the cached object is maintained until a process, which holds a pointer to the old value of the cached object, at least one of one of ends and indicates that the old value is no longer needed. | 07-31-2014 |