)]}'
{"cinder/volume/drivers/quobyte.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"608350de7896a01572a84362ac8b6d1e33a4efe5","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        # NOTE(kaisers): Truncating this is faster than fallocate and"},{"line_number":116,"context_line":"        # avoids serialization of requests in fuse/kernel later on with QB."},{"line_number":117,"context_line":"        self._execute(\u0027truncate\u0027, \u0027-s\u0027, \u0027%sG\u0027 % size_gb,"},{"line_number":118,"context_line":"                      path, run_as_root\u003dself._execute_as_root)"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def _create_regular_file(self, path, size):"},{"line_number":121,"context_line":"        \"\"\"Creates a regular file of given size in GiB.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f287b81_7b33ba14","line":118,"updated":"2017-09-05 14:15:41.000000000","message":"Why not just use \"qemu-img create -o preallocation\u003dfalloc\" or \"preallocation\u003dfull\" instead of calling truncate separately?","commit_id":"49afe1f3628b8c221df8240f083381c3e2632644"},{"author":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"change_message_id":"1c53f2e5dd89cc8d253d5464caae49877d586e63","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        # NOTE(kaisers): Truncating this is faster than fallocate and"},{"line_number":116,"context_line":"        # avoids serialization of requests in fuse/kernel later on with QB."},{"line_number":117,"context_line":"        self._execute(\u0027truncate\u0027, \u0027-s\u0027, \u0027%sG\u0027 % size_gb,"},{"line_number":118,"context_line":"                      path, run_as_root\u003dself._execute_as_root)"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def _create_regular_file(self, path, size):"},{"line_number":121,"context_line":"        \"\"\"Creates a regular file of given size in GiB.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f287b81_db117806","line":118,"in_reply_to":"7f287b81_7b33ba14","updated":"2017-09-06 06:06:32.000000000","message":"Both take more time during creation (especially full preallocation). Fuse based writes to the volume are serialized if they go beyond eof which reduces performance due to lost parallelism with our backend. Truncating to file size prevents this bottleneck for most writes and is very fast during creation.\nAs qcow2 adds Metadata size to the file size (which is not accounted for in this truncate) the writes that go beyond the truncated size (up to the metadata delta added to the virtual disk size) will be back in the bottleneck which is not perfect but acceptable.","commit_id":"49afe1f3628b8c221df8240f083381c3e2632644"}]}
