)]}'
{"id":"openstack%2Fswift~609988","triplet_id":"openstack%2Fswift~master~Ie123d8e43e728332d3e990d7255d1a4d7f396d52","project":"openstack/swift","branch":"master","topic":"ssync-requests","hashtags":[],"change_id":"Ie123d8e43e728332d3e990d7255d1a4d7f396d52","subject":"Allow to batch data flush on disk in SSYNC","status":"ABANDONED","created":"2018-10-12 09:57:21.000000000","updated":"2018-10-19 12:46:04.000000000","total_comment_count":8,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"7a02dd5704428d835e9aa46f01e8a55512d1c8b4","_number":609988,"virtual_id_number":609988,"owner":{"_account_id":13852,"name":"Romain LE DISEZ","email":"romain.le-disez@corp.ovh.com","username":"rledisez"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":1,"date":"2018-10-12 12:33:33.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":13852,"name":"Romain LE DISEZ","email":"romain.le-disez@corp.ovh.com","username":"rledisez"},{"date":"2018-10-12 21:51:09.000000000","_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":13852,"name":"Romain LE DISEZ","email":"romain.le-disez@corp.ovh.com","username":"rledisez"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"rejected":{"_account_id":13852,"name":"Romain LE DISEZ","email":"romain.le-disez@corp.ovh.com","username":"rledisez"},"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":-1,"date":"2018-10-12 11:56:39.000000000","permitted_voting_range":{"min":-1,"max":0},"_account_id":13852,"name":"Romain LE DISEZ","email":"romain.le-disez@corp.ovh.com","username":"rledisez"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":13852,"name":"Romain LE DISEZ","email":"romain.le-disez@corp.ovh.com","username":"rledisez"},{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2018-10-12 12:33:33.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2018-10-12 21:51:09.000000000","updated_by":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"reviewer":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"state":"REVIEWER"}],"messages":[{"id":"beec0b37291d96cb0256912b1a7ccd747cfb215f","author":{"_account_id":13852,"name":"Romain LE DISEZ","email":"romain.le-disez@corp.ovh.com","username":"rledisez"},"date":"2018-10-12 09:57:21.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"861c7c0574e20936494c9819a8a02d6b68c20774","author":{"_account_id":13852,"name":"Romain LE DISEZ","email":"romain.le-disez@corp.ovh.com","username":"rledisez"},"date":"2018-10-12 10:02:48.000000000","message":"Patch Set 1: Workflow-1\n\nThis gives us a 3x perf improvement on updates() function during revert","accounts_in_message":[],"_revision_number":1},{"id":"42eacdbab2ff45bbbf6b9fe80b6e0c2465946764","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2018-10-12 10:50:03.000000000","message":"Patch Set 1: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n\n- openstack-tox-cover http://logs.openstack.org/88/609988/1/check/openstack-tox-cover/85bf692/cover/ : SUCCESS in 7m 50s\n- openstack-tox-docs http://logs.openstack.org/88/609988/1/check/openstack-tox-docs/d10001f/html/ : SUCCESS in 4m 26s\n- swift-tox-py27 http://logs.openstack.org/88/609988/1/check/swift-tox-py27/f74aa48/ : FAILURE in 11m 29s\n- swift-tox-py35 http://logs.openstack.org/88/609988/1/check/swift-tox-py35/f23d6fe/ : SUCCESS in 5m 54s\n- swift-tox-py36 http://logs.openstack.org/88/609988/1/check/swift-tox-py36/0e611b6/ : SUCCESS in 5m 06s (non-voting)\n- swift-tox-func http://logs.openstack.org/88/609988/1/check/swift-tox-func/79861f0/ : SUCCESS in 9m 11s\n- swift-tox-func-encryption http://logs.openstack.org/88/609988/1/check/swift-tox-func-encryption/b3556ad/ : SUCCESS in 32m 54s\n- swift-tox-func-domain-remap-staticweb http://logs.openstack.org/88/609988/1/check/swift-tox-func-domain-remap-staticweb/c4e07bc/ : SUCCESS in 13m 27s\n- swift-tox-func-ec http://logs.openstack.org/88/609988/1/check/swift-tox-func-ec/a821ae1/ : SUCCESS in 9m 48s\n- swift-tox-func-s3api http://logs.openstack.org/88/609988/1/check/swift-tox-func-s3api/460810c/ : SUCCESS in 11m 56s\n- swift-tox-func-s3api-ceph-s3tests-tempauth http://logs.openstack.org/88/609988/1/check/swift-tox-func-s3api-ceph-s3tests-tempauth/9ab6441/ : SUCCESS in 9m 42s (non-voting)\n- swift-probetests-centos-7 http://logs.openstack.org/88/609988/1/check/swift-probetests-centos-7/83585a8/ : SUCCESS in 28m 03s\n- swift-dsvm-functional http://logs.openstack.org/88/609988/1/check/swift-dsvm-functional/4a16a63/ : SUCCESS in 26m 58s\n- swift-dsvm-functional-ipv6 http://logs.openstack.org/88/609988/1/check/swift-dsvm-functional-ipv6/6683e1b/ : SUCCESS in 29m 34s\n- swift-tox-lower-constraints http://logs.openstack.org/88/609988/1/check/swift-tox-lower-constraints/887ff42/ : FAILURE in 11m 49s\n- openstack-tox-pep8 http://logs.openstack.org/88/609988/1/check/openstack-tox-pep8/798a871/ : FAILURE in 5m 10s\n- swift-multinode-rolling-upgrade http://logs.openstack.org/88/609988/1/check/swift-multinode-rolling-upgrade/ce397d0/ : SUCCESS in 15m 54s","accounts_in_message":[],"_revision_number":1},{"id":"9b4bd3e0858cbc62ad1338a68ca0edfd395647ca","author":{"_account_id":13852,"name":"Romain LE DISEZ","email":"romain.le-disez@corp.ovh.com","username":"rledisez"},"date":"2018-10-12 11:55:26.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"16e9b67575523414f3365cff884a29bedd1a2a9a","author":{"_account_id":13852,"name":"Romain LE DISEZ","email":"romain.le-disez@corp.ovh.com","username":"rledisez"},"date":"2018-10-12 11:56:39.000000000","message":"Patch Set 2: Workflow-1","accounts_in_message":[],"_revision_number":2},{"id":"6d9b3993cb3cf7b56d0ddafd27f83c082022ba70","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2018-10-12 12:33:33.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-cover http://logs.openstack.org/88/609988/2/check/openstack-tox-cover/77eef59/cover/ : SUCCESS in 8m 21s\n- openstack-tox-docs http://logs.openstack.org/88/609988/2/check/openstack-tox-docs/f01bea7/html/ : SUCCESS in 3m 51s\n- swift-tox-py27 http://logs.openstack.org/88/609988/2/check/swift-tox-py27/50968f1/ : SUCCESS in 10m 26s\n- swift-tox-py35 http://logs.openstack.org/88/609988/2/check/swift-tox-py35/a25f85a/ : SUCCESS in 4m 34s\n- swift-tox-py36 http://logs.openstack.org/88/609988/2/check/swift-tox-py36/54456ee/ : SUCCESS in 5m 01s (non-voting)\n- swift-tox-func http://logs.openstack.org/88/609988/2/check/swift-tox-func/18d90e4/ : SUCCESS in 9m 57s\n- swift-tox-func-encryption http://logs.openstack.org/88/609988/2/check/swift-tox-func-encryption/6b2b4ce/ : SUCCESS in 8m 35s\n- swift-tox-func-domain-remap-staticweb http://logs.openstack.org/88/609988/2/check/swift-tox-func-domain-remap-staticweb/d269e07/ : SUCCESS in 24m 01s\n- swift-tox-func-ec http://logs.openstack.org/88/609988/2/check/swift-tox-func-ec/341b8c4/ : SUCCESS in 8m 54s\n- swift-tox-func-s3api http://logs.openstack.org/88/609988/2/check/swift-tox-func-s3api/a367014/ : SUCCESS in 10m 56s\n- swift-tox-func-s3api-ceph-s3tests-tempauth http://logs.openstack.org/88/609988/2/check/swift-tox-func-s3api-ceph-s3tests-tempauth/b3085a2/ : SUCCESS in 9m 37s (non-voting)\n- swift-probetests-centos-7 http://logs.openstack.org/88/609988/2/check/swift-probetests-centos-7/1cb8971/ : SUCCESS in 27m 17s\n- swift-dsvm-functional http://logs.openstack.org/88/609988/2/check/swift-dsvm-functional/7d246b0/ : SUCCESS in 26m 57s\n- swift-dsvm-functional-ipv6 http://logs.openstack.org/88/609988/2/check/swift-dsvm-functional-ipv6/c37834d/ : SUCCESS in 22m 25s\n- swift-tox-lower-constraints http://logs.openstack.org/88/609988/2/check/swift-tox-lower-constraints/96a17c8/ : SUCCESS in 10m 44s\n- openstack-tox-pep8 http://logs.openstack.org/88/609988/2/check/openstack-tox-pep8/f5fa7b2/ : SUCCESS in 5m 12s\n- swift-multinode-rolling-upgrade http://logs.openstack.org/88/609988/2/check/swift-multinode-rolling-upgrade/eeb820f/ : SUCCESS in 13m 19s","accounts_in_message":[],"_revision_number":2},{"id":"3616d3644ddf9b376e13787d04eeef99f7606e75","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2018-10-12 17:59:27.000000000","message":"Patch Set 2:\n\n(6 comments)\n\nInteresting... we\u0027ll want some tests that use the new mode, of course. And I\u0027ll have to think a bit about what this means for our notion of object atomicity -- my understanding was that we do all these fsyncs to ensure that for a given path that the object-server might open, either the data and all its metadata are there, or nothing is.\n\nIf we write a bunch of things to the filesystem then hit an error (or even restart) before the sync() call, can we find ourselves in a situation where we have data but no metadata? Or metadata but no data? Or the file gets linked, but not all of the data got written? If we get into a bad situation like this, how will the object-server respond? Presumably the auditor will quarantine/clean it up eventually... What happens if the replicator/reconstructor gets there first, though? Can we get ourselves into a situation where the replicator keeps pushing around malformed objects faster than the auditor can get them quarantined?","accounts_in_message":[],"_revision_number":2},{"id":"f9c9e5521abf96b06522547624d323996deb5cdd","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2018-10-12 21:51:09.000000000","message":"Patch Set 2:\n\n(2 comments)","accounts_in_message":[],"_revision_number":2},{"id":"639898c2009859d2fa68f5fab0fc6c5ae6ef18cf","author":{"_account_id":13852,"name":"Romain LE DISEZ","email":"romain.le-disez@corp.ovh.com","username":"rledisez"},"date":"2018-10-17 07:37:41.000000000","message":"Patch Set 2:\n\n\u003e And I\u0027ll have to think a bit about what this means for our\n \u003e notion of object atomicity -- my understanding was that we do all\n \u003e these fsyncs to ensure that for a given path that the object-server\n \u003e might open, either the data and all its metadata are there, or\n \u003e nothing is.\n \u003e \n \u003e If we write a bunch of things to the filesystem then hit an error\n \u003e (or even restart) before the sync() call, can we find ourselves in\n \u003e a situation where we have data but no metadata? Or metadata but no\n \u003e data? Or the file gets linked, but not all of the data got written?\n\nTo be sure, I asked on the linux-xfs mailing-list. You can find the whole discussion at [1], but the answer that will interest you is the one from Dave Chinner. He says that it behaves the same. All data will get written before an inode is inserted. The point about performance is because he does not know we are working on a lot of files at once. Of course, this sync() optimisation is mainly useful when working on lots of small files, because with few big files, there is not much fsync().\n\n[1] https://lwn.net/ml/linux-xfs/6A65F394-C1BA-4339-AC9B-051885D12F65@corp.ovh.com/","accounts_in_message":[],"_revision_number":2},{"id":"2576ae9b24b5179ac697c74dea52fb23972bf9e1","author":{"_account_id":13852,"name":"Romain LE DISEZ","email":"romain.le-disez@corp.ovh.com","username":"rledisez"},"date":"2018-10-19 12:46:04.000000000","message":"Abandoned\n\nI followed on the discussion on linux-xfs ML. You were right, Dave Chinner completed the answer, it\u0027s not safe to do it this way. I\u0027ll try an other way (similar to PUT+POST maybe?)","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"ec94d6b757cb22cff7bc0ec11e68d63078a08c83","revisions":{"946217a7432df40097436249e3f2d9307c0a1e4c":{"kind":"REWORK","_number":1,"created":"2018-10-12 09:57:21.000000000","uploader":{"_account_id":13852,"name":"Romain LE DISEZ","email":"romain.le-disez@corp.ovh.com","username":"rledisez"},"ref":"refs/changes/88/609988/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/88/609988/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/88/609988/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/88/609988/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/88/609988/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/88/609988/1"}}},"commit":{"parents":[{"commit":"4ae9ce76e70e179a69b27cafed6e0897bd509263","subject":"Merge \"Pass empty etag override values through encrypter\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4ae9ce76e70e179a69b27cafed6e0897bd509263"}]}],"author":{"name":"Romain LE DISEZ","email":"romain.le-disez@corp.ovh.com","date":"2018-10-12 06:00:39.000000000","tz":120},"committer":{"name":"Romain LE DISEZ","email":"romain.le-disez@corp.ovh.com","date":"2018-10-12 09:27:11.000000000","tz":120},"subject":"Allow to batch data flush on disk in SSYNC","message":"Allow to batch data flush on disk in SSYNC\n\nChange-Id: Ie123d8e43e728332d3e990d7255d1a4d7f396d52\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/946217a7432df40097436249e3f2d9307c0a1e4c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/946217a7432df40097436249e3f2d9307c0a1e4c"}]},"branch":"refs/heads/master"},"ec94d6b757cb22cff7bc0ec11e68d63078a08c83":{"kind":"REWORK","_number":2,"created":"2018-10-12 11:55:26.000000000","uploader":{"_account_id":13852,"name":"Romain LE DISEZ","email":"romain.le-disez@corp.ovh.com","username":"rledisez"},"ref":"refs/changes/88/609988/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/88/609988/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/88/609988/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/88/609988/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/88/609988/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/88/609988/2"}}},"commit":{"parents":[{"commit":"4ae9ce76e70e179a69b27cafed6e0897bd509263","subject":"Merge \"Pass empty etag override values through encrypter\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4ae9ce76e70e179a69b27cafed6e0897bd509263"}]}],"author":{"name":"Romain LE DISEZ","email":"romain.le-disez@corp.ovh.com","date":"2018-10-12 06:00:39.000000000","tz":120},"committer":{"name":"Romain LE DISEZ","email":"romain.le-disez@corp.ovh.com","date":"2018-10-12 11:48:20.000000000","tz":120},"subject":"Allow to batch data flush on disk in SSYNC","message":"Allow to batch data flush on disk in SSYNC\n\nChange-Id: Ie123d8e43e728332d3e990d7255d1a4d7f396d52\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ec94d6b757cb22cff7bc0ec11e68d63078a08c83"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ec94d6b757cb22cff7bc0ec11e68d63078a08c83"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
