►
From YouTube: CDS G/H (Day 2) - RBD: Shared flag, object map
Description
https://wiki.ceph.com/Planning/CDS/CDS_Giant_and_Hammer_(Jun_2014)
25 June 2014
Ceph Developer Summit G/H
Day 2
RBD: Shared flag, object map
A
B
B
B
Another
big
one
is
for
four
clones.
If
we
had
in
the
next
about
which
object
existed
in
the
clone,
we
wouldn't
have
to
go
back
and
be
from
the
parent
as
often
for
it
now,
under
which
circumstances
we
can
go
and
read
from
parent
directly,
instead
of
going
to
the
child
first
to
see
whether
that
objects
existed
and
then
going
to
the
parent.
So
its
leaves
next
road,
Wow
round-trip
request.
B
A
B
A
B
B
So
when
a
client
goes
to
open
the
image,
it
can
be
read
a
turd
if
the
concession
flag
is
set
and
go
and
get
so.
I
plead,
bitmap
and
I
said
that,
like
so
that
it's
no
longer
considered
consistent
and
then
just
keep
that
bitmap
in
memory
and
updated
memory
as
it's
running
and
then
when
I
click.
My
it's
done
with
the
image
I'm
going
to
closes
it.
B
And
some
because
things
we
have
to
consider
about
one
foot
well
actually.
First,
look
at
nixle
national
highways
idea
of
the
shared
flag
and
vidhi.
Is
that
since
look
already
use,
cases
for
RB
involve
only
a
single
writer
to
the
image?
It
makes
a
lot
of
sense
to
have
this
and
these
bitmaps
generated
by
default
and
there
could
be
a
shared
flag,
I'm,
the
meditator
that
defaults
to
false.
B
But
if
it's,
if
it's
false,
then
we
can,
and
you
use
the
scheme
to
generate
these
and
bitmaps
and
keeping
consistent
with
one
writer
and
if
it
it's
actually
a
shared
image,
that's
used
by
something
like
go:
CFS
to
or
gfs
or
some
other
layer
on
top
that
and
uses
multiple
writers
at
once.
A
A
B
That's
it
and
the
question
I
was
thinking
it
might
be
like
a
feature
bidden
and
for
us
that
said,
I'm
a
mature
stood
out
when
you
my
clients,
don't
that
all
clients,
the
open
image,
would
say
I
would
say
they
weren't
able
to
understand
it.
If
they
have
this
way,
so
they
would
fail,
didn't
impede
your
consent
yeah,
so
they
would
just
feel.
B
A
B
So,
and
one
of
the
issues
that
comes
up
with
and
the
opening
and
having
my
single
client
David
responsible
for
the
bitmap
is
that
things
like
snapshots
or
resizes
about
or
that
other
things
can
happen
while
there's
another
client
actually
using
the
image,
and
this
we
might
have
to
have
a
special
flag
or
a
special
version
of
the
open
that
doesn't
do
anything
with
the
bitmap
or
it's
not
strictly
we'd
only
play
since
it's
a
doing
this
like
some
taking
snapshots.
But
it's
not
actually
doing
any
data
modifications.
B
I
wasn't
thing
like
that
so
much
as
I
just
said.
So,
if
we,
if
we
had
like
two
two
clients
that
were
ignoring
each
other
and
they
both
opened
it
and
try
to
regenerate
the
index,
perhaps
and
they
close
different
times
with
different
end
states,
that
might
not
be
consistent
at
the
end
right
all.
A
A
B
C
Particular
though
I
thought
that
we
had
a
mechanism
where
you
can
spare
you
could
like
specified,
is
terrible
and
provide
a
tag
and
then,
if
anyone
else
came
along
and
tried
to
open
with
that
tag,
then
they
were
good
to
go
or
something
like
that
which
was,
but
maybe
that
was
the
old
version
of
locking
that
we
replaced,
because
there.
C
A
And
it
seems
like,
but
the
thing
that
we
want
to
move
toward
is
no,
the
locking
is
cooperative
but
make
it
like
default,
or
you
know,
actually
actually
used,
and
so
it
seems
like
the
ideal
situation
would
be.
You
have
11
BM
that
owns
that
owns
the
image.
It
has
an
exclusive
walk
and
it
does
that's
because
and
it's
whatever
it's,
the
lock
is,
and
it
has
a
Susa
flag.
C
B
B
Yeah,
it's
not
actually
that
simple,
though
they're
still
like
it
definitely
attached
and
open
at
the
same
time,
and
we
could
maybe
do
something
with
like
and
notify
where,
when
it
does
the
source
Podesta
nation,
the
source
vm
does
close
it.
It
writes
at
the
bitmap
and
notifies
with
a
certain
message.
I'm
saying
that
the
bitmaps,
updated
and
the
destination
can
rent
then
read
that
and
merge
it
with
it's
an
in-memory
state
I.
A
A
C
B
B
And
there
is
a
separate
and
invalidate
call
that
we
could
implement
in
Coombe
you.
They
could
invalidate
w
map
and
force
the
to
flush
it
out
and
then
force
the
destination
vm
to
reread
the
bitmap.
A
Seem
to
remember
that
the
locks
it
locks
have
like
a
a
name
associated
with
them,
but
they
also
have
a
tag
like
an
extra
little
bit
of
information
that
you
can
just
sort
of
pass
along
with
the
lock
yeah
like
it.
It
almost
seems
like
for
every
client.
It's
it's
sort
of
relationship
with
the
image
involves.
A
A
A
Well,
you
I
mean
you
sort
of
it.
This
is
it's
it's
not
necessarily
in
sync
with
the
rights,
but
it's
in
sync
when
the
client
chooses
to
it's
like
the
like
the
consistent
bit
or
flag,
whatever
that
we
were
totally
started
with
so
when
I,
when
I
have
a
lock,
open
or
whatever,
when
I
have
the
image
open
to
them
and
I'm
for
right.
Essentially,
I
declare
that
no,
the
bitmap
is
inconsistent
due
to
client,
X
and
then
I'm
am
doing
these
rights.
It
doesn't
matter
what
right
number
it
is.
A
But
then,
when
that,
when
that
individual
client
closes
it,
then
I
say
you
know,
I'm,
oh
I
can
set
the
consistent
bit
I
guess
the
thing
is
that
that
could
the
consistent
bit
in
order
to
be
set
is
not
really
something
that's
owned
by
any
individual
client.
It's
consistent
from
the
perspective
of
that
particular
client
that
might
have
been
scribbling
on
the
image
more.
B
A
A
B
A
Yeah,
I
mean
that's,
certainly
safe
yeah,
I
mean
you
could
in
principle
you
could
regenerate
the
bitmap
every
time
you
start
up
brother,
which
is
maybe
not
the
most
efficient
thing
to
do,
or
just
be
a
cash
right.
It
doesn't
have
to
be.
It
can
be
a
partial
map
of
what
objects.
I'd.
No
don't
exist
actually
already.
B
B
A
B
C
Or
is
it
on
like
a
block
size
or
per
object,
is
probably
the
reason
I
ask
is
if
it's,
if
it's,
because
if
it
is
just
per
object
it?
Maybe
it's
feasible
about
I'm,
not
saying
that
this
is
a
great
idea,
but
maybe
it's
feasible
to
actually
make
writing
to
a
new
object.
A
two-phase
commit
process
where
you
have
to
log
to
the
bitmap
object
that
you're
going
to
create
the
object
and
then
created
and
inside
this
object
exists.
Now.
B
A
B
B
A
Fine
yeah
get
think
the
other
thing
yet
so
I
before
we
before
we
move
on
I.
Think
I'd
like
this
generally
better,
then
then
a
consistent
flag,
because
I
think
the
consistent
like
it's
just
gets
dangerous
like
even
in
this
in
the
simplest
form.
If
you
have
a
single
open,
close
whatever
it
could
work,
but
basically,
I
think,
probably
as
soon
as
you
have
like
live
migration
or
something
you
just
want
to
like,
throw
it
away
and
regenerate
it
or
something
because
it,
the
handoff,
is
going.
A
B
C
B
C
I
mean
I'm.
Sorry
I
was,
you
would
also
have
to
do
a
notify
system.
But
if
you're
already
going
to
the
object,
then
that's
not
necessarily
infeasible
yeah.
B
C
B
A
C
C
So
if,
if
the,
if
the
dirty
map
just
says
this
object
exists,
but
it's
actually
a
sparse
object
and
it's
only
got
four
kilobytes
of
data
and
the
rest
of
it
as
a
whole.
That's
supposed
to
pull
through
to
a
parent,
because
we
do
that
right
now
we
know
what
they're
doing
that
we've
Oliver
objection,
I,
really.
B
A
C
B
B
Yeah
thanks,
I
think
so,
let's
see
I
favorite
whether
we
flush
everything
out.
Maybe
you
leave
my
takoj
takes
after
or
not
I
think
we
do.
But
if
we
do
then
we
can
actually
include
that
as
well,
because.
A
B
B
B
C
C
A
C
B
B
A
Think
the
operation
that
actually
dirties
the
the
object
or
dirty
is
a
bit
or
whatever
in
the
bitmap
object.
If,
if
one
of
the
arguments
effectively
for
that
operation
is
the
current
snap
context
and
it's
a
class
operation
and
then
that
class
can
handle
sort
of
thing?
Oh,
that's
dirtying,
prior
to
the
snap
shot
and
so
going
to
make
sure
I
dirty
of
both
in
the
before
and
after
versions
or
whatever
that
it's
like.
A
B
A
Then
yeah
cuz,
then
you
can
apply
it
both
to
the
snap
bitmap
and
to
the
heads
bitmap
I.
Think
that
that's
simple
for
the
dirty
in
case
for
the
for
the
other
states
like
marking
it
pending
deleted,
deleted
you'd,
have
to
be
take
the
conservative
path
and
say
cuz
that
whatever
do
we
have
to
have
like
work
through
those
particular
combination
right.
A
A
A
A
Okay,
so
the
other
path
would
be
to
go
to
doing
a
two-phase
snapshot:
creation
where
you
say
I
plan
to
create
the
snapshot
in
the
header.
You
send
the
notified
everyone
and
they
say
yes,
I
understand
I'm
going
to
do
the
snapshot
and
then
you
sort
of
commit
that
Thun
and
say
you're
having
a
sort
of
coordinated
snapshot.
Grace
you
get
positive
confirmation
that
all
clients,
what
the
image
open
actually
did
switch
to
using
the
new
snap
cons
context
and
behave
accordingly
and
so
I.
Think
in
that
case,
then
I
think
that
would
work,
I.
B
A
A
B
So
that
we
don't
have
to
worry
about
rights
to
that
are
creating
all
right
using
the
wrong
sniper
contacts.
Basically,
all
right.