►
From YouTube: Graph Mining in Rust by Siddhartha Sahu - Rust KW Meetup
Description
This video was recorded during the Rust KW Meetup in Kitchener-Waterloo, ON, Canada on Jun 19, 2018.
https://www.meetup.com/Rust-KW/events/251426929/
This talk is about a graph mining project I worked on recently and how I ended up learning Rust to implement the task. I'll compare my experience coding in Rust with my previous attempts using Python and Java for the same task. I'll end by talking about some of the cool things I've learned about Rust and the wonderful community around it.
Talk written and presented by: Siddhartha Sahu (https://twitter.com/siddharthasahu)
Recording: Mark Sherry (https://twitter.com/alfedenzo)
A
B
C
C
C
C
A
C
A
C
A
C
A
A
A
B
C
C
You
first
load
the
graph
and
you
essentially
so
this
is
sampling
the
graph.
So,
instead
of
actually
going
and
Counting
all
your
sub
graphs
doing
an
actual
gum,
you
stamp
ahead
and
number
of
times
right.
So
that's
essentially
estimating
it
so
repeat
it.
Ten
times
you
sample
one
sub
graph
from
G,
so
you
go
and
pick
three
random
nodes
which.
A
C
C
C
C
C
A
C
C
C
A
C
C
And
stuff,
and
they
partly
it
is
my
fault,
my
destruction
was
not
that
optimized
invite
them
the
crowd.
You
see
that
I
was
using,
but
right
then
the
necessary
cells
take
a
lot
of
memory
like
one
Python
integer
is
28
bytes
right
just
to
save
store,
one
you
have
to
take
28
might
and
that,
like
essentially
scales
as
you
start
voting,
a
billion
is
drawn.
So
that's.
A
C
And
try
to
fight
with
its
memory
requirements
and
so
on
I
would
move
to
something
else.
Some
other
programming
language
so
take
two
words
Java.
We
so
I
am
a
PhD
student
I
work
at
the
at
the
University
of
Waterloo
and
we
developed
a
graph
database
called
graph
slope
and
that
wasn't
job.
That's
what
we
started
off
with
so
I
did
like
essentially
experience
and
within
go
systems
in
Java.
So
that's
that's
my
take
to
be
like
nothing
to
do
right,
so
I,
just.
A
C
You
can
see
how
Java
is
helping
with
this
performance
as
compactified.
It's
pretty
good,
but
in
between
you
get
these
21
second
time
loads,
right
and-
and
you
can
guess,
what's
happening
top
edge
collection
and
the
second
still
seems
fine
right.
I
mean
21
seconds
at
what
one
is
still
fine
but,
as
my
count
increased
this
as
I
reached
the
1
billion
edge
comp.
These
pauses
were
going
up
to
a
hundred
seconds
or
even
larger
and
and.
C
A
C
C
C
Very
large,
as
compared
to
fight
and
that's
consistently
very
large,
so
I
could
even
go
up
to
higher
stamping
on
it,
so
I
could
go
up
to
five
hundred
twelve
thousand
samples
and
so
on
so
taking
my
code
taking
my
project
and
implementing
arrests
actually
helped
me
get
the
performance
that
I
was
so
that's
pretty
good
feels
so
good.
So.
A
C
A
B
C
C
B
B
B
A
B
C
B
C
C
A
C
C
Very
minimal
from
rust
and
combining
these
two
ideas
you
want,
you
don't
want
to
manual
memory
management,
but
you
want
a
high
level
pattern
that
C
C++
is
giving.
You
is
giving
you
the
board
sugar,
and
the
idea
is
pretty
simple:
any
object,
that's
in
memory
or
any
data,
that's
in
memory
and
rust
is
always
owned
by
one
object,
always
one
by
one
variable
right.
C
C
C
A
C
C
A
C
All
right-
and
the
second
thing
that
is
very
cool
with
us-
is
the
function
of
iodine
and
so
rust
aims
itself
to
be
a
systems
language.
So
it
is
more
in
the
area
of
FCC
because
those
objects
but
I
like
to
think
of
it
as
more
haskell
in
disguise
right.
So
it
has.
The
focus
is
on
system
language,
but
the
language
features.
C
C
A
C
C
A
A
C
A
C
C
A
C
C
C
C
C
A
C
Lead
to
in
the
future
features
called
generators
which
you
might
have
used
in
python
right,
so
you
might
have
a
function
and
you
can
yield
a
function
and
it
will
not
execute
immediately.
It
will
dispute
each
time.
You
call
it
right,
so
that's
a
very
easy
way
to
create
an
iterator
without
taking
a
lot
of
memory.
Having.