Graduate Project

Simulation and verification of performance differences between single queue vs. multiple queues in Oracle AQ

Oracle Advanced Queuing (AQ) is a queue management facility for Oracle Databases. Oracle Streams AQ enables user applications to enqueue messages into a queue, ande subsequently dequeued by subscribers or recipients. A queue can contain a message of a particular type or of a generic type 'SYS.AnyData'. Oracle AQ can track, preserve, document, query, filter, and transform queued messages. In particular, messages are processed using the core Oracle SQL processing engine, meaning that messages are managed as persistent (transactional) or buffered (non-transactional) table rows. Enqueued messages can be handled using either single or multiple queues, and thus, there will be performance differences between the two setups. Our simulations were limited to persistent messaging. In the single queue setup all messages are handled by one queue. In the multiple queues setup, messages are distributed among queues each of which handle a different message type. The simulation results from the single queue setup and the results from the implementation of single queue setup in Oracle were compared. The comparison showed that the simulation was accurate. The data from the single queue simulation was studied and used as a benchmark to build a three queue setup simulation. The results of this simulation were then compared with the first simulation for performance enhancements. The project discusses the methods in which the simulation models (written in GPSS) were created, how the implementation in Oracle was achieved and how the results were gathered and compared. The project also compared GPSS model results and Oracle AQ actual behavior against classical queuing theory steady state statistics such as average queue length, server utilization, and so forth.

Items in ScholarWorks are protected by copyright, with all rights reserved, unless otherwise indicated.