)]}'
{
  "log": [
    {
      "commit": "7ec23d50949d5062b5b749638dd9380ed75e58e5",
      "tree": "28183b6468683cf28abd63b9c322b9f31bcddc5e",
      "parents": [
        "d2b698644c97cb033261536a4f2010924a00eac9"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Sep 04 20:40:34 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Sep 04 20:40:34 2009 +0100"
      },
      "message": "dm log: userspace add luid to distinguish between concurrent log instances\n\nDevice-mapper userspace logs (like the clustered log) are\nidentified by a universally unique identifier (UUID).  This\nidentifier is used to associate requests from the kernel to\na specific log in userspace.  The UUID must be unique everywhere,\nsince multiple machines may use this identifier when communicating\nabout a particular log, as is the case for cluster logs.\n\nSometimes, device-mapper/LVM may re-use a UUID.  This is the\ncase during pvmoves, when moving from one segment of an LV\nto another, or when resizing a mirror, etc.  In these cases,\na new log is created with the same UUID and loaded in the\n\"inactive\" slot.  When a device-mapper \"resume\" is issued,\nthe \"live\" table is deactivated and the new \"inactive\" table\nbecomes \"live\".  (The \"inactive\" table can also be removed\nvia a device-mapper \u0027clear\u0027 command.)\n\nThe above two issues were colliding.  More than one log was being\ncreated with the same UUID, and there was no way to distinguish\nbetween them.  So, sometimes the wrong log would be swapped\nout during the exchange.\n\nThe solution is to create a locally unique identifier,\n\u0027luid\u0027, to go along with the UUID.  This new identifier is used\nto determine exactly which log is being referenced by the kernel\nwhen the log exchange is made.  The identifier is not\nuniversally safe, but it does not need to be, since\ncreate/destroy/suspend/resume operations are bound to a specific\nmachine; and these are the operations that make up the exchange.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "f5db4af466e2dca0fe822019812d586ca910b00c",
      "tree": "1bbaaa36509df9f7eecc19ccffa434048cf4b555",
      "parents": [
        "754c5fc7ebb417b23601a6222a6005cc2e7f2913"
      ],
      "author": {
        "name": "Jonthan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Mon Jun 22 10:12:35 2009 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Mon Jun 22 10:12:35 2009 +0100"
      },
      "message": "dm raid1: add userspace log\n\nThis patch contains a device-mapper mirror log module that forwards\nrequests to userspace for processing.\n\nThe structures used for communication between kernel and userspace are\nlocated in include/linux/dm-log-userspace.h.  Due to the frequency,\ndiversity, and 2-way communication nature of the exchanges between\nkernel and userspace, \u0027connector\u0027 was chosen as the interface for\ncommunication.\n\nThe first log implementations written in userspace - \"clustered-disk\"\nand \"clustered-core\" - support clustered shared storage.   A userspace\ndaemon (in the LVM2 source code repository) uses openAIS/corosync to\nprocess requests in an ordered fashion with the rest of the nodes in the\ncluster so as to prevent log state corruption.  Other implementations\nwith no association to LVM or openAIS/corosync, are certainly possible.\n\n(Imagine if two machines are writing to the same region of a mirror.\nThey would both mark the region dirty, but you need a cluster-aware\nentity that can handle properly marking the region clean when they are\ndone.  Otherwise, you might clear the region when the first machine is\ndone, not the second.)\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nCc: Evgeniy Polyakov \u003cjohnpol@2ka.mipt.ru\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    }
  ]
}
