A new wiki is coming!

This wiki will be locked for editing on Friday, March 13, 2020, while we upgrade to a new wiki. Here is more information about our migration process.

This box searches only this space. The box at the upper right searches the entire iPlant wiki.

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.

GitHub: https://github.com/JLHonors/ACIC2019-Midterm.git


List of client's needs:

  • Convenience

- Easy to Use (a web interface instead of local cmd line)

- Able to add/update database

- Makeflow intergration (mentioned in word doc in dropbox)

  • Scaleability/Performance

- Able to support many users concurrently



Project plan draft


Major Components:

  • Multiple Instance of Server [Primary]

  1.  Multiple instances of SequenceServer with a load balancer 

    Spin up more instances (docker images of SequenceServer). A load balancer placed in front of all the instances to distribute the load.

  2.  A Web server and multiple BLAST worker server     
    Split the component that interface with BLAST from SequenceServer, place this portion of workload on worker servers, and there can be many of them. A web server (the rest of SequenceServer) will be responsible for handling incoming search requests, and other management tasks.

  • Caching [Primary]

  1. (shared/non-shared) web cache in front of all the server instances at the HTTP level, possibly utilizing existing solution (e.g. memcached)

  2. Cache at application level, prevent repeat run of BLAST for identical parameter 

  • Optimize SequenceServer (docker image) [Primary]

  1. Switch web server

    Default for docker image is WEBrick, should opt for Nginx or Apache

  2. Faster storage for database

    Store the databases on faster storage, such as ramdisk (ramfs, tmpfs)

  3. Profile performance for bottleneck

    Check if there is any bottleneck in the ruby codebase for SequenceServer, since there is not much we can do about BLAST codebase

  • Web interface for database management

  1. Additional web UI

  2. Authentication required for permission to add/update

  • Web interface for Makeflow integration

  1. Web UI for submitting Makeflow file and corresponding input files.

  2. Authentication required for permission to run.


Presentation: #insert presentation link