1. 09 1月, 2017 2 次提交
  2. 24 10月, 2016 2 次提交
  3. 05 7月, 2016 2 次提交
  4. 20 6月, 2016 1 次提交
  5. 19 5月, 2016 1 次提交
  6. 12 5月, 2016 2 次提交
  7. 17 3月, 2016 1 次提交
  8. 15 3月, 2016 1 次提交
  9. 14 3月, 2016 2 次提交
  10. 22 2月, 2016 1 次提交
  11. 20 1月, 2016 1 次提交
  12. 18 12月, 2015 1 次提交
  13. 17 12月, 2015 1 次提交
    • E
      qapi: Don't let implicit enum MAX member collide · 7fb1cf16
      Eric Blake 提交于
      Now that we guarantee the user doesn't have any enum values
      beginning with a single underscore, we can use that for our
      own purposes.  Renaming ENUM_MAX to ENUM__MAX makes it obvious
      that the sentinel is generated.
      
      This patch was mostly generated by applying a temporary patch:
      
      |diff --git a/scripts/qapi.py b/scripts/qapi.py
      |index e6d014b..b862ec9 100644
      |--- a/scripts/qapi.py
      |+++ b/scripts/qapi.py
      |@@ -1570,6 +1570,7 @@ const char *const %(c_name)s_lookup[] = {
      |     max_index = c_enum_const(name, 'MAX', prefix)
      |     ret += mcgen('''
      |     [%(max_index)s] = NULL,
      |+// %(max_index)s
      | };
      | ''',
      |                max_index=max_index)
      
      then running:
      
      $ cat qapi-{types,event}.c tests/test-qapi-types.c |
          sed -n 's,^// \(.*\)MAX,s|\1MAX|\1_MAX|g,p' > list
      $ git grep -l _MAX | xargs sed -i -f list
      
      The only things not generated are the changes in scripts/qapi.py.
      
      Rejecting enum members named 'MAX' is now useless, and will be dropped
      in the next patch.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      Message-Id: <1447836791-369-23-git-send-email-eblake@redhat.com>
      Reviewed-by: NJuan Quintela <quintela@redhat.com>
      [Rebased to current master, commit message tweaked]
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      7fb1cf16
  14. 16 10月, 2015 1 次提交
  15. 05 9月, 2015 1 次提交
  16. 05 8月, 2015 1 次提交
  17. 08 7月, 2015 1 次提交
  18. 23 6月, 2015 2 次提交
  19. 22 6月, 2015 1 次提交
  20. 12 6月, 2015 2 次提交
  21. 28 4月, 2015 1 次提交
  22. 20 10月, 2014 3 次提交
  23. 22 9月, 2014 3 次提交
  24. 30 8月, 2014 1 次提交
  25. 29 8月, 2014 1 次提交
    • L
      block/quorum: add simple read pattern support · a9db86b2
      Liu Yuan 提交于
      This patch adds single read pattern to quorum driver and quorum vote is default
      pattern.
      
      For now we do a quorum vote on all the reads, it is designed for unreliable
      underlying storage such as non-redundant NFS to make sure data integrity at the
      cost of the read performance.
      
      For some use cases as following:
      
              VM
        --------------
        |            |
        v            v
        A            B
      
      Both A and B has hardware raid storage to justify the data integrity on its own.
      So it would help performance if we do a single read instead of on all the nodes.
      Further, if we run VM on either of the storage node, we can make a local read
      request for better performance.
      
      This patch generalize the above 2 nodes case in the N nodes. That is,
      
      vm -> write to all the N nodes, read just one of them. If single read fails, we
      try to read next node in FIFO order specified by the startup command.
      
      The 2 nodes case is very similar to DRBD[1] though lack of auto-sync
      functionality in the single device/node failure for now. But compared with DRBD
      we still have some advantages over it:
      
      - Suppose we have 20 VMs running on one(assume A) of 2 nodes' DRBD backed
      storage. And if A crashes, we need to restart all the VMs on node B. But for
      practice case, we can't because B might not have enough resources to setup 20 VMs
      at once. So if we run our 20 VMs with quorum driver, and scatter the replicated
      images over the data center, we can very likely restart 20 VMs without any
      resource problem.
      
      After all, I think we can build a more powerful replicated image functionality
      on quorum and block jobs(block mirror) to meet various High Availibility needs.
      
      E.g, Enable single read pattern on 2 children,
      
      -drive driver=quorum,children.0.file.filename=0.qcow2,\
      children.1.file.filename=1.qcow2,read-pattern=fifo,vote-threshold=1
      
      [1] http://en.wikipedia.org/wiki/Distributed_Replicated_Block_Device
      
      [Dropped \n from an error_setg() error message
      --Stefan]
      
      Cc: Benoit Canet <benoit@irqsave.net>
      Cc: Eric Blake <eblake@redhat.com>
      Cc: Kevin Wolf <kwolf@redhat.com>
      Cc: Stefan Hajnoczi <stefanha@redhat.com>
      Signed-off-by: NLiu Yuan <namei.unix@gmail.com>
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      a9db86b2
  26. 20 8月, 2014 1 次提交
  27. 27 6月, 2014 1 次提交
  28. 23 6月, 2014 1 次提交
  29. 04 6月, 2014 1 次提交