EP0923027A2

Handling processor-intensive operations in a data processing system

Abstract

Provided are a system and a method for data retrieval which identify from requested data retrieval operations those operations which require a particular processing task to be performed, and then separate those operations from operations not requiring the processing task. The separated sets of tasks are queued separately for independent processing. This enables resource scheduling to be performed which avoids the operations which do not require performance of the task from having to wait for the operations which do require the task. This is an advantage where the task is a processor-intensive task such as digital watermarking of images. A particular resource allocation method includes enqueuing the set of operations requiring the processing task in a circularly linked list and then employing a scheduler to implement a round-robin allocation of resources for each of the system users in turn. Also provided is a pre-fetch policy whereby sets of data objects are retrieved from a data repository for processing in response to data retrieval requests and post-retrieval processing such as watermarking is initiated before an individual data object in the set has been selected.

EP0923027A2, drawing sheet 1
Sheet 1 of 16

Term

Term ended

Projected expiry passed 7 December 2018, 7.8 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

17 claims: 7 independent, 10 dependent

  1. 1
    A method for retrieving data using a data retrieval system, in response to data retrieval requests, the method including:responsive to receipt of data retrieval requests by the data retrieval system, identifying requested data retrieval operations requiring a first predetermined task to be performed;inputting into a first processing queue only the data retrieval operations requiring said first predetermined task to be performed;handling data retrieval operations which do not require said first predetermined task to be performed without performing said first predetermined task;processing the data retrieval operations in the first processing queue including performing said first processing task;anddelivering the processed data to the requester.
  2. 5
    A data retrieval method according to any one of the preceding claims, wherein the step of identifying requested data retrieval operations requiring performance of said first task includes comparison between data object metadata obtained from the data retrieval requests and a lookup table relating data objects to required processing tasks.
  3. 6
    A data retrieval method according to any one of the preceding claims wherein said first processing queue comprises a plurality of queues and data retrieval operations are allocated between said plurality of queues according to the size of the requested data objects.
  4. 7
    A data retrieval method according to any one of the preceding claims wherein said first processing queue is a circularly-linked list to which requested data retrieval operations are added, the operations being indexed according to the ID's of their end user requesters, and wherein the data retrieval operations in said circularly-linked-list are processed in a circular sequence such that a predefined unit of processing is performed for each end user requester in turn.
  5. 10
    A method for allocating data processing resources between users of a data retrieval system, the method including:inputting data retrieval requests to a scheduler within the data retrieval system;identifying requested data retrieval operations requiring performance of a first predetermined processor-intensive task;retrieving requested data objects from a repository;inputting into a first circularly-linked-list the data retrieval operations requiring performance of said predetermined task, the operations being indexed according to their end user requesters;handling data retrieval operations which do not require performance of said predetermined task without performing said predetermined task;andprocessing data retrieval operations in said first circularly-linked-list, including performing said predetermined task, in a circular sequence such that a predefined unit of processing is performed for each end user requester in turn.
  6. 14
    A method of retrieving via a data retrieval system requested data objects, wherein the system is responsive to received requests identifying a required data object container to retrieve from a data repository the contents of the data object container;determine which of the data objects within the container require post-retrieval processing prior to delivery to the requester;initiate performance of said required post-retrieval processing for the data objects within the container;andtransfer to a system cache the processed data objects resulting from said post-retrieval processing;and wherein the system is responsive to subsequent requests identifying a required one or more of said container's data objects to access the cache to obtain said one or more data objects.
  7. 16
    A data retrieval system for retrieving stored data objects from a repository, the system including:means for receiving data retrieval requests;means for establishing a connection to said repository for retrieval of one or more stored data objects;a resource manager adapted to identify from said requests data retrieval operations requiring a first predetermined task to be performed and adapted to enqueue, subsequent to retrieval of said one or more data objects from the repository, said identified data retrieval operations requiring performance of said first predetermined task for processing separately from other data retrieval operations;a process for performing said first predetermined task on the operations in said queue;andmeans for delivering to the requester the processed retrieved data objects.