{"action":"closed","issue":{"url":"https://api.github.com/repos/leo-project/leo_jerasure/issues/9","labels_url":"https://api.github.com/repos/leo-project/leo_jerasure/issues/9/labels{/name}","comments_url":"https://api.github.com/repos/leo-project/leo_jerasure/issues/9/comments","events_url":"https://api.github.com/repos/leo-project/leo_jerasure/issues/9/events","html_url":"https://github.com/leo-project/leo_jerasure/issues/9","id":76577654,"number":9,"title":"[Interface] Decoding Speed Enhancement","user":{"login":"windkit","id":360884,"avatar_url":"https://avatars.githubusercontent.com/u/360884?v=3","gravatar_id":"","url":"https://api.github.com/users/windkit","html_url":"https://github.com/windkit","followers_url":"https://api.github.com/users/windkit/followers","following_url":"https://api.github.com/users/windkit/following{/other_user}","gists_url":"https://api.github.com/users/windkit/gists{/gist_id}","starred_url":"https://api.github.com/users/windkit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/windkit/subscriptions","organizations_url":"https://api.github.com/users/windkit/orgs","repos_url":"https://api.github.com/users/windkit/repos","events_url":"https://api.github.com/users/windkit/events{/privacy}","received_events_url":"https://api.github.com/users/windkit/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/leo-project/leo_jerasure/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"closed","locked":false,"assignee":{"login":"windkit","id":360884,"avatar_url":"https://avatars.githubusercontent.com/u/360884?v=3","gravatar_id":"","url":"https://api.github.com/users/windkit","html_url":"https://github.com/windkit","followers_url":"https://api.github.com/users/windkit/followers","following_url":"https://api.github.com/users/windkit/following{/other_user}","gists_url":"https://api.github.com/users/windkit/gists{/gist_id}","starred_url":"https://api.github.com/users/windkit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/windkit/subscriptions","organizations_url":"https://api.github.com/users/windkit/orgs","repos_url":"https://api.github.com/users/windkit/repos","events_url":"https://api.github.com/users/windkit/events{/privacy}","received_events_url":"https://api.github.com/users/windkit/received_events","type":"User","site_admin":false},"milestone":null,"comments":1,"created_at":"2015-05-15T03:33:03Z","updated_at":"2015-05-15T07:15:23Z","closed_at":"2015-05-15T07:15:23Z","body":"Erasure would reconstruct any missing block during decoding, therefore if we only supply K blocks to decode, the process would be similar to re-do the encode again.\r\n(Supply K data blocks has been optimized in leo_jerasure)\r\n\r\nFor example in a {4,3} coding, if we supply D1, D2, D3, C0 (Erased D0), now D0, C1, C2 are all rebuilt.\r\nWhile in the use case of decoding the file, only D0, D1, D2, D3 are necessary.\r\n\r\nIn short, in leo_jerasure:decode, extra works are done to re-encode the code blocks which is not necessary.\r\n\r\nA small experiment with editing the code in JErasure to omit code block re-encoding shows 1.5x improvement in decoding throughput (6GB/s -> 10GB/s)"}}