Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-7235

ZFS: dmu_object_alloc() serializes object creations

XMLWordPrintable

    • Icon: Improvement Improvement
    • Resolution: Fixed
    • Icon: Minor Minor
    • None
    • None
    • 9223372036854775807

      dmu_object_alloc() in ZFS serializes object creations with a mutex:

      dmu_object_alloc(objset_t *os, dmu_object_type_t ot,
                        int dmu_object_type_t bonustype,
                        int bonuslen, dmu_tx_t *tx)
      {
      	uint64_t object;
      	uint64_t L2_dnode_count = DNODES_PER_BLOCK <<
      	    (DMU_META_DNODE(os)->dn_indblkshift - SPA_BLKPTRSHIFT);
      	dnode_t *dn = NULL;
      	int restarted = B_FALSE;
      
      	mutex_enter(&os->os_obj_lock);
      

      this can be a bottleneck holding metadata performance much lower compared to ldiskfs where inode creation is more concurrent.

            bzzz Alex Zhuravlev
            bzzz Alex Zhuravlev
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: