Register
Submit a solution
The challenge is finished.

Challenge Overview

Background

Recently, All internal system of Topcoder are using TC Cache which is using JBoss Cache as caching service, but this is outdate and keep causing problems for us in production. We'd like to move ahead with a more mature cache services, like Redis.

Scope

For this challenge, we'd like to understand the architecture of the current TC Cache and see if we can implement another implementation without breaking the interface. 

So we'd like you to code-read the source code and play with the working site in VM to tell us the following questions clearly.

  • What are the functions it exposes - I think simplifed Class Diagram should be suitable for this.
  • Any background jobs it runs, how does the it expire the cache items
  • What classes are involved, how is it used by the system - related classes (put in Class Diagram) and Sequence Diagrams, We are expecting one sequence diagram for each feature. For instance, we have a function to store a value, a function to retrieve a value, maybe some process that clears and expires the cache, etc
  • With a quick code reading, the current cache module can not be easily adapted to use another cache, without code changes (simply update the cache.properties), please analyze the current architecture, and tell us if it can be easily switch to another cache implementation, and why.
  • In the current cache module, there are two cache implementation actually - distCache and jbossCache, we'd like to know if distCache is used?  if distCache is used, then please specify how it is used and where is.

About Source Code

the current source code cache module can be found by https://coder.topcoder.com/internal/web_module/trunk/src/main/com/topcoder/web/common/cache, you can find it in VM

  • login VM as tc user
  • and the code can be found at /home/tc/web/src/main/com/topcoder/web/common/cache

Virtual Machine

VM specific information is found here: http://www.topcoder.com/wiki/display/docs/VM+Image+2.5

Upon registration as a submitter or reviewer you will need to request a VM based on the TopCoder systems image.  The VM will be active through aggregation review, after which it will be terminated except for the winner's and the reviewers'. To request your image, please post your request in forum

Before requesting your VM, you need to ensure that you have an SSH key created and in your member profile (this functionality is missed in the new topcoder site, you need to contact support@topcoder.com to set it). Instructions to do so are here: http://www.topcoder.com/wiki/display/projects/Generate+SSH+Key, and instructions to connect afterwards are here: http://www.topcoder.com/wiki/display/projects/Connect+Using+SSH+Key.

Please realize that VMs are currently issued manually. We make every attempt to issue the VM as soon as it is requested, however, there may be delays of up to 12 hours depending on time of day when you request. We encourage everyone to request a VM as soon as possible to minimize any such delays.



Final Submission Guidelines

  • Architecture Documentation that can be easily followed with class diagrams and sequence diagrams to answer the questions above
  • TC UML file with Class Diagrams and Sequence Diagrams.

ELIGIBLE EVENTS:

2016 TopCoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30053391