►
From YouTube: Scalability: Decouple Puma from Pages NFS
Description
A chat about https://gitlab.com/groups/gitlab-org/-/epics/3980
A
Thanks
so
this
is
the
meeting.
This
is
a
meeting
where
we're
talking
about
how
we're
doing
on
the
epic
to
the
couple
puma
from
the
pages
nfs
mount
and
thanks
for
doing
all
the
organizational
stuff
on
setting
this
up
bob,
I
made
a
little
agenda
and
I
suppose
we
can
get
started
with
the
agenda
or
is
there
any?
Are
there
any
questions
before
we
start
with
the
agenda.
B
A
A
It
fairly
informal,
I
think
you
know
yeah,
I
agree,
but
the
reason
I
want
this
to
be
recorded
is
that
so
this
meeting
originated
within
the
scalability
team
and
the
scalability
team
is
helping
the
release
team.
When
the
release
team
owns
all
this
stuff
and.
A
Exactly
so,
at
the
very
least,
I
want
people
from
the
release
team
to
be
able
to
to
look
at
this
and
yeah
anyway,
but
I
I
thought
that,
because
there's
a
sort
of
narrowly
defined
thing
that
the
scalability
team
is
working
on
right
now,
it
made
sense
to
just
talk
within
the
scalability
team
and
high
igor
about
this,
about
this
narrow
thing,
and
that
is
the
part.
A
The
thing
where
we
look
at
the
code
in
the
rails
code
base
that
touches
the
pages
nfs
drive
and
we
try
to
move
it
all
into
sidekick.
B
So
some
background
on
that.
That's
because
we
want
to
move
the
puma
workers
into
kubernetes
and
that.
B
A
Yeah,
exactly
we're
trying
to
shrink
the
number
of
free
amps
that
that
need
nfs
and
yeah
there's
a
separate
piece
of
large
project
going
on
in
in
pages
to
make
sure
that
pages
can
work
without
nfs
at
all,
but
that
is
that
is
much
that's
much
bigger
in
scope.
Well,.
A
Yeah,
well,
I'm
not
the
only
one
who
did
proof
of
concept
for
that,
so
they
still
the
page.
The
the
people
working
on
this
still
need
to
decide
like
which
way
to.
C
A
And
then
there
needs
to
be
a
bunch
of
work
done
in
pages
to
make
that
work,
a
bunch
of
work
in
rails
and
all
the
time
we
need
to
think
about
how
what
would
the
migration
look
like
and
but
even
for
before
we
even
migrate.
We
need
to
get
it
in
production
for
some
sites
and
see
if
that
works.
A
So
that's
just
a
that's
a
big
project,
much
bigger
in
scope
than
what
we're
talking
about
today,
and
one
of
the
reasons
I
wanted
to
talk
today
is
that
this
thing
got
handed
at
first
just
to
me
and
I
tried
to
make
sense
of
it,
and
I
thought:
okay
well,
let's
just
set
up
an
epic
and
organized
to
work
and
then
bob
kindly
started
helping
me
and
now
bob
has
probably
done
as
much
work
on
this
as
I
have,
and
I
just
wanted
to
reflect
for
a
moment.
B
B
Titled
final
code
that
uses
settings
pages
part
because
I
don't
know
what
that
might
be
right
now,
and
I
just
saw
that
so
we
have
the
pages
update
worker,
and
now
we
have
the
new
pages
update
configuration
worker
that
writes
to
the
nfs.
When
pages
are
updated
from
a
project
like
if,
when
a
domain
is
added
or
when
or
when
domains
change
or
when
something
else
in
the
config
changes,
are
we
keeping
tabs
on
what
is
touching
nfs?
Somehow,
okay,.
A
So
not
yet
so
what
I
think
what
happened
is
that
vladimir,
who
knows
this
code
well
made
a
list
of
things
and
said?
Well,
this
is
definitely
stuff
we'll
have
to
change,
and
then
I
looked
at
that
and
I
did
some
crap
on
the
code
base
and
I
thought
yeah,
I
okay,
that
looks
like
stuff.
We
have
to
change,
so
we
made
some
issues
for
that.
A
Then
we
stuffed
those
in
the
epic,
but
we
don't
know
if
that
is
everything
and
it
it's
better
to
have
some
sort
of
way
to
check
that
we're
not
using
nfs
before
we
just
unmount
the
the
volume
so
yeah
we
don't
know,
what's
going
to
come
out
of
that.
A
Well,
in
a
way
we
do
know
because
we
have
the
thing
in
century
now,
so
we
can
just
look
one
thing
we
can
do
and
that
I
haven't
done
yet,
but
that
one
of
us
can
do
is
look
at
that
sentry
thing
and
go
through
all
of
them
and
see
where
it's
coming
from
and
see
if
it's
already
covered
by
an
existing
issue
in
the
epic
and
if
not
created
an
initiative,
yeah.
B
A
Yeah,
that's
the
thing.
The
other
approach
we
can
take
is
to
say
we
postpone
this
a
little
bit
and
we
try
to
get
a
couple
more
things
in
because
then
a
lot
of
these
should
disappear.
A
But
I
guess
it
depends
on
if
we
can
keep
ourselves
busy
enough
like
if
we're
busy
enough
working
on
known
issues,
then
we
can
just
do
the
known
issues
and
see
the
list
of
century
things
dry
up,
and
if
we're
running
out
of
known
issues,
we
can
look
at
the
sentry
issues
and
say:
hey,
there's
a
new
one,
and
if
you
already
see
a
new
one
right
now
bob
then
it.
I
think
it
makes
a
lot
of
sense
to
just
create
an
issue
for
that
yeah
that
you
create
an
issue
for
that.
A
C
Go
ahead,
another
thing
may
be
worth
considering,
I
mean
I,
maybe
the
sentry
stuff
already
covers
everything,
but
just
as
an
extra
sanity
check,
we
could
also
use
some
tracing
on
like
the
cisco
level
or
so
file
system
level
to
to
check
that
none
of
those
right
calls
are
happening
anymore.
A
So
yeah
we
could.
I
think
I
have
a
fairly
high
degree
of
confidence
in
well.
Okay,
it's
a
good
question
when
I
think
about
it.
I
think
that
if,
unless
the
code
does
something
insane,
the
thing
we
build
should
catch
everything,
but,
of
course
that
has
the
start
of
the
sentence.
Unless
the
code
is
something
insane
which
I
cannot
100
rule
out,
that
sounds.
A
Yeah,
so
I
think,
there's
well,
okay,
I
think
there's
yeah.
So
what
could
the
insane
thing
be?
One
thing
we,
I
think
we
know
for
sure
is
that
the
directory,
where
pages
get
stored,
is
configurable
and
if
anything
does
not
obey
that
configuration,
it
would
have
broken
for
somebody
somewhere
who
uses
a
funny
directory
and
of
course
it
could
be
that
nobody
uses
a
funny
directory
and
we
would
have
never
heard
about
it,
but
I
think
I
think
omnibus
probably
uses
a
funny
directory.
A
We
can
check
this,
but
I
actually
remember
this
from
a
long
long
time
ago,
from
seven
years
ago,
that
gitlab
was
full
of
things
which
were
configurable,
but
we
were
so
scared.
We
didn't
know
if
they
worked.
If
all
the
configurable
directories
worked.
So
we
actually
had
this
big
banner
in
the
installation
guide
where
we
said
put
gitlab
in
home,
git
git
lab
and
if
not,
then
it
may
not
work
and
it's
your
fault,
because
things
might
look
like
they're
configurable,
but
maybe
they
use
homegit
gitlab.
A
So
just
don't
even
change
the
user
change,
nothing
that
was
sort
of
the
state
of
things
seven
years
ago
and
then,
when
we
did
omnibus
we
had
to
sort
of
say
no
we're
going
to
put
everything
a
whole
lot
of
things
in
different
places,
and
that
has
to
work.
So
we
got
better
at
that
over
time.
A
So
I'm
assuming
that
nothing
does
something
silly
like
well,
let's
say
the
current
working
directory
is
the
gitlab
directory,
and
then
we
go
to
slash
shared
slash
pages,
and
that
must
be
the
pages
directory.
I
think
anything
that
does
that
would
be
completely
and
utterly
broken.
A
Another
way
we
could
have
something
insane
is
because
of
the
shared
directory.
I
don't
know
if
the
shared
directory
is
accessible
through
config,
but
something
might
assume
that
there
is
a
shared
directory
and
that
pages
is
then
located
relative
to
the
shared
directory
and
then
so
some
some
code
could
derive
the
path
to
the
pages
directly
via
some
other,
but
this
sounds
ridiculous
when
I
say
it
out
loud,
so
I
I
I
it.
A
A
C
A
Sre
is
working
on.
This
will
create
a
detailed
process
with
sanity
checks
and
right,
and
so
then
one
of
the
sanity
checks
would
be
estrace
the
thing
and
look
for
this,
or
something
like
that
sounds
good,
yeah.
Okay,
so,
let's
let's
say
we
can
defer
that
until
then,
because
we
think
it's
highly
likely
that
we'll
find
nothing
because
of
the
current
approach.
Yeah
wow,
a
lot
of
talking
thanks
for
typing
bob.
A
Okay,
so
that's
good,
so
we
yeah
we're
pushing
back
a
little
bit
on
going
through
the
sentry
list,
but
we'll
probably
have
to
I
I
threw
feature
flags
on
the
agenda,
because
I
noticed
that
bob
made
a
change
using
feature
flags
and
I
wanted
to
talk
about
how
we
feel
about
the
risks
we're
taking,
because
I
have
to
admit
that
my
first
thought
was
just
I'm
going
to
make
a
change
that
looks
good
and
not
use
feature
flags.
A
B
I
figured
that
if
I
had
feature
flags
and
try
this
out
it'll
be
easier
to
roll
out,
because
you
can
do
it
more
confidently.
That's
why
now,
I'm
also
getting
rid
of
the
the
like
the
right
when
we
don't
need
to
write
when
changing
configuration,
because
that's
good,
we
throw
a
lot
of
errors
and
accessories
like
because
you
started
tracking
those
errors,
which
is
a
good
thing,
and
if
we
then
now
move
that
into
cyclic
and
flip
the
switch,
then
we
might
get
alerts
like
hey
lots
of
errors
here
and
then
you.
A
B
A
B
A
I
don't
know
if
igor
knows
this
context-
and
I
don't
know
if
the
viewers
know
this
context-
there's
a
service
class
in
rails
that
is
responsible
for
keeping
the
config.json
file
of
each
page's
site
up
to
date,
and
if
this
file
changed,
it
also
writes
a
new
non-stew
or
like
a
token
to
some
other
file.
That
pages
then
picks
up
depending
on
how
pages
is
configured
because
pages
can
also
be
configured
to
not
use
the
configuration
files,
but
we
have
to
support
them.
A
So
there's
the
thing
that
does
the
configuration
files
and
when
I
started
working
on
this,
I
realized
that
that
thing
swallows
all
errors
and
like
if
there's
an
error,
it
gets
rescued.
And
then
the
error
string
gets
returned
as
a
return
value
from
the
function
and
nobody
looks
at
the
return
value
of
the
function.
So
it
just
errors,
although
it's
rescue
nil,
basically
it
the
whole
thing
has
a
big
rescue,
nil,
and
so
we
ran
into
that
and
then
actually
vladimir
said.
A
A
Well,
maybe
we
should
track
these
things
and
I
thought
hey
that's
a
good
idea
and
then
we
got
a
torrent
of
errors
because
it
turns
out
that
I
think
every
time
you
update
the
settings
of
a
project,
it
will,
the
the
you
submit
a
form
and
that
form
contains
a
value
for
the
page's
access
level
and
then
in
the
project
update
service.
We
decide.
Oh
something
changed
about
config.json,
let's
rewrite
it
and
then,
if
the
project
has
no
pages
associated,
then
the
file
system
says
well.
A
A
So
that's
the
context,
and
I
think
what
you're
telling
me
now
bob
is
that
when
you
put
this
thing
that
errors
out
all
the
time
in
psychic,
you
decided
to
re-raise
the
error.
B
B
A
Yeah,
I
I
I
hear
where
you're
going
so
I
I'm
going
to
be
devil's
advocate
for
a
moment.
Should
we
really
be
trying
those
jobs.
A
But
like
it,
the
the
whole
thing
looks
weird
right,
like
it's
erroring
out
left
and
right,
but
it
it
was
working
and
now
we're
saying
well,
we
want
to
retry
if
we
have
these
errors,
but
we
weren't
retrying
before.
B
Well,
it's
also
the
job
gets
run
much
more
often
than
we
thought
it
would.
So
every
click
like
if
the
pages
thing
gets
out
of
sync.
A
Yeah,
but
I'm
saying
we
can
the
naive
thing
to
do
just
to
say:
well,
this
thing
does
rescue
nil
or
it
just
it
swallows
errors.
That
is
a
different
problem
and
we
have
a
psychic
job
that
tries
once
and
if
it
didn't
work
out,
then
it
didn't
work
out
and
that's
as
bad
or
as
good
as
it
was
before.
We
put
it
in
exactly.
A
Yeah,
no,
I
I
I
I
project
sure
I'm
the
main
that
that
part
that
part
I'm
not
arguing
with,
but
I
I'm
wondering
if
making
something,
that's
taking
code,
that
was
ignoring
the
exceptions
and
saying,
let's
stop
ignoring
the
exceptions
and
let's
do
retries.
A
If
that
is,
I
mean,
I
agree
that
it
seems
right,
but
is
it
strictly
necessary
for
us
to
be
doing
that
right
now
and
if
that
choice
creates
as
consequences
that
create
more
work?
Should
we
maybe
go
back
and
not
do
that,
but.
C
A
I'm
talking
about
the
retries
and
not
because
the
thing
that
you
say,
let's
not
try
to
write
configuration
for
things
that
don't
have
pages.
That
just
makes
that's.
Just
like
you
say,
that's
like
the
the
idea
of
just
leaving
the
place
nicer
than
you
better
than
you
found
it
that
that.
B
A
B
A
B
We're
returning
it
to
the
job
and
the
to
the
worker
and
the
worker
is
raising
it.
If
I
remember
correctly,
because
that's
been
yesterday
since
I've
done
that
so.
A
C
Yeah
I
I
would
agree
that
having
retries
does
have
infrastructure
level
implications
because
there's
potentially
more
load
on
nfs.
B
But
the
retries
have
back
off
like
the
the
thing
that
that
would
have
more
infrastructure
level
consequences
is
the
scheduling,
the
jobs
that
are
going
to
fail
anyway,
whether
we
retry
them
or
not?
That's
the
that's
the
main
thing
to
avoid,
and
I
think
like
yeah,
but.
C
I
guess
if
we,
if
we're
currently
making
those
futile
calls
at
a
certain
rate,
if
we
enable
retries
in
aggregate,
the
rate
will
now
be
three
or
four
times
which
might
be
fine.
But
yes,.
A
Yes,
I
my
my
what
what
what
how
good,
what
we
should
values
we
should
put
on
my
guess,
but
my
guess
is
this-
is
not
a
big,
not
the
biggest
issue,
because.
A
A
B
A
I'm
thinking
about
the
nfs
perspective,
so
it
tries
to
read
one
file
like
because
the
first
thing
it
does.
It
reads
the
current
conflict
json
and
then
it
compares
that
to
the
expected
configuration
and
if
those
are
the
same,
the
thing
returns.
A
So
at
that
first
step
where
it
reads
the
existing
config.js
and
that's
where
it
errors
out,
because
it
tries
to
read
a
file
that
does
not
exist.
So
the
pressure
we're
putting
on
the
nfs
server.
There
is
a
bunch
of
attribute
lookups
or
it
it's
not
great
right,
because
we're
trying
to
open
a
file
that
doesn't
exist,
but
it's
one
file
and
out
of
all
the
things
we
can
be
doing
to
the
nfs
server.
I
think
this
is
not
the
most
dramatic.
A
Yeah-
and
the
thing
is
that
I
do
agree
with
bob
like
so,
on
the
one
hand,
we're
now
tripling
right,
we
we
are
putting
a
certain.
There
was
a
certain
load
on
the
system
and
we
get
a
lot
of
it,
fails
and
now
we're
getting
retry.
A
So
we're
tripling
that,
but
then
how
many
percent
of
projects
have
pages
associated
with
them,
because
it
it
might
be
like
five
percent
or
something
we
should
get
that
number,
but
so,
on
the
one
hand,
we're
tripling
something
but
we're,
on
the
other
hand,
we're
taking
95
percent
of
it
away.
So
at
the
end,
we.
C
The
goal
is
to
retry
actual
problems,
not
broken,
then
I
think
it's
then
it
sounds
perfectly
fine
to
me.
Yeah
yeah,
like
feature
flags.
Yes,
please.
A
Yeah,
no,
okay,
that's
fair
enough!
I'm
still
working!
A
I'm
still
trying
to
do
one
of
these
things
myself
and
I'm
still
struggling
with
it
one
of
these
psychic
things,
because
I
don't
know
how
to
test
it
but
I'll.
I
think
I'll
just
bother
bob
with
that.
Outside
of
this
call,
because
I
don't
need
to.
A
That's
just
because
I'm
not
experienced
another
experienced
rails
developer
and
bob
is
a
maintainer
so
on
on
on
the
on
the
rails,
repo
so
with
the
kids,
libraries,
repo
okay.
So
let's
do
use
feature
flags,
yeah
and,
and
one
thing
I
wanted
to
say
that
also
sort
of
came
that's
related
to
this
and
it
came
up
a
little
bit
yesterday.
But
I
want
to
restate
this:
is
that
leaving
the
place
better
than
we
found?
It
is
good,
but
we
need
to
be
very
careful
about
rabbit
holes
and.
A
Yeah,
because
if
we
never,
if
we
never
try
to
leave
the
place
better
than
we
found
it,
then
that
that
is
not
a
good
like
globally.
That
is
a
bad
attitude,
because
then
your
code
just
keeps
getting
worse
and
worse
and
worse.
But
if
we
are
too
eager
to
take
on
risk
to
improve
things,
then
we
derail
this
epic
or
we
create
new
problems
and
that's
all
so
bad,
but.
B
A
Yeah
as
long
as
long
as
it's
that,
then,
as
long
as
the
bit
longer
is
manageable,
then
I
I
am
all
for
it
I'm
every
time
I
see
something
where
I
thought
this
doesn't
make
sense
and
either
nobody
noticed
or
nobody
felt
they
had
the
time
to
do
something
about
it.
A
So
I
don't
think
that
is
a
bad
habit
which
is
maybe
kind
of
weird,
because
now
I'm
just
saying
I
don't
think
it's
a
bad
habit,
because
I
do
it,
it
might
still
be
a
bad
habit,
but
I
think
no,
I
think
it's
a
good
habit,
but
we
just
need
to
be
careful
about
rabbit
holes,
and
you
just
said
you
agree
with
that.
So
we're
on
the
same
page.
B
Yeah
thanks
I'll
check
with
you.
Sometimes
if
I
think
something
might
become
a
rabbit
hole
but.
A
I
I
you
know,
I
think
this
is
a
very
healthy
attitude
and
not
just
because
I
am
quote
unquote,
leading
this
project,
but
because
talking
to
somebody
else
because
of
the
rubber
duck
effect
talking
to
somebody
else
can
help
you
realize
like.
Maybe
this
is
not
such
a
good
idea.
After
all,.
B
B
I'm
happy
that
we're
both
working
on
this
thing
now,
I'm
going
to
take
some
time,
maybe
tomorrow,
to
fill
up
the
backlog
a
little
bit
because
I'm
off
next
week,
I
don't
know
what
the
time
frame
is
pretty
hard
for
this,
like.
B
A
A
B
A
A
Yeah,
okay
sounds
good
and
yeah
again.
Well,
thanks
to
for
both
of
you
for
taking
an
interest
and
doing
work
on
this.
Is
there
anything
else
we
want
to
discuss
before
we?
I
think
we
can
end
the
meeting,
but
is
there
anything
else
we
want
to
discuss
before
we
do.
A
That's
a
no
okay,
I'll.