1. 20 7月, 2017 1 次提交
  2. 11 7月, 2017 26 次提交
  3. 10 7月, 2017 2 次提交
  4. 08 7月, 2017 4 次提交
  5. 07 7月, 2017 7 次提交
    • I
      libceph: advertise support for NEW_OSDOP_ENCODING and SERVER_LUMINOUS · 33e9c8db
      Ilya Dryomov 提交于
      All four SERVER_LUMINOUS feature bits are implemented, switch it on!
      
      NEW_OSDOP_ENCODING doesn't mean much for the client (it signifies
      support for MOSDOp v6) but needs to be enabled in order to get the
      latest (currently v25) pg_pool_t.
      Signed-off-by: NIlya Dryomov <idryomov@gmail.com>
      Acked-by: NSage Weil <sage@redhat.com>
      33e9c8db
    • I
      libceph: osd_state is 32 bits wide in luminous · 0bb05da2
      Ilya Dryomov 提交于
      Signed-off-by: NIlya Dryomov <idryomov@gmail.com>
      0bb05da2
    • I
      libceph, crush: per-pool crush_choose_arg_map for crush_do_rule() · 5cf9c4a9
      Ilya Dryomov 提交于
      If there is no crush_choose_arg_map for a given pool, a NULL pointer is
      passed to preserve existing crush_do_rule() behavior.
      
      Reflects ceph.git commits 55fb91d64071552ea1bc65ab4ea84d3c8b73ab4b,
                                dbe36e08be00c6519a8c89718dd47b0219c20516.
      Signed-off-by: NIlya Dryomov <idryomov@gmail.com>
      5cf9c4a9
    • I
      crush: implement weight and id overrides for straw2 · 069f3222
      Ilya Dryomov 提交于
      bucket_straw2_choose needs to use weights that may be different from
      weight_items. For instance to compensate for an uneven distribution
      caused by a low number of values. Or to fix the probability biais
      introduced by conditional probabilities (see
      http://tracker.ceph.com/issues/15653 for more information).
      
      We introduce a weight_set for each straw2 bucket to set the desired
      weight for a given item at a given position. The weight of a given item
      when picking the first replica (first position) may be different from
      the weight the second replica (second position). For instance the weight
      matrix for a given bucket containing items 3, 7 and 13 could be as
      follows:
      
                position 0   position 1
      
      item 3     0x10000      0x100000
      item 7     0x40000       0x10000
      item 13    0x40000       0x10000
      
      When crush_do_rule picks the first of two replicas (position 0), item 7,
      3 are four times more likely to be choosen by bucket_straw2_choose than
      item 13. When choosing the second replica (position 1), item 3 is ten
      times more likely to be choosen than item 7, 13.
      
      By default the weight_set of each bucket exactly matches the content of
      item_weights for each position to ensure backward compatibility.
      
      bucket_straw2_choose compares items by using their id. The same ids are
      also used to index buckets and they must be unique. For each item in a
      bucket an array of ids can be provided for placement purposes and they
      are used instead of the ids. If no replacement ids are provided, the
      legacy behavior is preserved.
      
      Reflects ceph.git commit 19537a450fd5c5a0bb8b7830947507a76db2ceca.
      Signed-off-by: NIlya Dryomov <idryomov@gmail.com>
      069f3222
    • I
      libceph: pg_upmap[_items] infrastructure · 6f428df4
      Ilya Dryomov 提交于
      pg_temp and pg_upmap encodings are the same (PG -> array of osds),
      except for the incremental remove: it's an empty mapping in new_pg_temp
      for pg_temp and a separate old_pg_upmap set for pg_upmap.  (This isn't
      to allow for empty pg_upmap mappings -- apparently, pg_temp just wasn't
      looked at as an example for pg_upmap encoding.)
      
      Reuse __decode_pg_temp() for decoding pg_upmap and new_pg_upmap.
      __decode_pg_temp() stores into pg_temp union member, but since pg_upmap
      union member is identical, reading through pg_upmap later is OK.
      Signed-off-by: NIlya Dryomov <idryomov@gmail.com>
      6f428df4
    • I
      libceph: ceph_decode_skip_* helpers · 278b1d70
      Ilya Dryomov 提交于
      Some of these won't be as efficient as they could be (e.g.
      ceph_decode_skip_set(... 32 ...) could advance by len * sizeof(u32)
      once instead of advancing by sizeof(u32) len times), but that's fine
      and not worth a bunch of extra macro code.
      
      Replace skip_name_map() with ceph_decode_skip_map as an example.
      Signed-off-by: NIlya Dryomov <idryomov@gmail.com>
      278b1d70
    • I
      libceph: respect RADOS_BACKOFF backoffs · a02a946d
      Ilya Dryomov 提交于
      Signed-off-by: NIlya Dryomov <idryomov@gmail.com>
      a02a946d