Netflix TechBlog

Learn about Netflix’s world class engineering efforts, company culture, product developments and more.

Follow publication

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Published in Netflix TechBlog

Learn about Netflix’s world class engineering efforts, company culture, product developments and more.

Written by Netflix Technology Blog

Learn more about how Netflix designs, builds, and operates our systems and engineering organizations

Responses (34)

Write a response

It was a good technical problem, one thing is missing that what are the steps you have taken to correct this performance bottleneck, did you revert back the code containing VT or what you guys did to remove this error in production.

--

Great article..
few question from theoretical point of view.
Trying to understand why a synchronised code block is used in combination with VT, when it’s suggested to go with reentrantLock when a synchronisation is required…

--

Our approach was to first clean up our whole code base from synchronized methods and replace them with either reentrant locks or utilize atomic methods of Java collections. But we found another issue with async file I/O:

https://blog.flowdirector.io/two-pitfalls-by-moving-to-java-virtual-threads-3246d6f5075d

--