{"action":"created","issue":{"url":"https://api.github.com/repos/leo-project/leofs/issues/424","labels_url":"https://api.github.com/repos/leo-project/leofs/issues/424/labels{/name}","comments_url":"https://api.github.com/repos/leo-project/leofs/issues/424/comments","events_url":"https://api.github.com/repos/leo-project/leofs/issues/424/events","html_url":"https://github.com/leo-project/leofs/issues/424","id":111132952,"number":424,"title":"LeoFS big size object copy operation seems very slow ","user":{"login":"PatelParas","id":6395501,"avatar_url":"https://avatars.githubusercontent.com/u/6395501?v=3","gravatar_id":"","url":"https://api.github.com/users/PatelParas","html_url":"https://github.com/PatelParas","followers_url":"https://api.github.com/users/PatelParas/followers","following_url":"https://api.github.com/users/PatelParas/following{/other_user}","gists_url":"https://api.github.com/users/PatelParas/gists{/gist_id}","starred_url":"https://api.github.com/users/PatelParas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PatelParas/subscriptions","organizations_url":"https://api.github.com/users/PatelParas/orgs","repos_url":"https://api.github.com/users/PatelParas/repos","events_url":"https://api.github.com/users/PatelParas/events{/privacy}","received_events_url":"https://api.github.com/users/PatelParas/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/leo-project/leofs/labels/Improve","name":"Improve","color":"FFA500"},{"url":"https://api.github.com/repos/leo-project/leofs/labels/_leo_gateway","name":"_leo_gateway","color":"ededed"}],"state":"open","locked":false,"assignee":{"login":"mocchira","id":279052,"avatar_url":"https://avatars.githubusercontent.com/u/279052?v=3","gravatar_id":"","url":"https://api.github.com/users/mocchira","html_url":"https://github.com/mocchira","followers_url":"https://api.github.com/users/mocchira/followers","following_url":"https://api.github.com/users/mocchira/following{/other_user}","gists_url":"https://api.github.com/users/mocchira/gists{/gist_id}","starred_url":"https://api.github.com/users/mocchira/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mocchira/subscriptions","organizations_url":"https://api.github.com/users/mocchira/orgs","repos_url":"https://api.github.com/users/mocchira/repos","events_url":"https://api.github.com/users/mocchira/events{/privacy}","received_events_url":"https://api.github.com/users/mocchira/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/leo-project/leofs/milestones/50","html_url":"https://github.com/leo-project/leofs/milestones/1.2.18","labels_url":"https://api.github.com/repos/leo-project/leofs/milestones/50/labels","id":1358942,"number":50,"title":"1.2.18","description":"","creator":{"login":"mocchira","id":279052,"avatar_url":"https://avatars.githubusercontent.com/u/279052?v=3","gravatar_id":"","url":"https://api.github.com/users/mocchira","html_url":"https://github.com/mocchira","followers_url":"https://api.github.com/users/mocchira/followers","following_url":"https://api.github.com/users/mocchira/following{/other_user}","gists_url":"https://api.github.com/users/mocchira/gists{/gist_id}","starred_url":"https://api.github.com/users/mocchira/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mocchira/subscriptions","organizations_url":"https://api.github.com/users/mocchira/orgs","repos_url":"https://api.github.com/users/mocchira/repos","events_url":"https://api.github.com/users/mocchira/events{/privacy}","received_events_url":"https://api.github.com/users/mocchira/received_events","type":"User","site_admin":false},"open_issues":3,"closed_issues":2,"state":"open","created_at":"2015-10-16T08:05:21Z","updated_at":"2015-10-26T05:14:43Z","due_on":"2015-10-28T15:00:00Z","closed_at":null},"comments":2,"created_at":"2015-10-13T08:37:24Z","updated_at":"2015-10-29T01:59:36Z","closed_at":null,"body":"LeoFS v.1.2.11\r\nwe use in PROD environment. According to current and future use cases we need to perform more and rename or move operation for all small size and big size object. move or rename use cases are increasing exponentially in our system becuase.\r\n basically aws s3 don't have rename object method so we do it in following manner :\r\n```\r\n## To rename or move object A to B\r\nStep - 1 : CopyObject(A,B)\r\nStep -2 : removeObject(A)\r\n```\r\nbut for large size object just in case copyObject() (takes 6 second) + deleteObject(1 second or less). it looks file rename is too slow(User feel it).\r\n\r\nso it will be great if you improve large object copy method's implementation either of this way :\r\n\r\n1) Make chunk copy operation using parallel thread(current implementation is serial thread copy) using this we can make copy operation fundamentally faster.\r\n\r\n2) If previous proposal is not feasible to implement  then make copyObject() asynchronous(don't wait for copy operation completion put it as background job or queue) \r\n\r\nAbove is just my suggestion i don't have idea of technical feasibility or complexity of this erlang system implementation. but please improve large object copy performance if rename operation looks slow it makes bad impact on user's mind.  "},"comment":{"url":"https://api.github.com/repos/leo-project/leofs/issues/comments/152050905","html_url":"https://github.com/leo-project/leofs/issues/424#issuecomment-152050905","issue_url":"https://api.github.com/repos/leo-project/leofs/issues/424","id":152050905,"user":{"login":"mocchira","id":279052,"avatar_url":"https://avatars.githubusercontent.com/u/279052?v=3","gravatar_id":"","url":"https://api.github.com/users/mocchira","html_url":"https://github.com/mocchira","followers_url":"https://api.github.com/users/mocchira/followers","following_url":"https://api.github.com/users/mocchira/following{/other_user}","gists_url":"https://api.github.com/users/mocchira/gists{/gist_id}","starred_url":"https://api.github.com/users/mocchira/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mocchira/subscriptions","organizations_url":"https://api.github.com/users/mocchira/orgs","repos_url":"https://api.github.com/users/mocchira/repos","events_url":"https://api.github.com/users/mocchira/events{/privacy}","received_events_url":"https://api.github.com/users/mocchira/received_events","type":"User","site_admin":false},"created_at":"2015-10-29T01:59:36Z","updated_at":"2015-10-29T01:59:36Z","body":"@PatelParas \r\nI wouldn't recommend you choosing 1) since the network speed of your PROD environment seems relatively slow, so probably not effective.\r\nSo we consider 2) approach but we think this kind of tasks(do async something) should be done at application layer, since providing async operations make LeoFS complex more than necessary as a object storage system.\r\nHow is this?\r\n"}}