Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[8.x] deps: V8: backport b49206d from upstream #21529

Merged
merged 1 commit into from
Jun 28, 2018

Commits on Jun 28, 2018

  1. deps: V8: backport b49206d from upstream

    This is the v8.x backport of nodejs#20727.
    
    Original commit message:
      ThreadDataTable: Change global linked list to per-Isolate hash map.
    
      For use cases with a large number of threads or a large number of
      isolates (or both), ThreadDataTable can be a major performance
      bottleneck due to O(n) lookup time of the linked list. Switching to a
      hash map reduces this to O(1).
    
      Example 1: Sandstorm.io, a Node.js app that utilizes "fibers", was
      observed spending the majority of CPU time iterating over the
      ThreadDataTable.
      See: https://sandstorm.io/news/2016-09-30-fiber-bomb-debugging-story
    
      Example 2: Cloudflare's Workers engine, a high-multi-tenancy web
      server framework built on V8 (but not Node), creates large numbers of
      threads and isolates per-process. It saw a 34x improvement in
      throughput when we applied this patch.
    
      Cloudflare has been using a patch in production since the Worker
      launch which replaces the linked list with a hash map -- but still
      global.
    
      This commit builds on that but goes further and creates a separate
      hash map and mutex for each isolate, with the table being a member of
      the Isolate class. This avoids any globals and should reduce lock
      contention.
    
      Bug: v8:5338
      Change-Id: If0d11509afb2e043b888c376e36d3463db931b47
      Reviewed-on: https://chromium-review.googlesource.com/1014407
      Reviewed-by: Yang Guo <yangguo@chromium.org>
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{nodejs#52753}
    
    Backport-PR-URL: nodejs#21529
    PR-URL: nodejs#20727
    Refs: nodejs#20083
    Refs: nodejs#20083
    Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
    Reviewed-By: James M Snell <jasnell@gmail.com>
    ofrobots committed Jun 28, 2018
    Configuration menu
    Copy the full SHA
    646445b View commit details
    Browse the repository at this point in the history