►
From YouTube: November 2020 OpenZFS Leadership Meeting
Description
At this month's meeting we discussed: OpenZFS 2.0 release schedule; non-interactive io scheduling.
meeting notes: https://docs.google.com/document/d/1w2jv2XVYFmBVvG1EGf-9A5HBVsjAYoLIFZAnWHhV-BM/edit
A
All
right
welcome
to
the
november
2020
wednesday,
fast
leadership
meeting
thanks
everyone
for
being
here.
We
have
just
a
few
items
on
the
agenda.
Why
don't
we
start
with
some
updates
from
brian
on
the
open,
zfs,
2.0,
release,
schedule
and
then
d-raid.
B
Sure
so
we're
pretty
much
all
the
way
there
we've
had
five
rc
candidates
now
and
it's
good
that
we
had
them.
We
had
some
good
soap
testing
going
on.
We
caught
a
couple
of
small
issues,
nothing
too
serious,
but
it
looks
like
everything's
come
together
pretty
nicely,
so
I'm
getting
ready
to
tag
the
final
release.
B
So
hopefully
that
will
come
out
this
month,
hopefully
early
this
month,
but
it's
pretty
much
all
set,
so
we
just
need
to
wrap
it.
A
Up
cool
well
early
this
month
might
be.
You
may
have
to
stretch
the
definition
of
early
there,
but
it
would.
It
would
be
great
to
see
that
land
this
month.
B
C
B
Yeah,
I
think,
that's
still
an
open
issue
if
the
pool
gets
suspended,
while
you're
writing
to
rebuilding
the
l2
arc
yeah.
I
don't
think
that's
handled
at
the
moment,
just
exporting
the
pool,
but
I
don't
think
we've
seen
that
in
any
testing
yet,
but
I
think
it
probably
is
a
real
issue,
although
if
your
pool
gets
suspended,
maybe
it's
you
know
you're
already
a
bad
spot.
D
Brian
about
release-
I
I
was
going
to
sing
ask:
do
we
have
any
list
of
things
that
are
going
in
or
like.
We
are
not
planning
any
more
mergers
there
at
all
unless
it's
absolutely
critical
or
what's
planned
for
this
point,
for
example,
the
one
fix
you
merged
today
of
mine.
Will
it
go
in
or
should
I
create
pr
or
it's
not
going
in.
B
I
think
anything,
that's
in
the
master
branch.
Currently
we
might
cherry
pick
at
the
last
minute
for
the
2o
release.
There's
some
stuff
there.
Little
freebsd
fixes
some
documentation
cleanup
that
kind
of
stuff
that
we'd
like
to
have
but
super
low
risk
right.
So
I
think
that
stuff
can
go
in
before
the
final
release.
Bigger
changes,
probably
not,
although
I.
D
B
It's
already
in
the
master
branch.
I've
tried
to
pick
most
things
back,
that
were
small
and
were
important
so
that
stuff
I'll
try
to
pull
it
again
before
a
final
release,
like
I
say
it's
usually
a
little.
If
you've
got
something
in
mind,
definitely
let
me
know
and
we'll
talk
about
it
and
figure
out
if
it
makes
sense
or
not.
I
think
also.
We
can
totally
talk
about
doing
more
frequent
point
releases
after
2-0,
so
just
to
get
in
the
habit
of
doing
that.
B
A
Them
cool,
then,
should
we
just
mention.
I
think
there
were
a
few
prs
that
are
nearing
completion
or
need
some
eyeballs
one
being
the
d
raid
yeah.
B
That
one's
pretty
much
just
needs
to
be
merged
as
well.
Thank
you,
matt
for
your
time
reviewing
that
that
was
really
valuable
that
got
us
pretty
much
over
the
finish
line.
So
I
expect
that'll
merge
this
week
to
the
master
branch
me
and
mark
were
just.
A
That's
great,
that's
a
huge
amount
of
work
to
come
to
fruition.
After
I
think
more
than
five
years
of
work
by
you
know
at
least
half
a
dozen
people
and
several
different
companies
yeah.
It's.
A
I
think
it's
a
great
example
of
collaboration.
You
know
across
companies
that
we've
facilitated
with
you
know
the
open
zfs
project.
B
C
Got
the
a
version
of
forced
expert
that
works
and
actually
passes
the
test
now,
which
is
nice,
so
yeah
we'd,
really
like
people
to
look
at
that?
It
works
very
well
on
freebsd
and
does
actually
work
on
linux
as
well
and
main
use
case,
as
I
mentioned
before,
was
if
you
have
more
than
one
pool-
and
you
know,
one
of
them
goes
away
for
one
reason
or
another.
C
Then
you
want
to
be
able
to
export
force
export
that
one,
even
though
you
know
it's
not
going
to
ever
unsuspend.
C
Basically,
so
you
know
use
cases
of
you
know
remote
devices
or
something
where
your
have
a
local
pool,
that
you're
using
normally
and
then
a
remote
pool
that
you're
say
just
using
for
instead
of
send
receive
or
something,
and
if
your
connection
to
the
remote
devices
goes
away,
that
pool
gets
suspended,
but
sometimes
you
want
to
be
able
to
just
force
export
that
rather
than
you
know,
trying
to
get
it
back.
A
C
A
That
all
right,
and
is
that,
are
you
expecting
any
more
work
on
that,
or
is
that
ready
to
go
as
far
as
you
know?
As
far
as
I
know,.
C
It's
ready
to
go,
you
know
it
depends
what
everybody
else
thinks
of
it,
but
in
general
I
think
it's
good
to
go.
A
B
Let
me
try
to
give
you
some
feedback
on
that.
No
that's
one
of
the
features
we've
seen
requested
the
most
over
the
years,
so
I'm
pretty
excited
about
it.
A
Cool
well
speaking
of
highly
requested
features.
I
am
back
to
working
on
raid
z
expansion.
It's
been
kind
of
coming
in
fits
and
starts,
but
we
have
a
renewed
push
to
make
some
serious
progress
on
that
by
the
end
of
the
year.
A
So
we're
we're
hoping
to
get
like
a
final
reviewable
pr
by
the
end
of
the
year
might
not
quite
make
that,
but
hopefully
you'll
be
seeing
a
bunch
of
updates
on
that.
So
I'd
love
to
for
folks
to
folks
who
are
interested
to
help
testing
that
we'll
have
a
bunch
of
new
features
coming
to
that
probably
later
this
month,
like
writing
with
the
new
data
to
parity
ratio
after
the
expansion
performance
improvements
like
after
the
expansion
when
you're
when
you're
reading
and
writing
to
the
raid
city.
D
Oh
yes,
thanks
last
several
weeks,
I
was
trying
to
investigate
how
to
prioritize
what
I
call
interactive
io,
which
at
this
point,
both
sync
and
I
think,
comparing
to
scrap
initialize
receiver,
whatever
we're
doing
in
background,
because
timeline
of
the
first
half
seconds
in
milliseconds
and
second
and
part
is
minutes
hours
forever,
and
I
tried
several
sites.
I
experimented
with
skies
and
ata
priorities.
Unfortunately,
I
haven't
found
anything
usable
there.
D
Yes,
kaiser
priority
seems
like
not
supported
aj
prior
just
not
doing
what
I
want
from
them.
They
do
orient
more
on
high
priority,
not
on
low
priority
and
marking
everything
high
priority.
Just
kills
iops
practically
handling
all
requests
in
order
of
arrival,
which
is
not
fast.
Obviously,
so
I
went
higher
to
cfs
and
for
several
days
there
is
already
a
handgun
pr
which
throttling
non-interactive
requests.
D
If
there
are
any
interactive
requests
are
active
or
they
are
not
completing
within
several
moves
within
several
completed
last
completed
requests
so
practically
if
what
I
am
fighting
with
is
that
if
some
hard
drive
see
a
large
sequence
of
sequential
requests,
it
quite
often
give
up
on
random
ones
and
handling
some
them.
Sometimes
one
in
four
seconds,
which
is
obviously
there's
for
any
interactive
workload
and
with
my
pie
chart
I
see
dramatic
improvement
of
worst
case
latency
from
four
seconds
to
one
eighth,
or
at
least
one
quarter.
D
Second,
so
like
16
times
lower
latency,
I
think
it's
great
and
the
one
question
I
have
left
that
part
with
scrap
it
works
as
good
as
it
can
be.
I
believe
I
don't
have
any
question
to
that
part,
but
I
now
looking
on
higher
part
differentiation
scene
versus,
I
think,
requests
and
it's
not
so
straightforward
science.
Obviously
I
think
requests
are
not
so
high
priority,
but
they
also
they
must
be
done
within
reasonable
time
within
seconds.
D
We
cannot
give
up
on
them
for
a
long
time
and
one
more
complication
that
for
right,
if
drive,
has
right
cash
and
we
already
pushed
there
tons
of
data,
I'm
not
sure
drive
will
react
on
us
fast
anyway,
no
matter
what
we
do,
and
so
my
question
was
about
motivation
of
the
code
we
have
now
in
particular,
I
think
right.
What
was
the
was?
D
It
really
seen
benefits
of
increasing
the
right
q
depth
according
to
following
the
dirty
data
amount
in
arc,
because
if
we
have
right
cache
enabled,
then
I'm
not
sure
there's
any
difference
whether
we
have
a
q
depth
of
one
or
q
depth
of
ten
minimum
maximum
from
throughput
performance.
It
just
pollutes,
drive
queue.
A
Yeah,
so
at
a
high
level,
I
think
it
to
me
it
does
make
sense
to
address
these
like
truly
background
activities
separately
from
reads
and
writes
even
the
async
reads
and
writes
so
like,
which
is
what
you've
done,
which
seems.
A
Okay
to
me,
I
was
just
a
little
confused
by
the
terminology,
which
I
think
we
can
clear
up
for
the
eighth
for
the
async
rights
and
like
increasing
the
q
depth
yeah,
we
did
see
that
it,
it
does
matter
and
it
helps
a
lot
when
you
have
workloads
that
are
where,
like
you
have
a
lot
of
reads
going
on,
and
I'm
pretty
sure
that
we
did
test
this
with
just
plain
hard
disks.
A
It
ultimately
like
I
think
that,
even
with
a
write
cache
like
there's
only
so
like,
there's
only
so
much
stuff
that
you
can
throw
into
the
right
cache
and
the
essentially
what
we're
doing
is
like
if
you
I
think
that
the
default
previous
before
we
made
that
change,
it
was
like
the
right
queue.
Depth
was
10
and
the
read
q
death
was
10.,
and
so
what
you
would
typically
see
is
like
for
hard
disk,
especially
10
is
like
a
lot
right,
because
it
can
only
actually
do
one
thing
at
a
time.
A
So,
if
you
have
like
sync,
you
have
some
sync
reads
and
then
then,
but
but
not
like,
you,
don't
necessarily
have
a
very
high
q
depth
of
sync
reads:
like
you
have
a
couple
threads
that
are
coming
in
hitting
with
reads
so.
Maybe
the
read
synchrony
q
depth
is
typically
one
or
two.
A
If
you
have
always
have
like
10
rights
outstanding
to
the
drive,
then
you
know
listening
at
one
read
at
a
time
like,
even
if
it's
processing
them
in
random
order.
Like
you,
you
know,
90
of
the
time
the
the
drivers
will
be
going
to
be
doing
the
rights
and
10
percent
of
time.
A
This
is
going
to
be
doing
the
reads,
so
what
you
would
see
is
like,
while
you're
syncing
like
if
the
right
workload
is
not
totally
hammering
the
disk
then
essentially
like
while
you're
syncing,
you
hammer
the
disk
and
then
while
you're,
not
syncing,
you're,
not
doing
any
rights.
A
So
the
point
of
that
scaling
up
is
to
smooth
out
the
right
workload
so
that
when
the
right
workload
is
not
like
at
the
extreme,
then
we
are
only
sending
out
a
few
writes
to
the
disk
at
a
time,
so
that
so
that
the
latency
of
synchronous
reads
remains.
Okay,.
D
The
problem
with
that
qdaps,
if
you
have
right
cash,
you
put
more
if
if
cash
is
empty,
you
put
data
quickly
there
and
latency
of
right
very
low,
and
you
barely
ever
reach
10
requests
of
depth.
They
complete
faster
on
the
other
side.
B
D
A
Yeah
that
that
may
be
I
I
haven't,
looked
at
that
in
detail
like
how
it
behaves
with
the
right
cache
on
that
kind
of
micro
scale.
So
I
guess
what
you're
saying
is
that
if
you,
if
you
have
write
cache,
enabled
then
the
like,
when
the
read
comes
in
the
right,
cache
is
already
full.
It's
already
like
busy
doing,
processing
the
right.
You
know
doing
right
back
for
the
right
cache,
and
so
the
read
is
already
gonna
have
a
high
latency,
regardless
of
whether
we
have
a
bunch
of
rights
outstanding.
D
No
yeah
the
additional
rights
outstanding,
don't
give
us
more
bandwidth
because
all
cash
is
already
full,
but
they
increase
latency
and
pollute
q,
reduce
q
deps
for
other
traffic,
because
for
sata
we
have
only
32
tags
and
if
we
have
one
freebies
dmx
is
not
increased
to
one
mag
one.
Each
one
megabyte
request
means
eight
tags
because
of
splitting
into
128
cable
chunks.
A
Yeah,
so
the
I
mean
are,
are
you
saying
that
therefore
have
like
having
the
scaling
down
is
good
because
it
will
help
to
mitigate
that,
or
are
you
saying,
like
scaling
down,
isn't
really
going
to
help
that
much
because
of
because
of
the
rate
cash.
D
No,
I
just
don't
see,
point
to
scale
up
so
high.
That's
why
okay
so
staying
low
is
a
list
of
bad
things.
We
could
do
it
with
this
with
the
right
cache
enabled
with
with
with
right,
cache
disabled.
I
can't
believe
that
we
would
we
we
may
benefit
from
pushing
more
there
signs.
There
is
a
will,
be
latency
drive.
D
A
Okay
yeah,
so
I
mean
it's
been
10
for
20
years,
so
we
I
don't
think
that
we
changed
that,
but
yeah,
that's
definitely
a
good
question
and
I
mean
for
for
hard
disks
yeah
like
there's,
really
no
reason
for
it
to
be
so
high
for
any
of
the
queues
to
send.
A
You
know
more
than
like
one
or
two
at
a
time,
and
I
think
that
the
issue
is
that
for
other
types
of
hardware
storage
devices
like
they
can
do
more
at
once,
like
ssds
right
and
at
least
like
at
the
time
that
we
were
doing
this,
which
is
maybe
five
years
ago,
there
still
was
not
a
good
way
to
detect
like
what
does.
A
What
does
that
curve
of
like
q
depth
to
throughput?
Actually
look
like
you
know
where,
like
for
a
hard
disk,
it's
basically
like
flat
right,
like
you
get
to
qdf1,
the
throughput
doesn't
really
increase,
as
you
increase
the
q
dev
and
for
but
for
ssds.
It's
like
you
know,
closer
to
being
linear
for
at
least
a
little
while
and
for
for
other
things.
You
know
like
part
like
arrays
that
are
underneath
dfs.
Then
it's
like
even
weirder
but
yeah.
A
D
Well,
I
think
it
significantly
depends
whether
caching
able
to
disable
it.
So
another
question
I
relate
that
I
have
to
this
topic
is
what
people
are
typically
using,
because
in
many
sources
I
see
mentioned
that
linux
may
disable
by
default,
that
solaris
or
illumas
in
some
cases
may
disable
by
default.
Freebsd
doesn't
so
like
what
was.
A
The
most
target
mark,
solaris
or
limous-
did
this
pre-zfs
did
disable
it
by
default
and
then
with
zfs.
When
you
give
it
the
whole
disk,
it
would
enable
it
by
default,
and
then
you
know,
rely
on
the
cache
flashing
commands.
D
That's
what
I
heard
what's
about
linux,
because
I'm
that
knows
so
much
in
that
area
what
people
are
using.
I
know
there
are
mechanism
to
control
it,
but
what's
our
default,
what.
C
B
B
A
B
D
Okay,
it's
just
brian.
I
looked
through
history,
I
see
on
on
the
office
on
linux
opencfs.
Now
we
have
minimum.
I
think
depths
of
two.
You
increased
it
several
years
ago,
when
somebody
complained
that
on
his
disks
we
disc
with
right
cash
disabled.
There
was
lower
children
performance
and
there
was
kind
of
consensus
that
two
is
somewhere
in
the
middle.
B
D
B
Yeah
we'd
have
to
go
back
and
look
at
the
issue
linked
from
the
polar
regress.
There's
probably
there
about
why.
D
No,
it
makes
sense
when
the
right
cache
is
disabled,
because
without
q
deficit
list
of
two
you
just
cannot
write
sequentially
without
waiting
full
rotation.
Every
time
just
physics.
B
C
D
D
B
A
Yeah,
I've
always
wanted
to
do
something
where
we
could
detect
this
dynamically,
because
you
never
know
what
the
heart
like,
how
the
hardware
is
going
to
lie
to
you
and
even
if
we
knew
like
hdd
versus
ssd,
it's
hard
to
know
like
okay.
So
what's
the
right
value
for
ssds,
you
know
so
it
would
be
really
sweet
if
we
had
something
that
would.
A
You
know
like
actually
do
at
least
reads,
or
maybe
we
reserve
some
regions
where
it
can
do
rights
when
you
open
the
pool
or
when
you
create
the
pool
the
first
time.
You
know
it
would
like
measure
the
performance
of
like
q
depth,
one
two,
three
four
five
and
see
like
at
what
point?
Do
we
kind
of
reach
the
plateau
of
throughput
and
and
then
kind
of
said,
the
max
q
depth,
based
on
that.
D
They
have
very
heavily
differentiated,
read
versus
write
workload.
Yeah,
that's
why
they
have
quality
of
service
for
it,
but
they
can
do
rights
as
fast
as
it
allows.
I'm
not
sure
anybody
has
else,
has
the
same
characteristics
but
right
yeah.
Now
in
a
code
of
scrap
I
implemented,
I
was
thinking
about
latencies,
but
I
ended
up
with
different
approach
like
if
we
send
five
scrub
requests
and
during
that
received
none
of
interactive
responses,
then
obviously
they
are
starving
yeah.
We
must
stop
scrap
and
let
those
complete
and
then
continue.
D
D
D
There
is
not
there's
nothing
too
much,
we
can
let
it
go
as
long
as
we
want
as
long
as
it
doesn't
interfere
with
workload,
but.
A
Yeah
I
mean
there
is
the
way
that
it
used
to
be.
I
think
this
is
maybe
pre
pre
pseudo-sequential
scrub.
It
was
very
aggressive
about
having
the
scrub
back
off
like
whenever
there
was
any
other
io,
then.
Basically,
the
scrubs
would
pause
for,
like
a
tenth
of
a
second.
D
D
I
looked
on
that
code
and
we
actually
had
it
that
those
delays
internally,
even
after
sequential
scrub,
was
implemented.
B
D
But
I
found
that
it
just
cannot
be,
cannot
work
reasonably
because
it
delays
how
ios
are
putting
into
the
queue
not
how
they
handle
it,
and
there
is
delay
like
five
megabytes
and
five
megabytes
of
random
bios.
That's
a
lot
of
delay.
So
it's
to
make
it
or
just
delay.
It
has
to
be
very
slow.
A
A
A
D
B
D
A
Yeah,
I
don't
know
I
mean
even
I
think,
even
the
behavior,
so
the
so
the
behavior
that
you've
implemented
as
long
as
there
are
some
other
ios.
Completing
then
is,
is
the
behavior
the
same.
D
A
D
A
Even
if
even
if
other
ios
are
completing,
so
I'm
thinking
about
the
non-hdd
case,
like
you
have
an
sd,
ssd
or
something-
and
you
know
we're
completing
lots
of
all
kinds
of
ios
and
and
the
this
can
actually
do
like
lots
of
things
at
once.
D
Yeah
no,
I
experimented
with
some
ssd
and
I
saw
even
high-end
sus
ssd,
not
nvme,
but
still
pretty
fast,
and
I
still
saw
latency
difference
between
q
depths
one
and
even
two,
but
especially
and
even
three.
So
there
is
nothing
free.
The
latency
grows,
maybe
of
course
not
as
dramatic
as
with
hard
disks,
but
latency
is
growing.
So.
A
D
D
Yeah
but
but
it's
suitable
like
somebody
doing
ssd
only
could
always
increase
minimum.
I
haven't
had
coded
value
of
one
minimum
could
be
increased
yeah
too,
and
it
will
follow.
A
I
mean
to
me
the
all
this
stuff
makes
sense
to
have
these
options
and
changing
the
default
behavior
of
to
say
like
when
we
essentially
like
when
we've
detected,
that
we're
starving
somebody
else,
then,
let's
back
off,
that
makes
sense
for
all
hardware
storage
types
changing
essentially
changing
the
default
queue
depth
when,
when
there's
you
know
when
there's
other
ios
going
on
seems
more
seems
like
something
that
we
could
kind
of,
discuss,
orthogonally
and
evaluate
the
impact
on
ssds
and
whatnot.
A
Right
to
me
that
the
starvation
fix
seems
like
a
more
clear
win
in
all
scenarios,
and
I
guess
I
would
the
the
change
of
the
queue
depth
scrub
qdf.
A
I
guess
I
would
just
like
to
see
more
data
of
other
like
how
does
it
really
impact
scrub
performance
and
and
read
latency
on
different
types
of
hardware
to
justify
a
change
in
the
default?
If
that
makes
sense,.
D
Well,
because
part
of
that
I
is
hardcoded
in
the
code
that
dropped
to
minimum,
because
previously
minimum
value
was
literally
not
used
ever
the
fs,
always.
D
Yeah
so
kind
of,
if
somebody
wants
to
mod,
he
can
set
minimum
value
higher
and
restore
previous
behavior
kind
of
so,
for
I
think
right
we
do
use
range,
but
again
it's
tunable.
A
Yeah
this
is
richard.
We
did
a
bunch
of
work
on
this
a
while
back
and
it
gets
really
difficult,
because
rights
are
you're,
writing
to
a
volatile,
write
back
cache
and
it's
damn
near
impossible
to
ever
predict
the
impact
of
rights
versus
latency
versus
cue
depth.
So
it's
extraordinarily
difficult,
but
there
are
some
other
techniques
we
can
do
and
it's
maybe
a
good
chance
for
a
conversation
at
the
bar
someday.
A
About
other
things,
we
can
do
in
that
whole
zio
pipeline
to
improve
our
estimation
of
the
performance
of
the
of
the.
A
A
Okay,
I
think
this
is
the
last
item
that
we
had
on
the
agenda,
so
any
other
thoughts
on
this
or
other
topics
folks
want
to
cover.
A
All
right,
in
that
case,
our
next
meeting
is
going
to
be
in
four
weeks
on
december
8th
and
it
will
be,
I
think,
at
the
same
time
as
today,
because
the
last
one
was
in
the
morning.
Yes,
so
the
the
next
meeting
will
be
four
weeks
from
today
december,
8th
same
time
as
today
and
enjoy
your
extra
20
minutes
back
from
this
meeting
bye.
Everyone.