)]}'
{
  "commit": "978799161107c25f597d403bae19287fc04c36f1",
  "tree": "1ca9e994607120358297af905e7166dcbc110e42",
  "parents": [
    "43a22faff1f07400678bb8bfa80fd676a5aa0748"
  ],
  "author": {
    "name": "djasper",
    "email": "djasper@google.com",
    "time": "Mon Dec 07 11:05:20 2020 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Mon Dec 07 11:06:41 2020 -0800"
  },
  "message": "Reduce contention in PathExistenceCache.directoryExists()/fileExists(). A\nConcurrentHashMap locks an entire shard and so with a high job count, we create\nneedless contention here. As per the documentation of ConcurrentHashMap,\nthe computeIfAbsent() implementation needs to be fast which a file stat might\nnot always be. Instead accept that we might be doing the underlying\nstat multiple times. Another alternative would be to use futures, but\nexperiments suggest that the marginal reduction in stats is not worth the extra\ncomplexity and memory overhead.\n\nRELNOTES: None.\nPiperOrigin-RevId: 346133029\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7fb659b30794e71f44892585c545c5c46726d907",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/includescanning/PathExistenceCache.java",
      "new_id": "a6a0db39e01b6bdc25d17de52a007f1138ca4b8b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/includescanning/PathExistenceCache.java"
    }
  ]
}
