SlideShare ist ein Scribd-Unternehmen logo
1 von 11
GlassFish Community Feedback
GlassFish usage in Rakuten Inc.
About me
 Name: Makito Hashiyama(@capyogu)
 Age: 29
 Role: Team manager / In charge of APIs for Rakuten Ichiba
 Like: GlassFish, Tomcat, KVS(memcached, Coherence), GAE,

Android…
 E-mail: makito.hashiyama@mail.rakuten.com,
hashiyaman@gmail.com
What is Rakuten?
 E-commerce and Internet company based in Tokyo, Japan
 B2B2C e-commerce platform

Head Office

E-Commerce
eBook
Travel
Other services & businesses
Rakuten Institute of Technology
Development center
Head Office / Regional Headquarters
How We Are Using GlassFish
 Usage
 One of core API service for Rakuten Ichiba
 Require high availability

External
APIs

 Environment
 Use on production environment
 GlassFish version 3.1.2.2

SOAP/
REST

Client side
Our API

GlassFish
Clusters

Oracle
Coherence
Benefits gleaned from Glassfish
 Reference implementation of Java EE
 Only GlassFish supported JAX-WS as standard in 2007

 It was an advantage to evaluate new features earlier

 Easy to manage with low cost
 We need to manage huge cluster without stopping
 Cost saving(Weblogic -> GlassFish)
What Worked with GlassFish
 Community support(create patches)
 https://java.net/jira/browse/GLASSFISH-5200

(If use jvmRoute JSESSIONID cookie is not secure even in
HTTPS)
 https://java.net/jira/browse/GRIZZLY-1333
(NetworkAddressValidator will fail when passed property
substitution values)
We have contributed patched to GlassFish community.
Improvement to handle a huge traffic
 Rakuten Super Sale
 Biggest online sales in Japan
 A lot of doorbuster deals(It causes a huge amount of traffic)

 Performance bottleneck
 External APIs called by our API were slow down
 We needed to improve the system at the peek time

Client side

delay

Slow down

Our API

External
APIs
Improvement to handle a huge traffic
Worker Thread
Worker Thread

Request
Client
side

Task
Queue

Worker Thread
Worker Thread
Worker Thread

GlassFish

CPU load
was high

delay
delay
delay
delay
delay

External
APIs
Improvement to handle a huge traffic

Worker Thread

Request
Client
side

Task
Queue

Worker Thread

External
APIs

Worker Thread

GlassFish

(1)According to vmstat, ‘run queue’ was very high
(2)Decrease worker threads to keep ‘run queue’ low
(3)As a result, latency increased but throughput was improved
Improvement to handle a huge traffic
 As a result…
 Our API could process over 12,000 transactions / minute
 The result showed the high reliability and availability of

GlassFish
Resolve issues & challenge to upper goal
 Some issues
 Instance down due to the full of task queue
 Unknown exception on server.log
org.glassfish.flashlight.impl.client.ReflectiveClientInvoker
java.lang.reflect.InvocationTargetException
CAUSE: java.lang.NullPointerException
id=101
target=org.glassfish.web.admin.monitor.HttpServiceStatsProvider@193e1fc
method=public void org.glassfish.web.admin.monitor.HttpServiceStatsProvider.
connectionAcceptedEvent(java.lang.String,int,java.lang.String)
paramNames=[listenerName, connection, address]
probeIndices=[0, 1, 2]
useProbeArgs=true
hasComputedParams=false

 Challenge to upper goal

Weitere ähnliche Inhalte

Andere mochten auch

Is Enterprise Java Still Relevant (JavaOne 2015 session)
Is Enterprise Java Still Relevant (JavaOne 2015 session)Is Enterprise Java Still Relevant (JavaOne 2015 session)
Is Enterprise Java Still Relevant (JavaOne 2015 session)Ian Robinson
 
Advanced resource management and scalability features for cloud environment u...
Advanced resource management and scalability features for cloud environment u...Advanced resource management and scalability features for cloud environment u...
Advanced resource management and scalability features for cloud environment u...Grigale LTD
 
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems
Java EE 6 Adoption in One of the World’s Largest Online Financial SystemsJava EE 6 Adoption in One of the World’s Largest Online Financial Systems
Java EE 6 Adoption in One of the World’s Largest Online Financial SystemsArshal Ameen
 
Migration tales from java ee 5 to 7
Migration tales from java ee 5 to 7Migration tales from java ee 5 to 7
Migration tales from java ee 5 to 7Roberto Cortez
 
Data Mining Scoring Engine development process
Data Mining Scoring Engine development processData Mining Scoring Engine development process
Data Mining Scoring Engine development processDylan Wan
 
Oraclew2013 devopsjlm
Oraclew2013 devopsjlmOraclew2013 devopsjlm
Oraclew2013 devopsjlmNadav Lankin
 
Cloud Observation and Performance Analysis using Solaris 11 DTrace
Cloud Observation and Performance Analysis using Solaris 11 DTraceCloud Observation and Performance Analysis using Solaris 11 DTrace
Cloud Observation and Performance Analysis using Solaris 11 DTraceOrgad Kimchi
 
Testing Java EE Applications Using Arquillian
Testing Java EE Applications Using ArquillianTesting Java EE Applications Using Arquillian
Testing Java EE Applications Using ArquillianReza Rahman
 
Oracle Solaris 11 Built for Clouds
Oracle Solaris 11 Built for Clouds Oracle Solaris 11 Built for Clouds
Oracle Solaris 11 Built for Clouds Orgad Kimchi
 
Oracle Solaris 11 as a BIG Data Platform Apache Hadoop Use Case
Oracle Solaris 11 as a BIG Data Platform Apache Hadoop Use CaseOracle Solaris 11 as a BIG Data Platform Apache Hadoop Use Case
Oracle Solaris 11 as a BIG Data Platform Apache Hadoop Use CaseOrgad Kimchi
 
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014Arun Gupta
 
Solaris vs Linux
Solaris vs LinuxSolaris vs Linux
Solaris vs LinuxGrigale LTD
 
JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6Bert Ertman
 
JavaScript Frameworks and Java EE – A Great Match
JavaScript Frameworks and Java EE – A Great MatchJavaScript Frameworks and Java EE – A Great Match
JavaScript Frameworks and Java EE – A Great MatchReza Rahman
 

Andere mochten auch (15)

Is Enterprise Java Still Relevant (JavaOne 2015 session)
Is Enterprise Java Still Relevant (JavaOne 2015 session)Is Enterprise Java Still Relevant (JavaOne 2015 session)
Is Enterprise Java Still Relevant (JavaOne 2015 session)
 
Walla migration
Walla  migrationWalla  migration
Walla migration
 
Advanced resource management and scalability features for cloud environment u...
Advanced resource management and scalability features for cloud environment u...Advanced resource management and scalability features for cloud environment u...
Advanced resource management and scalability features for cloud environment u...
 
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems
Java EE 6 Adoption in One of the World’s Largest Online Financial SystemsJava EE 6 Adoption in One of the World’s Largest Online Financial Systems
Java EE 6 Adoption in One of the World’s Largest Online Financial Systems
 
Migration tales from java ee 5 to 7
Migration tales from java ee 5 to 7Migration tales from java ee 5 to 7
Migration tales from java ee 5 to 7
 
Data Mining Scoring Engine development process
Data Mining Scoring Engine development processData Mining Scoring Engine development process
Data Mining Scoring Engine development process
 
Oraclew2013 devopsjlm
Oraclew2013 devopsjlmOraclew2013 devopsjlm
Oraclew2013 devopsjlm
 
Cloud Observation and Performance Analysis using Solaris 11 DTrace
Cloud Observation and Performance Analysis using Solaris 11 DTraceCloud Observation and Performance Analysis using Solaris 11 DTrace
Cloud Observation and Performance Analysis using Solaris 11 DTrace
 
Testing Java EE Applications Using Arquillian
Testing Java EE Applications Using ArquillianTesting Java EE Applications Using Arquillian
Testing Java EE Applications Using Arquillian
 
Oracle Solaris 11 Built for Clouds
Oracle Solaris 11 Built for Clouds Oracle Solaris 11 Built for Clouds
Oracle Solaris 11 Built for Clouds
 
Oracle Solaris 11 as a BIG Data Platform Apache Hadoop Use Case
Oracle Solaris 11 as a BIG Data Platform Apache Hadoop Use CaseOracle Solaris 11 as a BIG Data Platform Apache Hadoop Use Case
Oracle Solaris 11 as a BIG Data Platform Apache Hadoop Use Case
 
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
Lessons Learned from Real-World Deployments of Java EE 7 at JavaOne 2014
 
Solaris vs Linux
Solaris vs LinuxSolaris vs Linux
Solaris vs Linux
 
JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6
 
JavaScript Frameworks and Java EE – A Great Match
JavaScript Frameworks and Java EE – A Great MatchJavaScript Frameworks and Java EE – A Great Match
JavaScript Frameworks and Java EE – A Great Match
 

Mehr von glassfish

Fifty Features of Java EE 7 in 50 Minutes
Fifty Features of Java EE 7 in 50 MinutesFifty Features of Java EE 7 in 50 Minutes
Fifty Features of Java EE 7 in 50 Minutesglassfish
 
GlassFish Story by Jaromir Hamala/C2B2 Consulting
GlassFish Story by Jaromir Hamala/C2B2 ConsultingGlassFish Story by Jaromir Hamala/C2B2 Consulting
GlassFish Story by Jaromir Hamala/C2B2 Consultingglassfish
 
GlassFish BOF
GlassFish BOFGlassFish BOF
GlassFish BOFglassfish
 
GlassFish Roadmap
GlassFish RoadmapGlassFish Roadmap
GlassFish Roadmapglassfish
 
OTN Developer Days - GlassFish
OTN Developer Days - GlassFishOTN Developer Days - GlassFish
OTN Developer Days - GlassFishglassfish
 
OTN Developer Days - Java EE 6
OTN Developer Days - Java EE 6OTN Developer Days - Java EE 6
OTN Developer Days - Java EE 6glassfish
 

Mehr von glassfish (6)

Fifty Features of Java EE 7 in 50 Minutes
Fifty Features of Java EE 7 in 50 MinutesFifty Features of Java EE 7 in 50 Minutes
Fifty Features of Java EE 7 in 50 Minutes
 
GlassFish Story by Jaromir Hamala/C2B2 Consulting
GlassFish Story by Jaromir Hamala/C2B2 ConsultingGlassFish Story by Jaromir Hamala/C2B2 Consulting
GlassFish Story by Jaromir Hamala/C2B2 Consulting
 
GlassFish BOF
GlassFish BOFGlassFish BOF
GlassFish BOF
 
GlassFish Roadmap
GlassFish RoadmapGlassFish Roadmap
GlassFish Roadmap
 
OTN Developer Days - GlassFish
OTN Developer Days - GlassFishOTN Developer Days - GlassFish
OTN Developer Days - GlassFish
 
OTN Developer Days - Java EE 6
OTN Developer Days - Java EE 6OTN Developer Days - Java EE 6
OTN Developer Days - Java EE 6
 

Kürzlich hochgeladen

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 

Kürzlich hochgeladen (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

GlassFish Story by Makito Hashiyama/Rakuten

  • 2. About me  Name: Makito Hashiyama(@capyogu)  Age: 29  Role: Team manager / In charge of APIs for Rakuten Ichiba  Like: GlassFish, Tomcat, KVS(memcached, Coherence), GAE, Android…  E-mail: makito.hashiyama@mail.rakuten.com, hashiyaman@gmail.com
  • 3. What is Rakuten?  E-commerce and Internet company based in Tokyo, Japan  B2B2C e-commerce platform Head Office E-Commerce eBook Travel Other services & businesses Rakuten Institute of Technology Development center Head Office / Regional Headquarters
  • 4. How We Are Using GlassFish  Usage  One of core API service for Rakuten Ichiba  Require high availability External APIs  Environment  Use on production environment  GlassFish version 3.1.2.2 SOAP/ REST Client side Our API GlassFish Clusters Oracle Coherence
  • 5. Benefits gleaned from Glassfish  Reference implementation of Java EE  Only GlassFish supported JAX-WS as standard in 2007  It was an advantage to evaluate new features earlier  Easy to manage with low cost  We need to manage huge cluster without stopping  Cost saving(Weblogic -> GlassFish)
  • 6. What Worked with GlassFish  Community support(create patches)  https://java.net/jira/browse/GLASSFISH-5200 (If use jvmRoute JSESSIONID cookie is not secure even in HTTPS)  https://java.net/jira/browse/GRIZZLY-1333 (NetworkAddressValidator will fail when passed property substitution values) We have contributed patched to GlassFish community.
  • 7. Improvement to handle a huge traffic  Rakuten Super Sale  Biggest online sales in Japan  A lot of doorbuster deals(It causes a huge amount of traffic)  Performance bottleneck  External APIs called by our API were slow down  We needed to improve the system at the peek time Client side delay Slow down Our API External APIs
  • 8. Improvement to handle a huge traffic Worker Thread Worker Thread Request Client side Task Queue Worker Thread Worker Thread Worker Thread GlassFish CPU load was high delay delay delay delay delay External APIs
  • 9. Improvement to handle a huge traffic Worker Thread Request Client side Task Queue Worker Thread External APIs Worker Thread GlassFish (1)According to vmstat, ‘run queue’ was very high (2)Decrease worker threads to keep ‘run queue’ low (3)As a result, latency increased but throughput was improved
  • 10. Improvement to handle a huge traffic  As a result…  Our API could process over 12,000 transactions / minute  The result showed the high reliability and availability of GlassFish
  • 11. Resolve issues & challenge to upper goal  Some issues  Instance down due to the full of task queue  Unknown exception on server.log org.glassfish.flashlight.impl.client.ReflectiveClientInvoker java.lang.reflect.InvocationTargetException CAUSE: java.lang.NullPointerException id=101 target=org.glassfish.web.admin.monitor.HttpServiceStatsProvider@193e1fc method=public void org.glassfish.web.admin.monitor.HttpServiceStatsProvider. connectionAcceptedEvent(java.lang.String,int,java.lang.String) paramNames=[listenerName, connection, address] probeIndices=[0, 1, 2] useProbeArgs=true hasComputedParams=false  Challenge to upper goal

Hinweis der Redaktion

  1. At first, let me introduce myself.My name is Makito Hashiyama.I have been working Rakuten for 4 years as web application engineer.Now, I’m in charge of APIs for Rakuten Ichiba.Before I explain about Rakuten Ichiba, let me introduce about Rakuten.
  2. Rakuten is e-commerce and internet company based in Tokyo, Japan.In America, we provide few services such as Rakuten.com(former name was buy.com)and Rakuten LinkShare.Rakuten Ichiba is the biggest online shopping site in Japan.Ichiba means market place.Merchant can open their own online store and operate on Rakuten Ichiba.
  3. We are using glassfish to provide API for Rakuten Ichiba.We use 3.1.2.2 version of Glassfish and make 3 clusters.1 cluster has over 40 instances and total number of instances is over 100.Let me explain more detail about our API.Our API behaves like a service bus based on SOA.It calls more than 15 external APIsand mash up them, then provides as a service to client side.In addition, our API is stateful API.It manages session information instead of client side.Our API creates specified unique key and client side only haveto call our API with the key.Our API stores session information into Oracle Coherence with the key as key-value form.(Of course, we can use except Oracle Coherence, but we use it another purpose)
  4. It is the reason why we chose Glassfish.We have 2 reasons.One reason is that Glassfish is the reference implementation of Java EE.At 2007, we wanted to evaluate new features of JAX-WS and glassfish could only support it as standard.Another reason is easy to manage with low cost.We are managing huge cluster to support EC service 24/7.At first, we used Weblogic Server to manage them.But we shifted from Weblogic to Glassfish to reduce the cost.Glassfish has also powerful management console to handle huge clusters.
  5. As the work for the community, we have created several patches as you can see.Former patch related to JSESSIONID bug of glassfish version 2.This bug was applied to next glassfish version after we created a patch..We have contributed patched to Glassfish community.
  6. Now, let me share our experiences about Glassfish optimization under the huge traffic.We have an online big sale called “Rakuten Super Sale” a few times a year.You can buy a lot of doorbuster deals at half price include car, house and so on.At the beginning of the sale, shopper pour in to buy these bargain goods and it causes a huge amount of traffic.During the sale, some external API could not handle such a traffic and delayed.And so, our API was affected by these APIs’ slow down.As a fundamental solution, we ask these API to keep SLA.But we have no time to do so, we decided to improve glassfish system by ourselves to make it comfortable for shopper to buy.
  7. To solve the performanceissue, we need to understand the detailed structure of Glassfish.Glassfish put a request into task queue and worker threads process the request one by one.We also found that the CPU load of Glassfish server was high.So, we assumed that CPU high load had something to do with the performance issue.
  8. We kept a “vmstat” log to find out more about CPU load.According to the result, ‘run queue’ was very high when the delay occurred.The worker seemed too much compared to CPU performance in case of occurring delay on external API.We decreased the number of worker threads to see if that would keep ‘run queue’ low.As a result, ‘run queue’ decreased and CPU load also decreased.The amount of external API request was decreased and it responded much faster. Because we decreased the number of worker threads, latency increased a little bit, however, throughput was improved.It enabled Glassfish to process the request more efficiently.
  9. As a result of performance tunings, our API improved drasticallyWe achieved over 12,000 transactions / minute at the peak time of the sale.We also achieved over 20,000 transactions on the load test. These result showed the reliability and availability of Glassfish at all.
  10. We have some issues about Glassfish.At first, we have an experience that Glassfish instance goes down suddenly.We got an error message that said the task queue was full.But we set an enough value as the maximum size of tasks queue.We also monitor the number of tasks in queue but it keeps very few value.Secondly, server.log has unknown exceptions as you can see.Glassfish seems to work well, we would like to know the meaning of this errors.If anyone has information concerning these issues, please let us know.We will challenge to upper goal and optimize glassfish even more.