qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v4 00/11] block: incremental backup transactions
@ 2015-05-11 23:04 John Snow
  2015-05-11 23:04 ` [Qemu-devel] [PATCH v4 01/11] qapi: Add transaction support to block-dirty-bitmap operations John Snow
                   ` (10 more replies)
  0 siblings, 11 replies; 29+ messages in thread
From: John Snow @ 2015-05-11 23:04 UTC (permalink / raw)
  To: qemu-block
  Cc: kwolf, famz, John Snow, qemu-devel, mreitz, vsementsov, stefanha

Patch 1 adds basic support for add and clear transactions.
Patch 2 tests this basic support.
Patches 3-4 refactor transactions a little bit, to add clarity.
Patch 5 adds the framework for error scenarios where only
    some jobs that were launched by a transaction complete successfully,
    and we need to perform context-sensitive cleanup after the transaction
    itself has already completed.
Patches 6-7 add necessary bookkeeping information to backup job
    data structures to take advantage of this new feature.
Patch 8 modifies qmp_drive_backup to support the new feature.
Patch 9 implements the new feature for drive_backup transaction actions.
Patch 10 tests the new feature.
Patch 11 updates documentation.

===
v4:
===

Key:
[----] : patches are identical
[####] : number of functional differences between upstream/downstream patch
[down] : patch is downstream-only
The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively

001/11:[0045] [FC] 'qapi: Add transaction support to block-dirty-bitmap operations'
002/11:[----] [--] 'iotests: add transactional incremental backup test'
003/11:[0002] [FC] 'block: rename BlkTransactionState and BdrvActionOps'
004/11:[----] [--] 'block: re-add BlkTransactionState'
005/11:[----] [--] 'block: add transactional callbacks feature'
006/11:[----] [--] 'block: add refcount to Job object'
007/11:[----] [--] 'block: add delayed bitmap successor cleanup'
008/11:[----] [-C] 'qmp: Add an implementation wrapper for qmp_drive_backup'
009/11:[----] [--] 'block: drive_backup transaction callback support'
010/11:[----] [--] 'iotests: 124 - transactional failure test'
011/11:[down] 'qmp-commands.hx: Update the supported 'transaction' operations'

01: New approach for clear transaction.
    bdrv_clear_dirty_bitmap (and undo_clear) moved to block_int.h
    Removed more outdated documentation from bitmaps.md
03: Fallout from adding a _clear_abort() method.
11: New documentation patch from Kashyap.

===
v3:
===

01: Removed "(Not yet implemented)" line from bitmaps.md.
    Kept R-Bs, like a selfish person would.
02: Rebased on latest transactionless series.
    Added some transaction helpers.
05: Removed superfluous deletion loop in put_blk_action_state.
08: Rebased without the preceding code motion patch.
    Re-added forward declaration for do_drive_backup.
09: Fixed commit message whitespace.
    Re-added block_job_cb forward declaration to avoid code motion patch.
10: Rebased on latest transactionless series;
    Added "wait_qmp_backup" function to complement "do_qmp_backup."
    General bike-shedding.

===
v2:
===

 01: Fixed indentation.
     Fixed QMP commands to behave with new bitmap_lookup from
       transactionless-v4.
     2.3 --> 2.4.
 02: Folded in improvements to qemu-iotest 124 from transactional-v1.
 03: NEW
 04: NEW
 05: A lot:
     Don't delete the comma in the transaction actions config
     use g_new0 instead of g_malloc0
     Phrasing: "retcode" --> "Return code"
     Use GCC attributes to mark functions as unused until future patches.
     Added some data structure documentation.
     Many structure and function renames, hopefully to improve readability.
     Use just one list for all Actions instead of two separate lists.
     Remove ActionState from the list upon deletion/decref
     And many other small tweaks.
 06: Comment phrasing.
 07: Removed errp parameter from all functions introduced by this commit.
     bdrv_dirty_bitmap_decref --> bdrv_frozen_bitmap_decref
 08: NEW
 09: _drive_backup --> do_drive_backup()
     Forward declarations removed.
 10: Rebased on top of drastically modified #05.
     Phrasing: "BackupBlockJob" instead of "BackupJob" in comments.
 11: Removed extra parameters to wait_incremental() in
       test_transaction_failure()

==
For convenience, this branch is available at:
https://github.com/jnsnow/qemu.git branch incremental-transactions
https://github.com/jnsnow/qemu/tree/incremental-transactions

This version is tagged incremental-transactions-v4:
https://github.com/jnsnow/qemu/releases/tag/incremental-transactions-v4
==

John Snow (10):
  qapi: Add transaction support to block-dirty-bitmap operations
  iotests: add transactional incremental backup test
  block: rename BlkTransactionState and BdrvActionOps
  block: re-add BlkTransactionState
  block: add transactional callbacks feature
  block: add refcount to Job object
  block: add delayed bitmap successor cleanup
  qmp: Add an implementation wrapper for qmp_drive_backup
  block: drive_backup transaction callback support
  iotests: 124 - transactional failure test

Kashyap Chamarthy (1):
  qmp-commands.hx: Update the supported 'transaction' operations

 block.c                    |  84 ++++++-
 block/backup.c             |  29 ++-
 blockdev.c                 | 580 +++++++++++++++++++++++++++++++++++++++------
 blockjob.c                 |  18 +-
 docs/bitmaps.md            |   6 +-
 include/block/block.h      |  11 +-
 include/block/block_int.h  |  11 +
 include/block/blockjob.h   |  21 ++
 qapi-schema.json           |   6 +-
 qmp-commands.hx            |  13 +-
 tests/qemu-iotests/124     | 174 +++++++++++++-
 tests/qemu-iotests/124.out |   4 +-
 12 files changed, 843 insertions(+), 114 deletions(-)

-- 
2.1.0

^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2015-05-22 22:38 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-11 23:04 [Qemu-devel] [PATCH v4 00/11] block: incremental backup transactions John Snow
2015-05-11 23:04 ` [Qemu-devel] [PATCH v4 01/11] qapi: Add transaction support to block-dirty-bitmap operations John Snow
2015-05-18 16:14   ` Max Reitz
2015-05-11 23:04 ` [Qemu-devel] [PATCH v4 02/11] iotests: add transactional incremental backup test John Snow
2015-05-11 23:04 ` [Qemu-devel] [PATCH v4 03/11] block: rename BlkTransactionState and BdrvActionOps John Snow
2015-05-18 12:24   ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2015-05-11 23:04 ` [Qemu-devel] [PATCH v4 04/11] block: re-add BlkTransactionState John Snow
2015-05-18 12:33   ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2015-05-11 23:04 ` [Qemu-devel] [PATCH v4 05/11] block: add transactional callbacks feature John Snow
2015-05-11 23:04 ` [Qemu-devel] [PATCH v4 06/11] block: add refcount to Job object John Snow
2015-05-18 15:45   ` Stefan Hajnoczi
2015-05-19 22:15     ` John Snow
2015-05-20  9:27       ` Stefan Hajnoczi
2015-05-22 22:38         ` John Snow
2015-05-11 23:04 ` [Qemu-devel] [PATCH v4 07/11] block: add delayed bitmap successor cleanup John Snow
2015-05-11 23:04 ` [Qemu-devel] [PATCH v4 08/11] qmp: Add an implementation wrapper for qmp_drive_backup John Snow
2015-05-18 14:42   ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2015-05-18 15:10     ` John Snow
2015-05-11 23:04 ` [Qemu-devel] [PATCH v4 09/11] block: drive_backup transaction callback support John Snow
2015-05-18 15:35   ` Stefan Hajnoczi
2015-05-18 15:53     ` John Snow
2015-05-18 15:48   ` Stefan Hajnoczi
2015-05-11 23:04 ` [Qemu-devel] [PATCH v4 10/11] iotests: 124 - transactional failure test John Snow
2015-05-11 23:04 ` [Qemu-devel] [PATCH v4 11/11] qmp-commands.hx: Update the supported 'transaction' operations John Snow
2015-05-18 16:22   ` Max Reitz
2015-05-19 15:30     ` Kashyap Chamarthy
2015-05-19 15:37       ` John Snow
2015-05-20 11:12         ` Kashyap Chamarthy
2015-05-20 11:27           ` John Snow

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).