Code Monkey home page Code Monkey logo

prefetch-experiment-server's Introduction

==========================
Prefetch Experiment Server
==========================

OVERVIEW

This server exposes a simple SOAP service that can be used to explore settings that
affect service performance that are outside the actual processing.  The idea is to
measure the time spent in infrastructure and examine the affect of various settings
and what limits the server can handle given certain settings.

The original intent was to explore the effect of the prefetch setting in the AMQ 
connection URLs.  The prefetch determines the maximum number of messages that will be
dispatch to a consumer from the queue with each interaction between the consumer and
the AMQ server.  Once a message is on the prefetch queue, it cannot be processed by
another consumer.  Therefore any messages sent to a particular consumer must wait for
any previously dispatch messages to be processed.  In a SOAP over JMS environment this
causes a percentage of messages to expire unless their timeout is set exceptionally
high.  In a high throughput system this is not acceptable.

The experiment was designed to test the affects of prefetch and after running several
tests, a prefetch of 0 seems to produce the best performance.  Unfortunately, since that
means that no messages will be prefetched, the consumer will poll for the messages as
it becomes available and incur the network latency and overhead for each message seperately.
This is what prefetch was designed to avoid.

This experiment was run locally without any network overhead.  Many environments use a
remote AMQ instance between the client and server.  In this case, it may be best to have
a local AMQ for each server instances, possibly embedded in the server, that will be 
configured to pull messages for the needed Queues to the local server with a prefetch 
equal to the number of consumer threads.  Further experiments would have to be run to
determine if this is a good idea.


prefetch-experiment-server's People

Contributors

danapsimer avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.