>Out of curiosity, what is the timing difference between a userland script
>and performing the operations in the kernel?

[EMAIL PROTECTED] ~]# time zfs destroy solaris/[EMAIL PROTECTED] ; time zfs 
rename solaris/[EMAIL PROTECTED] solaris/[EMAIL PROTECTED]; time zfs snapshot 
solaris/[EMAIL PROTECTED]

real    0m5.220s
user    0m0.010s
sys     0m0.023s

real    0m5.856s
user    0m0.010s
sys     0m0.023s

real    0m7.620s
user    0m0.009s
sys     0m0.029s
[EMAIL PROTECTED] ~]# time zfs destroy solaris/[EMAIL PROTECTED] ; time zfs 
rename solaris/[EMAIL PROTECTED] solaris/[EMAIL PROTECTED]; time zfs snapshot 
solaris/[EMAIL PROTECTED]

real    0m7.363s
user    0m0.010s
sys     0m0.031s

real    0m5.107s
user    0m0.010s
sys     0m0.022s

real    0m7.888s
user    0m0.009s
sys     0m0.024s

Operation takes 15 - 20 seconds

In kernel it takes ( time in ms ):
  0  42867       dmu_objset_snapshot:return time 2471
  1  42867       dmu_objset_snapshot:return time 10803
  1  42867       dmu_objset_snapshot:return time 7968
  0  42867       dmu_objset_snapshot:return time 14139
  0  42867       dmu_objset_snapshot:return time 14405
  1  42867       dmu_objset_snapshot:return time 8883
  0  42867       dmu_objset_snapshot:return time 4960

Now the code in kernel is without optimalization

zfs_unmount_snap(snap_previous, NULL);
dmu_objset_destroy(snap_previous);
zfs_unmount_snap(zc->zc_value, NULL);
dmu_objset_rename(zc->zc_value, snap_previous);         
error = dmu_objset_snapshot(zc->zc_name,
                                                        
REPLICATE_SNAPSHOT_LATEST, 0);

In kernel operation can be optimized and done in one dsl_sync_task_do call.
 
 
This message posted from opensolaris.org
_______________________________________________
zfs-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to