{"action":"created","issue":{"url":"https://api.github.com/repos/cryfs/cryfs/issues/101","repository_url":"https://api.github.com/repos/cryfs/cryfs","labels_url":"https://api.github.com/repos/cryfs/cryfs/issues/101/labels{/name}","comments_url":"https://api.github.com/repos/cryfs/cryfs/issues/101/comments","events_url":"https://api.github.com/repos/cryfs/cryfs/issues/101/events","html_url":"https://github.com/cryfs/cryfs/issues/101","id":180520894,"number":101,"title":"Configurable cache and read-ahead settings","user":{"login":"iplor","id":8943959,"avatar_url":"https://avatars.githubusercontent.com/u/8943959?v=3","gravatar_id":"","url":"https://api.github.com/users/iplor","html_url":"https://github.com/iplor","followers_url":"https://api.github.com/users/iplor/followers","following_url":"https://api.github.com/users/iplor/following{/other_user}","gists_url":"https://api.github.com/users/iplor/gists{/gist_id}","starred_url":"https://api.github.com/users/iplor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iplor/subscriptions","organizations_url":"https://api.github.com/users/iplor/orgs","repos_url":"https://api.github.com/users/iplor/repos","events_url":"https://api.github.com/users/iplor/events{/privacy}","received_events_url":"https://api.github.com/users/iplor/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2016-10-02T16:32:46Z","updated_at":"2016-10-02T22:58:18Z","closed_at":null,"body":"For the purposes of optimal performance when accessing volumes directly in the cloud, it would be helpful to have user-configurable settings for cache size, cache lifetime, and the number of blocks to read ahead.\r\n\r\nOne thing that might be a consideration is that users might not want to read a file from start to finish, but access an arbitrary point in the middle, as in the case of skipping through a large media file. So, the logic of the caching would need to read ahead of the latest block accessed, rather than caching the whole file from the beginning.\r\n"},"comment":{"url":"https://api.github.com/repos/cryfs/cryfs/issues/comments/251002140","html_url":"https://github.com/cryfs/cryfs/issues/101#issuecomment-251002140","issue_url":"https://api.github.com/repos/cryfs/cryfs/issues/101","id":251002140,"user":{"login":"iplor","id":8943959,"avatar_url":"https://avatars.githubusercontent.com/u/8943959?v=3","gravatar_id":"","url":"https://api.github.com/users/iplor","html_url":"https://github.com/iplor","followers_url":"https://api.github.com/users/iplor/followers","following_url":"https://api.github.com/users/iplor/following{/other_user}","gists_url":"https://api.github.com/users/iplor/gists{/gist_id}","starred_url":"https://api.github.com/users/iplor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iplor/subscriptions","organizations_url":"https://api.github.com/users/iplor/orgs","repos_url":"https://api.github.com/users/iplor/repos","events_url":"https://api.github.com/users/iplor/events{/privacy}","received_events_url":"https://api.github.com/users/iplor/received_events","type":"User","site_admin":false},"created_at":"2016-10-02T22:58:18Z","updated_at":"2016-10-02T22:58:18Z","body":"Yes, I understand what you're saying - ideally the readahead would be handled by the application. In the case of a video, the player can be configured to pre-buffer the stream, and so on.\r\n\r\nIn practice, I've found that this doesn't work effectively with large files in small blocks over the internet. The player attempts to read ahead, but this does not tend to result in an optimal number of small blocks being prefetched concurrently, there is a large amount of latency, the player gives buffering errors as bits of the stream come slowly in small chunks, and so on.\r\n\r\nThe best implementation I've found so far is the proprietary app, Stablebit CloudDrive. (I should stress that I'm not touting that software - I don't want to entrust security to a closed source application.) It performs what they call \"predictive prefetching\", at essentially the same layer as CryFS. From their blurb:\r\n\r\n> \r\n> Predictive Prefetching\r\n> \r\n> Prediction\r\n> StableBit CloudDrive comes with a prefetcher that detects sequential data access and downloads data that you're about to access, before you need it.\r\n> \r\n> Streaming Media\r\n> The prefetcher is perfect for streaming media directly from your cloud drive.\r\n> For example, when you play a video from your drive, the prefetcher will start to pre-download data that is about to be read, offering you a smooth playback experience. \r\n>    \r\n> Optimize It\r\n> The prefetcher comes with reasonable defaults that should work fine with any broadband connection to the Internet, but you can optimize them to get the maximum performance from your cloud drive.\r\n> Tweak the number of downloads that happen in parallel, how much data gets prefetched, as well as other settings.\r\n\r\nI have found that this approach does work well, and makes full use of available bandwidth. So, my hope was that CryFS could potentially do something similar, with open source. This may be outside the scope of your objectives, but I suspect that we will struggle to get acceptable media performance over direct cloud connection, unless something similar is implemented."}}
{"actor":{"display_login":"iplor"}}