4 ms·
They were just lucky not to have data corruption due to concurrency issue, and the manifestation was infinite get. Overall if you can randomly "kill -9", the ca
by xxs 2y ago
They were just lucky not to have data corruption due to concurrency issue, and the manifestation was infinite get. Overall if you can randomly "kill -9", the case is rather trivial.
Likely replacing HashMap with CHM would not solve the concurrency issue either, but it'd prevent an infinite loop. (Edit) It appear that part is just wrong: "some calls to ConcurrentHashMap.get() seemed to be running infinitely." <-- it's possible to happen no hashmap during concurrent put(s), but not to ConcurrentHashMap
- ay 2y agoit wasn’t luck, it was very deliberately engineered for. The article does lack a good bit of context about the Netflix infra: https://netflixtechblog.com/the-netflix-simian-army-16e57fbab116 https://netflixtechblog.com/the-netflix-simian-army-16e57fba... https://github.com/Netflix/chaosmonkey https://github.com/Netflix/chaosmonkey
- vladak 2y agoyep, the link in the "some calls to ConcurrentHashMap.get() seemed to be running infinitely." sentence points to HashMap.html#get(java.lang.Object)
- xxs 2y agoI have seen that part myself (infinite loops), also I have quite extensive experience with CHM (and HashMap). Overall such a mistake alone undermines the effort/article.
- mhawthorne 2y ago[dead]