Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Developing High Performance and Scalable ColdFusion Applications Using Terracotta Ehcache

215 views

Published on

1. How to scale – options (pros and cons)
2. Caching basics (various options available)
3. Recent updates of Open source Ehcache project.
4. Scaling your existing application with Ehcache, Terracotta OSS
5. Advance caching techniques for scaling using Terracotta BigMemory
6. Customer use cases where caching was mission critical

Published in: Software
  • I’ve personally never heard of companies who can produce a paper for you until word got around among my college groupmates. My professor asked me to write a research paper based on a field I have no idea about. My research skills are also very poor. So, I thought I’d give it a try. I chose a writer who matched my writing style and fulfilled every requirement I proposed. I turned my paper in and I actually got a good grade. I highly recommend ⇒ www.WritePaper.info ⇐
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Developing High Performance and Scalable ColdFusion Applications Using Terracotta Ehcache

  1. 1. ColdFusion Summit 2016
  2. 2. Developing High Performance and Scalable ColdFusion Applications Using Terracotta Ehcache By: Shailen Prasad Product Management & Strategy In-Memory Computing Software AG USA, Inc.
  3. 3. What is this? Growth will happen when efficiency increases. Plow did what "In-Memory computing is doing to the human race today"
  4. 4. Why you (and I) are here ?
  5. 5. What will be covered in this presentation? How to scale – options (pros and cons) Caching basics (various options available) Recent updates of Open source Ehcache project. Ehcache, Terracotta OSS and BigMemory The benefits of distributed caching for building applications where latency and performance is crucial. Advance caching techniques for scaling your current CF application using Terracotta distribution caching (BigMemory) To conclude, highlights on some customer use cases where caching was mission critical In-Memory caching and data management is becoming mainstream for accelerating business applications. This session will introduce :
  6. 6. SCALE OUT SCALEUP Scale your existing application Also knowns as “Vertical Scaling” Pros: • Less power consumption than running multiple servers • Generally less challenging to implement • Less licensing costs Cons: • $$$ VERY EXPENSIVE • Greater risk of hardware failure causing bigger outages • Generally severe vendor lock-in and limited upgradeability in the future. Also knowns as “Horizontal Scaling” Pros: • $ Much cheaper than scaling vertically • Easier to run fault-tolerance • Generally easier to upgrade Cons: • Bigger datacenter foot print • Higher power consumptions • Possibly more network resource dependency AddingmoreRAM/CPU Adding more machines
  7. 7. In-Memory Caching – In a nutshell On Heap Cache (also known as In-Process Cache) or L1 cache ColdFusion Application CF Internals On Heap Cache JVM • Fastest among all other caching tier • Doesn’t require marshalling and un-marshalling of the data • Limited by Max JVM heap size (limited on 32 bit systems) • Garbage collection – still remains the challenge
  8. 8. Caching – In a nutshell Local Off Heap Cache (in-process caching) or L1 cache ColdFusion Application CF Internals Local On-heap Cache JVM Local Off-heap Cache Direct memory buffers • Access Memory outside of Application heap • Can Scale as it is not limited by JVM heap size even on a 32 bit machine • Application doesn’t have to worry about Garbage collection for the data stored in off-heap • Slower than on-heap cache, entries has to serialized and de- serialized.
  9. 9. JVM Local Off-heap Cache Caching – In a nutshell Distributed Off Heap Cache (also known as Out-of-Process Cache) or L2 cache ColdFusion Application CF Internals Local On-heap Cache JVM L1Off-heap Cache JVM L2 Off-heap Cache • Runs outside of the Application Server JVM • Slower than local offheap – reads/writes are over the network • Highly scalable with its distributed design • Adds resiliency with more fault tolerance
  10. 10. JAVA’s MOST WIDELY USED CACHE
  11. 11. Seamless integration with many popular Java frameworks/applications
  12. 12. Open Source Current in CF2016 - Ehcache 2.10.0 Ehcache 3.x (complete overhaul with lots of improvements!! Revamped API that leverages Java generics and simplifies Cache interactions Full compatibility with javax.cache API (JSR-107) Offheap storage capabilities, including offheap only caches Out of the box Spring Caching and Hibernate integration thanks to the javax.cache support Significant improvement in performance over all its previous versions And many more ... (more at www.ehcache.org)
  13. 13. 90% of Data in Memory MODERNIZE Database 90% of Data in Database Memory App Response Time Milliseconds App Response Time Microseconds
  14. 14. Since ColdFusion 9
  15. 15. ColdFusion's Ehcache resources 1. CF2016 – Ehcache 2.10.0 (Latest Ehcache in 2.x line: 2.10.2) 2. CF 2016 Ehcache libs: <CF_HOME>/cfusion/lib/ehcache-2.10.0.jar (core library) <CF_HOME>/cfusion/lib/ehcache-web-2.0.4.jar (web content caching) <CF_HOME>/cfusion/lib/hibernate-ehcache-4.3.10.Final.jar 3. CF 2016 Ehcache configurations: <CF_HOME>/cfusion/lib/ehcache.xml <CF_HOME>/cfusion/lib/auth-ehcache.xml <CF_HOME>/cfusion/lib/ehcache-default-config.xml
  16. 16. ColdFusion's current use of Ehcache • CF Authentication: auth---ehcache.xml: authcache, authtokenmappingcache • Internal Caching (CF templates, component paths) • <cfcache> - Cache fragments of html • <cfquery> - Cache DB calls <cfquery name="myAccount“ cachedwithin=#createTimeSpan( 0, 1, 0, 0 )#> • ORM with Ehcache 2nd level caching: Caching Hibernate queries Entityload('BlogPost',{},{cacheable=true}) • CF Cache functions: Direct Ehcache calls CacheGet / CachePut / CacheRemove / CacheGetAllIds CacheGetMetadata CacheGetProperties / CacheSetProperties • Custom CF JAVA components using Ehcache library directly NOTE: ALL THE ABOVE FEATURES CAN BE EASILY DISTRIBUTED USING TERRACOTTA
  17. 17. A Classic CF application
  18. 18. A common challenge As the application user base increases the user experience starts to get questioned (?)
  19. 19. Lets get the plow working A quick and simple solution – Ehcache Standalone (LOCAL CACHING)
  20. 20. Improved caching – Ehcache Replication Improve Caching with some caveats
  21. 21. Coldfusion + Ehcache + Terracotta Opensource = Seamless, Powerful Distributed In-Memory Caching with Free Open-Source Software
  22. 22. Just a little tweak on the Ehcache.xml
  23. 23. Terracotta 4.x Open Source Offering/Architecture Standard Java Proven TBs scale capacity Not managed by the JVM No Garbage Collections Predictable latencies No specialized appliance needed
  24. 24. Easy scalability: New clients can access all cached data
  25. 25. Powerful H/A = Automatic failover/no cache data loss
  26. 26. ColdFusion + Ehcache +Terracotta Terracotta Distributed Ehcache: High Scalability Caching
  27. 27. Coldfusion + Ehcache + Terracotta Bigmemory = Seamless, Powerful Distributed In-Memory Caching with Free Open-Source Software
  28. 28. Any kind of data can be stored in Terracotta BigMemory to make an application speed up & scale out Terracotta BigMemory has different tiers for data storage that can be configured based on an application’s requirements Terracotta In-Memory Data grid - Rich data storage & Access
  29. 29. Terracotta BigMemory – Scale out indefinitely
  30. 30. Terracotta BigMemory Performance Scaling Terracotta BigMemory Max* provides predicable latency and throughput as data volume increases
  31. 31. Choose your own cache read consistency with simple config change
  32. 32. Terracotta Management Console View your Terracotta servers and clients topology
  33. 33. Terracotta BigMemory – Manage & Monitor Track performance trends and discovering potential issues.
  34. 34. Terracotta Management Console Monitor all cache instances and their configuration and manage your cache/cache manager.
  35. 35. Terracotta Management Console BigMemory SQL queries against your caches
  36. 36. Terracotta BigMemory – Fast Restart Store Big Memory's disk persistence and Fast Restartability
  37. 37. Setting up Coldfusion 2016 with Terracotta 4.3.2
  38. 38. Terracotta OSS Setup is just a few steps… 1. Download Terracotta OSS (latest terracotta-4.3.2.tar.gz) at http://www.terracotta.org/downloads/open-source/catalog 2. Extract to the location of your choice 3. Ensure JAVA_HOME is set 4. Navigate to <TERRACOTTA_INSTALL>/server/bin 5. Start with default single node config by executing: start-tc-server.sh (or .bat) 6. Terracotta process is now accessible at IP:9510 Note: If setting up Terracotta in active/mirror setup, tc---config.xml must be created and referenced at startup: start-tc-server.sh (or .bat) -f <path-to-config>/tc-config.xml –n <server-name-to-start>
  39. 39. Connecting ColdFusion to Terracotta in few steps… 1. Copy Ehcache + Terracotta libs to <CF_HOME>/cfusion/lib <TERRACOTTA_INSTALL>/apis/ehcache/lib/ehcache-2.10.1.jar <TERRACOTTA_INSTALL>/apis/toolkit/lib/terracotta-toolkit-runtime-4.3.2.jar 2. Add terracotta-specifics configurations in CF ehcache configs: <CF_HOME>/cfusion/lib/ehcache.xml <CF_HOME>/cfusion/lib/auth-ehcache.xml 3. Restart CF 4. Notice Terracotta connection in CF logs
  40. 40. All the below CF caches are now in Terracotta • CF Authentication: auth---ehcache.xml: authcache, authtokenmappingcache • Internal Caching (CF templates, component paths) • <cfcache> - Cache fragments of html • <cfquery> - Cache DB calls <cfquery name="myAccount“ cachedwithin=#createTimeSpan( 0, 1, 0, 0 )#> • ORM with Ehcache 2nd level caching: Caching Hibernate queries Entityload('BlogPost',{},{cacheable=true}) • CF Cache functions: Direct Ehcache calls CacheGet / CachePut / CacheRemove / CacheGetAllIds CacheGetMetadata CacheGetProperties / CacheSetProperties • Custom CF JAVA components using Ehcache library directly
  41. 41. Still so much used and Distributed The Picture says it all !!! – The power of distributed In-Memory computing.
  42. 42. Customer Use cases
  43. 43. Success Stories: Fortune 500 online payment processor Radically Improving Profitability With Better, Faster Fraud Detection SPEED What they wanted Before BigMemory • Dramatically boost bottom-line profit through faster, more accurate fraud detection • Lost 30 cents on every $100 to fraud • With Oracle Exadata, failed to meet 800 ms SLA around 10% of time • Limited to 50 rules, even though each new rule generated $12 million in profit
  44. 44. Success Stories: Fortune 500 online payment processor SPEEDSPEED After BigMemory:  Savings of tens of millions of dollars in reduced costs from missed SLAs and fraudulent charges  Meeting stricter 650-millisecond SLA 99% of time  Savings of $1 million annually in reduced database licenses  Plans to expand from 4TB to 150TB for new applications and to achieve 250 millisecond SLA
  45. 45. Success Stories: Healthcare.gov
  46. 46. “The team began almost immediately to cache the data. The result was encouraging: the site's overall response time--the time it took a page to load--dropped on the evening of Oct. 22 from eight seconds to two. That was still terrible, of course, but it represented such an improvement that it cheered the engineers. They could see that HealthCare.gov could be saved instead of scrapped.” Success Stories: Healthcare.gov
  47. 47. Challenges • All data access to backend database (many round-trips) • 10+ seconds response times • Numerous down-times due to concurrent users Benefits • Provide in-memory data access such as subscriber data and provider comparison information • Session replication of user profile info • Performance & Scalability Success Stories: Healthcare.gov
  48. 48. App Server App Server App Server App ServerApp Server Ehcache App Server App Servers App Server Ehcache Security Gateway “Presentation Zone” “Application Zone” App Server App Servers JMS Individual & Families Issuers 3rd Parties (B2B) SOR
  49. 49. Thank you! Not new but still makes a difference everyday!
  50. 50. Questions? www.ehcache.org www.terracotta.org www.softwareag.com Shailen Prasad Sr. Mgr, Product Management & Strategy (Terracotta), Software AG USA, Inc. Shailendra.prasad@softwareag.com www.linkedin.com/in/shailenprasad www.twitter.com/shailenprasad
  51. 51. Thank you!

×