Re: [PATCH v2 0/6] Implement a batched fsync option for core.fsyncObjectFiles

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Aug 27, 2021 at 4:49 PM Neeraj K. Singh via GitGitGadget
<gitgitgadget@xxxxxxxxx> wrote:
>
> Thanks to everyone for review so far! I've responded to the previous
> feedback and changed the patch series a bit.
>
> Changes since v1:
>
>  * Switch from futimes(2) to futimens(2), which is in POSIX.1-2008. Contrary
>    to dscho's suggestion, I'm still implementing the Windows version in the
>    same patch and I'm not doing autoconf detection since this is a POSIX
>    function.
>
>  * Introduce a separate preparatory patch to the bulk-checkin infrastructure
>    to separate the 'plugged' variable and rename the 'state' variable, as
>    suggested by dscho.
>
>  * Add performance numbers to the commit message of the main bulk fsync
>    patch, as suggested by dscho.
>
>  * Add a comment about the non-thread-safety of the bulk-checkin
>    infrastructure, as suggested by avarab.
>
>  * Rename the experimental mode to core.fsyncobjectfiles=batch, as suggested
>    by dscho and avarab and others.
>
>  * Add more details to Documentation/config/core.txt about the various
>    settings and their intended effects, as suggested by avarab.
>
>  * Switch to the string-list API to hold the rename state, as suggested by
>    avarab.
>
>  * Create a separate update-index patch to use bulk-checkin as suggested by
>    dscho.
>
>  * Add Windows support in the upstream git. This is done in a way that
>    should not conflict with git-for-windows.
>
>  * Add new performance tests that shows the delta based on fsync mode.
>
> NOTE: Based on Christoph Hellwig's comments, the 'batch' mode is not correct
> on Linux, since sync_file_range does not provide data integrity guarantees.
> There is currently no kernel interface suitable to achieve disk flush
> batching as is, but he suggested that he might implement a 'syncfs' variant
> on top of this patchset. This code is still useful on macOS and Windows, and
> the config documentation makes that clear.
>
> Neeraj Singh (6):
>   object-file: use futimens rather than utime
>   bulk-checkin: rename 'state' variable and separate 'plugged' boolean
>   core.fsyncobjectfiles: batched disk flushes
>   core.fsyncobjectfiles: add windows support for batch mode
>   update-index: use the bulk-checkin infrastructure
>   core.fsyncobjectfiles: performance tests for add and stash
>
>  Documentation/config/core.txt       | 26 ++++++--
>  Makefile                            |  6 ++
>  builtin/add.c                       |  3 +-
>  builtin/update-index.c              |  3 +
>  bulk-checkin.c                      | 92 +++++++++++++++++++++++++----
>  bulk-checkin.h                      |  4 +-
>  cache.h                             |  8 ++-
>  compat/mingw.c                      | 53 +++++++++++------
>  compat/mingw.h                      |  5 ++
>  compat/win32/flush.c                | 29 +++++++++
>  config.c                            |  8 ++-
>  config.mak.uname                    |  4 ++
>  configure.ac                        |  8 +++
>  contrib/buildsystems/CMakeLists.txt |  3 +-
>  environment.c                       |  2 +-
>  git-compat-util.h                   |  7 +++
>  object-file.c                       | 23 ++------
>  t/perf/lib-unique-files.sh          | 32 ++++++++++
>  t/perf/p3700-add.sh                 | 43 ++++++++++++++
>  t/perf/p3900-stash.sh               | 46 +++++++++++++++
>  wrapper.c                           | 40 +++++++++++++
>  write-or-die.c                      |  2 +-
>  22 files changed, 389 insertions(+), 58 deletions(-)
>  create mode 100644 compat/win32/flush.c
>  create mode 100644 t/perf/lib-unique-files.sh
>  create mode 100755 t/perf/p3700-add.sh
>  create mode 100755 t/perf/p3900-stash.sh
>
>
> base-commit: 225bc32a989d7a22fa6addafd4ce7dcd04675dbf
> Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1076%2Fneerajsi-msft%2Fneerajsi%2Fbulk-fsync-object-files-v2
> Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1076/neerajsi-msft/neerajsi/bulk-fsync-object-files-v2
> Pull-Request: https://github.com/git/git/pull/1076

Hello everyone,
I'd like to bump this review up in people's inboxes since Patch V2
hasn't gotten any traction in over a week.

Thanks in advance for taking a look,
- Neeraj Singh
Windows Core Filesystems Team



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux