{"id":24678,"date":"2019-03-21T15:51:25","date_gmt":"2019-03-21T19:51:25","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=24678"},"modified":"2019-03-21T15:51:25","modified_gmt":"2019-03-21T19:51:25","slug":"not-relying-on-nsfilecoordinator","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2019\/03\/21\/not-relying-on-nsfilecoordinator\/","title":{"rendered":"Not Relying on NSFileCoordinator"},"content":{"rendered":"<p><a href=\"http:\/\/khanlou.com\/2019\/03\/file-coordination\/\">Soroush Khanlou<\/a>:<\/p>\n<blockquote cite=\"http:\/\/khanlou.com\/2019\/03\/file-coordination\/\"><p>This is where I discovered my problem. Without using <code>NSFileCoordinator<\/code>, the <code>mutatingObject<\/code> dropped about 70% of writes. With it, even using the reading and writing options correctly, I was still losing a few dozen writes every 10,000. This was a serious issue. An object storage that loses about half a percent of writes still isn&rsquo;t reliable enough to use in production. (Apple folks, here&rsquo;s a <a href=\"rdar:\/\/49017433\">radar<\/a>. It includes a test project with a failing test.)<\/p><p>At this point, I started thinking about what I was actually trying to do, and whether <code>NSFileCoordinator<\/code> was really the right API for the job.<\/p><\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Soroush Khanlou: This is where I discovered my problem. Without using NSFileCoordinator, the mutatingObject dropped about 70% of writes. With it, even using the reading and writing options correctly, I was still losing a few dozen writes every 10,000. This was a serious issue. An object storage that loses about half a percent of writes [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2019-03-21T19:51:28Z","apple_news_api_id":"5047c7ab-492a-47ec-aeda-ddb393ece1bc","apple_news_api_modified_at":"2019-03-21T19:51:29Z","apple_news_api_revision":"AAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/w==","apple_news_api_share_url":"https:\/\/apple.news\/AUEfHq0kqR-yu2t2zk-zhvA","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[4],"tags":[131,800,31,1610,30,1609],"class_list":["post-24678","post","type-post","status-publish","format-standard","hentry","category-programming-category","tag-bug","tag-concurrency","tag-ios","tag-ios-12","tag-mac","tag-macos-10-14"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/24678","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=24678"}],"version-history":[{"count":1,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/24678\/revisions"}],"predecessor-version":[{"id":24679,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/24678\/revisions\/24679"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=24678"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=24678"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=24678"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}