We've Moved!
Visit SDSU’s new digital collections website at https://digitalcollections.sdsu.edu
Description
Queuing systems have been gaining a rapid popularity in the software industry. Web applications and web services use queuing systems to hold messages produced by a producer component of a system. These messages later will be either picked up by a consumer component or pushed by the queuing system to registered consumers. The industry offers quite a few queuing systems, some of which are open source. High availability of a queuing system is the main concern for users when using such systems. Queues and messages managed by the system must be available at all times which are hard to achieve in case of a system crash. Amazon offers a highly available queuing system called SQS. SQS assures high availability of queues and messages at all times. Amazon achieves the state of high availability by distributing the messages into multiple servers. Not all servers have the same messages. Crashing of one or more queue servers does not impact the availability of queues and messages. SQS samples a subset of servers based on random weighed distribution algorithm when retrieving a message. SQS has some limitations resulting from inconsistency of servers. For example, a message might be returned more than once, messages are not retrieved in the order they were received and if a queue has few messages, 1000 or less, a retrieve message request might return no message and users must make consecutive retrieve requests. In this thesis project, a queuing system named "VSQS" is introduced for academic research only and it is not available for commercial use. This system is derived from Amazon SQS and uses the same mechanism of distributing a message into multiple servers to achieve high availability. However, VSQS takes a different approach in creating the subset; in that, a subset is preselected for each queue created and all messages of that queue go to the same subset. The advantage of pre-selecting a subset is to have better control over the subset and reduce the period of inconsistency between servers. This helps to overcome the limitations that appear when using SQS; the most important one is that the message will not be retrieved more than once. On the other hand, the disadvantage is that the chances of unavailability are increased when one or more servers of the pre-selected subset go down. This thesis studies the effects of pre-selecting a subset.