Project

General

Profile

Actions

Bug #7843

closed

get_clones_stat() is suboptimal for lots of clones

Added by Andriy Gapon over 6 years ago. Updated about 6 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
zfs - Zettabyte File System
Start date:
2017-02-07
Due date:
% Done:

100%

Estimated time:
Difficulty:
Bite-size
Tags:
needs-triage
Gerrit CR:
External Bug:

Description

get_clones_stat() could be very slow if a snapshot has many (thousands) clones.

Clone names are added to an nvlist that's created with NV_UNIQUE_NAME.
So, each time a new name is appended to the list, the whole list is searched
linearly to see if that name is not already in the list. That results in the
quadratic complexity.
That should be easy to fix as we know in advance that we should not get any
duplicate names, so we can drop NV_UNIQUE_NAME when creating the list.

Actions #1

Updated by Electric Monk about 6 years ago

  • Status changed from New to Closed
  • % Done changed from 0 to 100

git commit c5bde7273ef861a8dc54cfb9abe48d56062177da

commit  c5bde7273ef861a8dc54cfb9abe48d56062177da
Author: Andriy Gapon <avg@FreeBSD.org>
Date:   2017-03-01T05:12:23.000Z

    7843 get_clones_stat() is suboptimal for lots of clones
    Reviewed by: Pavel Zakharov <pavel.zakharov@delphix.com>
    Reviewed by: Matthew Ahrens <mahrens@delphix.com>
    Approved by: Dan McDonald <danmcd@omniti.com>

Actions

Also available in: Atom PDF