use of java jvm at twitter
play

Use of Java / JVM at Twitter @TonyPrintezis | @TwitterBoston - PowerPoint PPT Presentation

Use of Java / JVM at Twitter @TonyPrintezis | @TwitterBoston tprintezis@twitter.com #JCP EC Twitter reps Tony Printezis VM Team | Infrastructure Org | Twitter ex-HotSpot (Sun / Oracle, 6+ years), ex-SunLabs (3+ years) Ramki


  1. Use of Java / JVM at Twitter @TonyPrintezis | @TwitterBoston tprintezis@twitter.com

  2. #JCP EC Twitter reps Tony Printezis • VM Team | Infrastructure Org | Twitter • ex-HotSpot (Sun / Oracle, 6+ years), ex-SunLabs (3+ years) Ramki Ramakrishna • VM Team | Infrastructure Org | Twitter • ex-HotSpot (Sun / Oracle, 10+ years) 2 @TonyPrintezis | JCP EC Meeting | Oct 2015

  3. #Twitter 3 @TonyPrintezis | JCP EC Meeting | Oct 2015

  4. #Twitter : the short version #Platform #RealTime 4 @TonyPrintezis | JCP EC Meeting | Oct 2015

  5. #Twitter : services • A #huge distributed system • huge number of machines running a huge number of JVMs • multiple data centers • services communicate with other services via RPC • typically, many JVMs per service • Most services run on • CentOS Linux distribution (x64) • OpenJDK distribution (TwitterJDK) • Mesos (data center scheduling) • Finagle (async RPC for Scala / Java) 5 @TonyPrintezis | JCP EC Meeting | Oct 2015

  6. #Twitter : programming languages server-side • Scala (most used by far) • Java • Ruby (moving away from it…) • C/C++ (a bit) • Python (a bit) 6 @TonyPrintezis | JCP EC Meeting | Oct 2015

  7. #Twitter : Java libraries • We rely heavily on • NIO • collections • concurrent collections • concurrent utilities • etc. 7 @TonyPrintezis | JCP EC Meeting | Oct 2015

  8. #TwitterJDK 8 @TonyPrintezis | JCP EC Meeting | Oct 2015

  9. #TwitterJDK : vm team • Infrastructure Org • Responsible for releasing, maintaining, customizing, improving • TwitterJDK • Developer support • consultancy • troubleshooting • education 9 @TonyPrintezis | JCP EC Meeting | Oct 2015

  10. #TwitterJDK : why? Why deploy our own JDK? • Commercial support wouldn't work for us • too expensive • too slow • OpenJDK development is slow • dreadfully slow process • change turnaround feels like eternity • current development repo is JDK 9, months / years away • backports to JDK 8: slow turnaround • We believe we can support ourselves best 10 @TonyPrintezis | JCP EC Meeting | Oct 2015

  11. #TwitterJDK : pushing the limits • We push the JVM's limits more than most • large heaps • huge scale • strict latency requirements • Optimize for our stack • Scala, Finagle, CentOS, x64, etc. • Optimize for our workloads • quite different vs. most other JVM workloads I’m familiar with 11 @TonyPrintezis | JCP EC Meeting | Oct 2015

  12. #TwitterJDK : release hg.openjdk.java.net Twitter Twitter Repos OpenJDK Repos corba corba hotspot hotspot ( +changes ) jdk jdk ( +changes ) hg-git … … git TwitterJDK Build 12 @TonyPrintezis | JCP EC Meeting | Oct 2015

  13. #TwitterJDK : release • Based on OpenJDK • Synced up to the latest update release • leverage all OpenJDK testing • Plus our own changes • which we'll be happy to contribute back BTW… • Plus (small number of) additional patches (e.g., security / critical fixes) • Monthly releases • Current main release • JDK 8 / Tiered Compilation / 64-bit / CentOS 13 @TonyPrintezis | JCP EC Meeting | Oct 2015

  14. #TwitterJDK : enhancements • Heap Profiling • Binary Logging Framework (JVM + Java tracepoints) • Intermediate Generation(s) for G1 GC • Misc Bug / Performance Fixes • Mostly in HotSpot + a few small patches to the JDK libraries 14 @TonyPrintezis | JCP EC Meeting | Oct 2015

  15. #Questions 15 @TonyPrintezis | JCP EC Meeting | Oct 2015

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend