►
From YouTube: Cassandra Day Chicago 2015: Advanced Data Modeling
Description
Speaker(s): Tim Berglund, Global Director of Training at DataStax
You know you need Cassandra for its uptime and scaling, but what about that data model? Let's bridge that gap and get you building your game changing app. We'll break down topics like storing objects and indexing for fast retrieval. You will see by understanding a few things about Cassandra internals, you can put your data model in the spotlight. The goal of this talk is to get you comfortable working with data in Cassandra throughout the application lifecycle. What are you waiting for?
A
Maybe
it's
used
to
be
any
way
up
to
Burger
and
thank
you
very
much
for
being
here.
I
know
it's
late
the
day
they
say
it's
hard
to
get
up
talks,
tech
conferences,
having
been
on
both
sides
of
the
projector
I,
know
it's
much
harder
to
sit
and
learn
all
day
and
actually
retain
things.
Stay
awake,
so
I
will
never
make
that
as
easy
as
possible
for
you
for
the
next
hour
and
also
try
to
get
you
out
of
here.
If
you
could
it's
early
in
case
you,
google
transition
time
goes
I
work.
A
Training,
so
my
team
makes
the
curriculum
that
you
might
find
in
one
of
our
free
online
classes
or
if
you
do
have
a
customer
and
you
get
some
of
our
training
company
buys
training
the
instructor
who
comes
the
delivery.
We
deliver
a
great
note
that
my
team
has
someone
there.
So
that's
me,
you
are
in
the
advanced
track,
so
I'm
gonna
make
some
assumption
full-rate
Matthews
creditor.
A
A
A
For
that,
so
I'm
gonna
make
some
assumptions
about
you
and
if
these
assumptions
don't
hold
by
apologies
but
I'm,
going
to
assume
that
you
kind
of
sort
of
them
about
the
same,
there
works
as
distributed
database.
You
don't
need
to
know
the
creative
gory
details
but
sort
of
how
its
distributed
in
our
application
of
mind
for
a
lot
of
that
is
going
to
be
separate
from
our
concerns
today,
but
I
won't
go
into
big
animation.
Still
all
assume
now
I
will
also
assume
you
have
at
least
seen
some
CQL
down
to
meet.
A
A
See
we'll
design
you
waited
no
there's
a
double-edged
sword.
Right
sequel
is
four
years
old
now
and
I.
Remember
the
time
it's
like.
Oh
that's
awesome,
because
I
used
to
teach
people
I
use
Cassandra
and
to
describe
it
clearly
literally
Java
code,
I'll
slide
to
show
people
our
query
databases.
You
know
what
that
feels
like
to
do
that.
One
thing
I
can
tell
job,
but
I
mean
really
it's
write
code
to
create
a
database
as
well
right.
So
no
cql.
A
So
it's
easy
to
learn.
It's
also
easy
for
you
to
import
all
of
your
relational
data.
Modeling
habits
learned
over
potentially
a
long
career
in
to
the
December
world.
So
our
solution,
architect
even
taste,
accident
bizarre,
so
a
proposal
sales
consultants
to
help
make
beautiful
people
make
things
work.
They
see
the
bitterroots
of
that
practice.
People
treating
Cassandra
likes
a
relational
tables.
That's
really
what
this
talk
is
about.
It's
for
the
most
part,
some
use
cases,
some
actual
real-life
business
problems.
That
person
might
try
to
solve
with
Cassandra
we're
going
to
describe
those
problems.
A
Look
at
how
we
can
solve
with
a
Cassandra
data
model.
Now
you
can't
do
that
by
designing
tables
recently,
so
you
want
to
appreciate
cql
to
the
fact
that
it
is
easy
to
learn
them
accessible
but
stopped
short
of
acting
like
it's
Dustin
Rhodes.
So
you've
got
a
terrible
to
forget
what
you
know
about
the
relational
model,
because
you
are
well
and
truly
not
in
Kansas
anymore,
so
we're
gonna
live
through
these
cases
and
that's
going
to
give
us
an
occasion
to
see
the
way
we
would
solve
certain
problems
in
you.
B
A
Example-
and
you
will
also
explore
something
rather
more
formal
with
me
at
this
next
section-
we
refer
to
as
need
Sherlock,
Pro
method.
After
a
guy
works
for
me
name,
our
temperature
vodka
he's
he's
one
of
the
curriculum
developers
for
smartinis
computer
scientist.
He
came
up
with
a
fairly
rigorous
formal
method
for
turning
basically
an
ERP
into
cql
taters.
It's
a
series
of
steps,
I'm
really
not
going
to
teach
you
that
whole
thing
and
all
of
its
rigor
and
glory,
but
I'm
gonna
show
you
what
steps
look
like.
You
have
an
idea.
It's.
A
A
If
we
have
time
we'll
look
at
me
understand
or
two
point
one
feature:
that's
are
they
do
because
everything's
been
out
for
some
months
but
they're.
There
is
particular
feature
in
there
that
makes
certain
data
modeling
problems
easier.
So
it
belongs
in
this
talk
about
me
that
case
you're
wondering
user-defined
times
time
all
right.
Although
I'd
like
to
hear
questions,
if
you've
got
to
put
your
hands
up,
tell
you
I,
don't
know
if
I
don't
know,
but
you
are
totally
welcome
to
ask
Nikolai's.
A
A
There
was
always
you
didn't:
have
a
fluorescent.
Fixture
dude
was
intentionally
with
scamp's
and
yeah.
Let's
just
pretend
to
be
in
that
world
a
little
bit.
It's
pretty
raucous
place,
so
you
have
a
cave
player
out
of
the
world
and
that
player
using
let's
say
something
console
is
gonna,
be
generating
events
that
emits
there's
some
API
is
going
to
be
dumping.
It's
gonna
be
the
score
data
into
your
Cassandra
cluster.
All
right
that
right.
A
There
is
a
pretty
good
fundamental
Cassandra
use
case,
millions
of
people
all
at
the
same
time
we're
working
to
two
things:
I
need
to
remember
the
things
that
they
do.
These
are
certain
games
moles.
So
that's
pretty
sweet
thing
to
do
with
Cassandra.
It
looks
like
lime
series
had
its
really
easy,
so
that
EPA
is
squirting.
B
A
B
A
Is
we're
going
to
take
this
time
series
theater
and
we'll
run
spark
over
it
now
what's
spark,
and
why
do
we
want
to
run
smart?
There
are
gated.
Well
Cassandra
itself
in
this
case
is
going
to
be
super
good
at
come
an
arbitrarily,
scalable
time
series
or
may
again
listing
those
scores.
He
can
come
tripling
your
network
ten
times
the
number
of
layers,
it's
okay,
we
can
scale.
'
to
remember
all
those
course.
That's
easy
examples
created
that,
but
knowing
who
had
the
top
score
today,
that's
pretty
tough
right.
A
You
can
imagine
doing
that
into
a
relational
database
over
a
small
set
of
scores.
You
had
an
index
to
a
query,
limited
they're,
pretty
cool
he's
not
going
to
fly,
we
can
have
tens
of
millions
or
billions
of
rows.
It's
part
is
a
distributed.
Computation
framework
is
fundamentally
an
open
source
product.
There
is
an
open
source
department
connector
that
will
then
a
talk
to
Sandra
smart,
it
conveniently
integrated
with
the
Sandra,
because
the
feature
of
the
commercial
product
based
enterprise,
but
we're
going
to
roast
part
out
and
I
like
literally
wave
my
hands.
A
This
is
a
data
model.
We
talked
about
spark
talk,
so
suffice
it
to
say
that
you're
going
to
write
some
functions.
That
would
be
the
MapReduce
key.
If
you
know
conceptually
similar
to
that,
but
they'll
run
in
a
more
efficient
way
around
this
cluster
and
that
John
will
say,
run
nightly
and
you'll
come
back
and.
A
B
A
A
A
You
ought
not
to
paint
it
in
consumer,
it's
entirely
appropriate.
Every
time.
I
said
that
religion
played
a
model
like
this
is
wrong,
but
I
have
to
give
consumers
the
first
thing:
the
user
ID
game
ID
constitute
the
partition
key.
That
means
that
all
of
the
different
kinds
of
games
played
by
that
user
are
going
to
be
local
to
one
machine.
That's
what
partition
key
means,
and
the
first
term
of
a
primary
key
in
this
case.
Is
that
thing
in
parentheses,
it
is
the
partition
key.
A
Advanced
state
of
oddly
personal
there,
but
I
want
to
make
sure
we
repair.
The
second
field
was
called
a
club
clustering
column,
and
that
means
that
all
of
the
different
Katyn
instances,
so
every
time
I
play
Tekken
8's
be
every
score.
I
get.
There
is
going
to
be
a
row
in
this
table.
Those
are
going
to
be
ordered
by
the
time
that
I
played
now
all
of
the
times.
I
play
Mario
Kart,
don't
ask
me:
this
is
weird
game
network
will
also
be
in
that
same
partition.
So
all
of
my
games
as
me.
A
A
All
right
again,
I'm
sure
he's
doing
it.
This
is
why
you
got
a
spark.
John
writes
this.
It
writes
the
top
10
itself,
let's
go
through
the
cheese
in
a
primary
key
line
or
from
the
bottom.
This
time
there
are
three
terms
in
the
primary
team,
but
the
partitioning
key.
So
there
are
no
embedded
parentheses
there.
The
partition,
T
is
just
came
all
right.
That
means
all
of
the
users
for
that
game
are
going
to
be
in
this
partition,
which
stands
to
reason,
because
this
is
a
top
table.
A
Those
will
be
sorted
by
timestamp
and
score
now
process
times
now
is
going
to
reflect
the
particular
invocation
of
the
top
ten
spark
top
it's
going
to
run.
Let's
say
that
night
and
it'll
run
that
time
and
that
timestamp
that
spark
job
runs.
It's
saying
well
right
now
this
is
your
top
ten,
so
we'll
be
ordering
them
by
sport
or
inter-process
timestamp,
and
we
should
expect
to
see
a
process
v
snare.
Ten
rows
in
this
table.
A
Alright,
there's
another
funny
business
again.
You
really
can
even
walk
through
this,
because
this
this
is
some
slightly
next-level
stuff
we're
specifying
income
tax
strategies.
Briefly,
compaction
the
way
Cassandra
works
inside
and
over
hope.
You
heard
this
today
and
this
is
a
repetition,
occur
three
back
inside
of
the
when
a
write
comes
into
window,
it
will
sort
of
buffer,
though
something
Democrat
recall,
the
meditator
right
and
that's
gonna
fill
up.
A
A
That's
that's
how
well
that's
kind
of
a
basic
property
of
a
log
structured
storage
engine.
Now,
once
you
decide
to
be
that
kind
of
storage
engine
where
you
fill
up
a
buffer
and
flush
it
there's
nice
IO
characteristics
that
you
get
in
exchange
for
that
for
that
architecture.
Once
you
decide
to
do
that,
you
have
made
a
commitment
to
occasionally
compacting
those
things
they
otherwise
about
this
ever-increasing
collection,
SSO.
The
compaction
strategy
is
a
figure
able
to
choose.
A
A
Of
at
night-
and
nothing
is
ever
really
gonna-
get
read
all
right,
so
the
score
data
that
we
had,
we
arguably
could
have
applied
the
standard
fashion.
The
score
data
that
we
had
was
fine
series.
This
is
all
so
classically
time
series
data
immutable,
something
is
periodically
written
to
a
table
and
never
deleted
or
changed
in
the
past.
So
that
is
a
great
candidate
for
a
new
compaction
strategy,
called
deep,
tiered
compaction
strategy
and
also
set
an
arbitrary
time
lived.
A
There
500
perfect
two
hundred
fifty
nine
thousand
two
hundred
seconds
something
check
my
map,
seven
hours.
So
we're
saying
we
are
early
chair
top
terrace,
so
we
have
that
combination
of
a
nice
close
in
time
to
live
and
the
dat
recovery
strategy
is
going
to
be.
The
compaction
on
this
table
is
going
to
be
pretty
tight.
It's
going
to
be
efficient
and
should
not
burden
us
intelligent.
C
A
B
A
A
A
B
A
D
A
Even
think
I
need
to
repeat
that.
Just
in
case
of
the
back
you
didn't
hear,
the
question
was
a
tombstone
is
still
used
space
up.
Just
absolutely
yes,
in
fact,
technically,
if
you've
got
your
competing
things,
this
is
not
an
example
of
that,
but
lots
of
data
models
you'll
go
into
leave
data
that
to
be
isn't
right.
So
you've
got
the
old
version
that
I
previously
flush
access,
cable,
the
last
version
of
that
cell.
A
Then
you
have
a
new
one,
the
tools
now,
so
it's
not
just
that
the
data
is
still
there,
but
it
you
might
have
great
extra
stuff.
So
in
the
log
structured
earth,
tree
storage
architecture
that
has
introduced
some
of
the
covers,
one
cannot
do
anything
but
fight
and
compact
there
is
no
dignity.
So
a
tombstone
is
the
purest
sense,
a
right
and
it's
a
commitment
in
the
future
when
you
contact
us
as
table
eventually
to
expire
everything.
So
it's
not
taking
up
space
but
a
shorter.
A
Here's
how
we
read
ok
back
to
that
table
is
that
table
in
that
in
your
head.
You've
got
game,
you
do
I
need
the
process
timestamp
and
the
score.
Those
constitute
the
primary
key.
So
how
are
we
probably
gonna,
walk,
weariness,
you're
gonna,
say
well,
I
want
all
the
Mario
Kart
scores
between
2:00
and
3:00
p.m.
or
the
top
ten
job
that
ran
between
2:00
and
3:00
p.m.
for
Mario
Kart.
That's
really
what
we
want.
So
let's
go
ahead
and
do
that
query.
A
A
A
A
A
So
that's,
maybe
not
people.
Why
and
just
make
yourself
dancer.
We
do
this
to
ourselves.
Typically,
this
for
a
sequel,
server,
single
bastard,
relational
theories.
That
day,
my
team
would
probably
be
a
nice
polite,
monotonically
increasing
teacher.
If
Oracle
is
sequence,
masculine
equality
permanent.
Would
we
not
love
life?
It's
great
because
they're
relatively.
A
A
A
A
C
A
D
A
B
A
C
A
Okay,
the
question
is:
was
the
performance
impact
of
compaction?
It
is
not
a
zero
there.
There
isn't.
It
depends
on
too
many
factors
of
the
system,
but
I'll
say
as
an
operator
of
a
Cassandra
cluster.
A
You
need
to
take
measurements
carefully.
So
if
you're
measuring
latency
on
a
particular
node
and
the
Oh
compaction
is
happening
there
you're,
like
oh
cool,
and
you
don't
measure
during
compaction-
that's
a
lot,
so
you
need
to
take
an
average
over
during
compaction
and
not
very
good
actions.
If
you're
making
measurements,
you
should
create
like
traffic
to
trigger
compactions
during
a
long
experiment.
Compaction
is
a
part
of
the
work
of
being
Cassandra.
It
is
to
be
sure
to
think
of
it
like
like,
like
this
goal.
We're
going.
A
A
lot
of
life
is
good
at
oh
crap
not
I
got
to
come
to
extraction,
it's
an
Indian
condition.
It
happens.
Sometimes
all
the
time.
You
just
need
to
make
sure
your
measurements
account
for
compaction,
so
put
that
different
way.
If
he
did
a
benchmark
where
there
was
no
light
traffic
and
only
a
bunch
of
reading
going
on-
and
you
thought
you
were
okay,
you
would
not
be
okay.
You
would
not
be
getting
statistics
that
economic
reproduction.
So
it's
a
thing.
The
impact
is
readable,
but
it
just
goes
into
your
latest
events.
A
There's
an
internal
table
in
an
eternal
tea
space
where
that
may
stop
that's
keeping
track
of
metadata,
but
the
ID
itself.
That's
just
saying:
I'm
a
table
called
top
ten
I
have
a
column
called
game
ID.
This
might
be
like
that's
just
like
the
system
these
days,
so
give
it
a
cluster
use
the
system,
key
space
use
system
poker
enough
to
take
the
SUBSCRIBE
tables.
A
C
A
The
highest
scores
at
a
given
time,
so
my
process
runs
periodic
I'm,
gonna,
say
it's
every
hour
and
they'll
focus
time
stamp
into
time.
Their
buns,
so
I
want
sort
by
game,
sort
by
process,
I'm
snare
and
then
each
time
the
process
runs.
It's
going
to
score
ten
rows
in
here
of
the
top
ten
scores,
so
I'll
sort.
B
A
A
A
A
A
Need
to
be
able
to
upload
images,
people
need
to
know
intent
from
those
who've.
It
get
two
of
those
images
from
anywhere
they
can
read
a
few
very
good,
and
people
can
check
how
their
images
have
been
accessed.
How
popular
is
my
funny
I
want
to
know
a
festival
of
a
pretty
big
gift
user
I.
Think
if
producer.
A
Mostly
alright,
now
these
are
the
things
that
we
want
to
do
now
in
Cassandra,
who
sees
literally
me
to
the
chibok
woman,
see
it's
later
than
that.
You
don't
just
consider
objects
how
they
the
world.
That's
what
you
do
with
the
relational
relation.
What
are
those
things
out
there?
How
do
they
relate
to
one
another,
one
of
the
cardinalities
or
the
relationships
you
think
about
entities
now,
what
do
I
do
with
those
downs,
more
questions?
A
A
In
December,
not
so
we
do
present
as
a
matter
of
first
importance,
look
at
access
paths
or
the
queries
that
our
application
will
run.
So,
following
those
stories
we
get
to
read
in
a
single
image,
get
all
images
in
a
tie-break,
get
specific
images
for
regular
time
rank
and
read
the
times
an
image
was
accessed.
A
A
User
creation,
I'm
gonna
I'm
gonna
go
ahead
and
make
this
easy
for
now
that
this
will
be
our
user
table,
we'll
have
a
user
name,
my
first
name
or
last
name
and
list
of
emails
and
that's
not
gonna,
be
true.
Collections
have
been
around
1.2.
That's
a
list
of
strings
that
last
copy
knows
this
of
strings.
A
What
it
doesn't
have
one
key
constraints
and
also
the
joiners
and
so
I
wanted
another
table
of
emails
that
had
a
foreign
key
back
to
the
user
table.
That's
a
bad
thing:
it's
not
an
impossible
thing.
It's
not
completely
against
the
casino
rules,
which
is
super
duper,
don't
want
to
do
it.
You
want
to
try
to
find
the
way
around
them
and
so
lists
here.
A
B
A
Normalization
to
keep
that
data
same
the
world
in
which
its
Sandra
has
promoted
the
typical
Cassandra
application
is
that
there
is
one
program
on
application
that
talks
for
this
database,
so
that
kind
of
stuff
is
easier
to
get.
It's
not
perfect.
You
will
to
think
little.
You
have
to
create
mechanisms
to
deal
with
that.
None
of
them
is
magical,
but
the
problem
is
less
severe
than
it
seems
and
again.
B
A
Is
one
of
those
things
where
you're
gonna
be
skinnier
working
scale?
You
have
to
do
it
anyway,
so
either
you
have
to
do
it
in
an
ad
hoc
that
works
at
least
why'd.
He
stay
away
over
the
relational
database
or
just
a
straight
forward
way
of
planning
for
it.
So
it's
a
problem.
It
goes
in
the
category
of
distributed
systems,
our
part
which
I
don't
think.
A
And
that
would
be
a
hundred
percent
wrong.
You
want
to
nest
active,
so
there
are
truly
independent
domain
objects
which
simply
have
to
refer
to
one
and
that's
okay.
If
it's
episode
so
the
first
three
things
you
do
are
immobilized
normalizes.
Normally
after
that,
if
girl
said
about
referential
integrity,
you
can
write
a
spark
job.
That
Nike
will
speak
briefly
through
things
to
look
for
integrity
violations.
That's
that's
the
store
piece.
A
A
These
four
big
deal
there's
my
list
of
email
addresses
were
personal.
If
not
exist,
it
just
likes
nothing
in
there
was
hoping
you
wouldn't
notice
it.
It's
not
going
to
get
away
with
that
great
comeback.
That
texted
minute
is
profound
and
just
about
nobody
in
the
world
understands
what's
going
on
under
the
covers,
with
those
three
words,
so
I'm
gonna
try
to
make
you
some
of
the
elite
core
people
kind
of
get
out.
Alright,
let's
go
through
the
people,
improve
the
data
model
image
as
a
unique.
A
A
There's
now
that
list
of
tags-
that's
just
tagged
images,
of
course,
on
our
social
insurance,
like
we're
going
to
happen,
tagged
that
problem
stinks
in
relational
databases
is
terrible,
and
this
was
a
thing.
Ten
years
ago,
when
attacking
was
new
was
exciting.
They're
things
like
delicious
and
Flickr.
They
dumped
the
ideas
of
tactics.
It
was
solving
these
problems
with
relational
databases.
It
wasn't
pretty.
You
got
some
people
up
here.
If
I'm
using
Enterprise
version,
I
would
just
use
the
solar
integration
to
search
for
certain
ethical
tax.
Free
taxes
I
also
want
the
reason
it
is.
A
A
A
A
And
we're
gonna
jump
these
guys
we're
gonna
chop
them,
because
an
image
might
be
really
really
big
and
it
starts
to
get
into
a
practical
consideration.
That's
something
you
need
to
think
about
when
you're,
storing
eating
Cassandra
and
that's
how
big
can
a
table
column
get?
How
big
can
a
row
get?
How
big
can
a
partitioning
get?
A
A
This
guy
contains
the
actual
dinner
and
that
first
column
their
object.
Id
is
going
to
be
a
foreign
key
back
to
this
guy,
all
right,
so
every
block
is
going
to
point
partner.
The
blob
chunk
is
gonna
point
back
to
the
blob
of
wishes
apart.
This
is
not
hard
to
understand
because
we
do
this.
This
is
somewhat
normalized.
A
Question
is
chunk,
IV
has
to
be
sequential
and
mr.
speaker,
you
said
that
can't
do
sequential
things.
So
what
do
I
have
to
do
there?
What's
my
game,
it
isn't
correct
observation,
the
application
meaning
when
I'm
putting
on
chunking
a
new
image
single
thread,
so
chunking
of
the
image
can't
be
distributed.
Sp
e
in
this
thread,
or
these
locks
rest
on
this
Court.
A
A
A
That
means
I
need
to
be
aware
of
how
big
a
partition
can
be.
What
am
I
comfortable
with
in
terms
of
maximum
partition,
size
and
a
common
rule
of
thumb
is
a
hundred
megabytes.
You
may
be
able
to
violate
that
and
meet
your
performance.
Sfa's.
It's
not
like
the
world
is
gonna
explode,
but
when
people
ask
how
big
the
partition
can
be,
the
stock
answer
is
yes,.
A
C
A
D
A
D
A
A
A
D
A
A
All
right,
let's
talk
about
her
users,
yeah,
that's
before
what
if
two
people
are
creating
mariokart
working
the
same
time.
There
are
a
better
question
where
two
people
are
ready
for
my
socially
to
get
sharing
our
internet
website
and
it
seems
like
that's
a
real
problem.
So,
let's
imagine,
we've
got
two
coordinators
to
toast
every
rights
come
in
from
the
application
term
and
what
I'm
going
to
do
this
is
like
I,
see
well,
does
kill
bird
exist
and
this
other.
A
A
A
A
A
A
B
A
Well,
take
this
new
ballot
right,
they're
gonna,
say
well.
The
election
has
given
me
on
this
partition
of
better
sequester
bourbon
one.
What
he
says
always
promised
me
anything
higher
than
that.
No,
so
you
know
what
I'm
gonna
go
ahead
and
accept
that
I'll
say
yeah.
Nobody
does
anything
nobody's
gonna,
be
better,
definitely
not
anything
anything
lower
than
one.
This
is
just
assistance
step,
two
promises.
All
that
promise
is
that
nobody
gives
me
anything
better.
I'll,
take
your
seat.
No
I
certainly
won't
take
anything
less
than
that.
A
A
Cosette,
so
they
will
accept
it,
they
compare
the
sequence
numbers.
They
accept
that
and
I've
said
that
now
what
will
happen
if,
in
the
meantime,
somebody
else
had
jumped
in
with
some
other
about
one
of
those,
those
in
that
partition?
Well,
if
they
had
a
higher
sequence
number
from
the
time
they
accepted
the
original
proposal.
If
someone
came
in
with
a
higher
sequence,
number
they'll
take
a
better
offer,
and
so,
when
the
acceptance
message
comes
back
from
the
proposer,
there
has
a
kernel.
Actually
I,
don't
want
that.
I'm
gonna
take
this
higher
number.
A
The
proposal
will,
let's
say:
oh
okay,
I
thought
I
said
flat
white.
You
want
Rivera
cotton
column,
that's
okay!
So
now
guess
what
guys
I'm
waiting
for
a
comment
now
the
propose
that
are
sort
of
upgrades
himself
on
the
basis
of
the
best
offer
that
the
acceptors
have
gotten
now
look
if
we
take
an
hour
to
go
through
the
cases.
This
is
insulting
taxes.
I
can
recommend
the
paper.