►
From YouTube: 1. #everyonecancontribute cafe: QuestDB
Description
QuestDB Introduction, live demo and AMA with Vlad Ilyushchenko, Nicolas Hourcard, David G. Simmons, Niclas Mietz, Michael Friedrich, Michael Aigner, Nico Meisenzahl
Blog: https://everyonecancontribute.com/post/2020-09-23-cafe-1/
QuestDB: https://questdb.io/
A
But
yeah
that
that's
it
I'm
happy
to
to
to
welcome
everyone
for,
for
our
first
english,
iteration
or
english
version
of
everyone
can
contribute
coffee,
chats
I've
called
it
cafe.
A
I
would
I
would
like
to
start
with
a
short
introduction
round
before
we
dig
into
the
topic
today,
which
will
be
quest
eb
a
little
bit
about
myself,
I'm
a
developer
eventualist
at
gitlab.
I've
joined
in
march
2020
before
that
I've
been
in
the
open
source
monitoring
area
for
around
about
10
to
11
years,
maintaining
an
open
source
monitoring
software
yeah
and
I've
been
looking
into
metrics
and
logs
events
traces
all
over
and
I'm
eager
to
learn
new
things
today
and
in
the
future.
B
Yeah,
thank
you
michael.
I
am
my
name.
Is
vlad
vlad?
Just
don't
worry
about
last
name:
most
people
can
handle
it
anyway,
so
it's
all
good.
So
I
am
I'm
cto
and
at
in
quest
db
and
I'm
also
been
writing
quest
db
since
2014
and
my
kind
of
day
job
at
the
time
was
algorithmic
trading
in
various
financial
institutions,
primarily
banks
kind
of
very
fairly
big
banks,
and
I've
been
doing
it
for
for
a
few
years,
and
this
is
this-
is
where
effectively
inspiration
focused.
They
came
from.
A
Thanks
just
pic
pick,
someone
on
on
your
zoom
screen,
who
should
continue.
B
Again,
I'm
gonna
pick.
Can
I
pick
another
michael.
C
So
hi,
my
name
is
mike
wagner,
I'm
from
austria,
I'm
a
product
manager
and
software
engineer
at
the
company
called
zkw.
We
are
part
of
el
china
for
roughly
two
years
now
and
yeah
my
day.
Job
is
is
mainly
software,
programming,
c,
plus
plus,
and
this
for
roughly
15
years
now,
and
also
I
have
more
and
more
problems
with
time
series,
analysis
and
all
this
kind
of
stuff.
So
I'm
really
interesting
to
hear
about
quest
tv.
D
Yeah,
my
name
is
sikla
smith,
I'm
also
from
not
from
austria
but
from
germany,
I'm
currently
working
as
a
cloud
engineer
for
community
quality.
D
Currently,
I'm
glitching
a
little
bit
this
because
I'm
not
able
to
get
a
right
webcam,
because
it's
only
my
iphone
to
stream
my
my
picture
yeah
and
there
I
worked
as
a
cloud
engineer
and
I'm
doing
more,
mostly
if
the
operating
stuff
so
working
with
kubernetes
monitoring
systems,
like
reviews
or
and
sometimes
in
some
cases,
also
infrastructure,
and
I
was
really
curious
about
this
new
time
series
database
crestdb
and
I
tested
it
a
little
bit
already
to
find
how
it
works
and
what?
Where
could?
D
E
Hey
guys
so
I'm
co-founder
ceo
of
quasi-league
and
just
like
vlad.
I
come
from
a
financial
services
background,
so
mostly
banks
such
as
yeah,
rothschild
and
also
nasdaq
prior
to
that
super
excited
to
to
go
through
a
question
with
you
guys
today,
so
yeah
I'll
pass
it
on.
There
is
another
another
nico
right,
so
two
michaels
to
nicholas
so.
F
Yeah
so
my
name
is
nico
meister,
I'm
also
from
germany
near
munich,
so
the
nearly
south
part
of
of
germany
I'm
doing
consulting
around
le,
never
with
kubernetes
and
just
helping
our
customers
to
get
started
with
all
the
combinations,
mainly
focusing
on
azure,
but
at
least
I'm
doing
kubernetes.
So
it's
the
same
everywhere
yeah.
So
I
didn't
plan
to
turn
this
round.
F
At
least
I
blend,
but
I
thought
I
wasn't
able
now
I
am
able
I'm
pretty
sure,
only
got
to
listen,
only
mode
in
some
minutes
but
really
interested
in
stuff
and
hopefully
learning
some
new
things.
G
Well,
we'll
see
about
the
least
part.
I
I'm
I'm
david
simmons,
I'm
head
of
developer
relations
at
questdb.
I
was
previously
at
influx,
so
got
some
history
with
time
series
databases
and
that's
I'm.
I
guess
I'm
the
only
one.
That's
in
the
us
right
now
on
this
call
so
I'll
represent
north
america
for
us.
A
B
Actually,
like
not
knowing
how
this
is
gonna
go,
we
prepared
the
slides,
don't
all
of
them,
just
very
short,
slides
with
the
kind
of
subjects
we
can
cover,
so
you
guys
get
kind
of
get
to
know,
quest
db,
a
little
more.
I
can.
I
can
just
whiz
through
them
and
quickly,
so
it
shouldn't
take
very
long
and
then
hopefully
it
might
lay
some
foundation
for
for
more
questions.
Really
so
it'd
be
good
to
make
it
super
interactive
if
possible.
D
B
Cool
I
can
can
I
share
my.
B
Very
cool
right:
can
you?
Can
you
see
this
things
cool?
So
this
is
this?
Is
interest
live
now?
You
know,
you
know
who
we
are.
I
just
wanted
basically
to
cover
a
couple
of
really
three
subjects
here.
So
what
is
what
is
quest
db?
What
quest
db
is
not
and
and
various
integrations
aspects,
and
then
then
perhaps
we
can
introduce
you
to
to
demo
that
we
have,
if
you
haven't
seen
it
already,
you
you
might
have
actually
and
that's
that's
it
so
just
whizzing
through
it.
B
So
what
quest
db
is
generally
question
b,
we
kind
of
incepted
this
as
a
column
column
based
store.
I
guess
you
guys
must
be
familiar
with
column
based
and
row-based
approaches
and
we
picked
column
based
because
it
kind
of
made
sense
for
for,
for
the
time,
series
data
and
generally
with
the
the
reason
I'm
saying,
makes
sense
for
time.
Series
data,
because
usually
data
with
most
volume
is
time
series,
data
and
and
the
column
based
approach
helps
partition
this
data
kind
of
right
right
from
from
the
start.
B
So,
basically,
data
is
sliced
into
columns
and
if,
if
data
is
not
needed
for
a
query,
it
doesn't
have
to
be
lifted
from
disk
at
all.
So
where's
in
a
row
based
approach
is
a
little
bit
more
complicated
to
achieve,
and
then
data,
that's
stored,
question
b
stores
data
partitioned
by
time.
So
time
partitioning
is.
I
guess
this
I'm
talking
to
this
this.
This
point
and
time
partitioning
helps
us
to
slice
data
even
further
in
in
more
meaningful
chunks
generally
time
partitioning
the
way.
B
The
way
it
works
in
ques
db,
it's,
whereas
columns
are
files
on
disk
and
the
time
partitions
are
directories
containing
those
columns
so
and
the
directory
is
we
we're
kind
of
trying
to
be
very
friendly
with
with
the
file
system?
If
you,
if
you
were
to
to
list
quest
db
data
directory
you,
you
should
work
out.
B
What's
what
they're,
basically
like,
which
files
to
do
with
which
columns
and
and
what
columns
are
to
do
with
what
dates
that
kind
of
stuff,
and
we
heavily
use
time
partitioning,
which
I
could
I
can
explain,
probably
further,
if
you're
interested
how
so
we
we
use
it
to
to
find
time
intervals
kind
of
very
efficiently
and
also
we
use
time
partitioning
as
another
like
horizontal
dimension.
B
If
we
want
to
calculate
data
concurrently,
then
it's
kind
of
important
to
to
know
that
quest
db
is
is
an
append
only
system
as
opposed
to
databases
where
you
you
can
you
can
mutate
data
via
either
update
or
delete
and
append
kind
of
makes
it
relatively
simple
to
to
implement
and
especially
simple,
to
implement
repeatable
consistency
that
comes
comes
next.
B
The
way
we
implement
repeatable
with
consistency
is
we
effectively
have
if
you,
if
you
can
imagine,
there's,
there's
a
data
and
then
there's
position
in
the
data
below
which
any
reading
code
does
not
go
generally
and
as
as
data
is
appended,
then
this
this
pointer
moves
down.
Atomically
enabling
reading
systems
pick
up
all
of
the
appended
data
consistently
anatomically
as
well.
So,
that's
that's
that
that's
how
we
kind
of
deal
with
consistency
and
we
sort
of
we.
B
B
So,
if
you,
if,
if
you,
if
you
consider,
for
example,
if
your
data
was
not
necessarily
observability
related,
you
could
just
store
changes
as
as
as
one
append
the
one
one
record
after
the
other
and
then
there's
a
query
system
which
says
well,
I
want
to
get
latest
for
this
id
and
they
would
return
to
the
last
row
fairly
efficiently
and
you
have
a
history
of
all
the
changes
as
well.
B
If
you
want
to
query
and-
and
the
last
point-
I
guess
we
we
try,
our
kind
of
I
suppose
unique
value
proposition
is
performance.
We
try
optimize
optimize,
both
data
ingestion
and
retrieval
through
various
means.
Well,
highly
optimized
is
a
bit
generic,
but
what
we
do
is
first
partitioning
which
I
mentioned
so
partitioning
lends
itself
to
parallel
query
execution.
We
can.
We
can
process
chunks
of
data
simultaneously
on
on
multiple
threads.
That
that's
one
thing.
B
B
If
we
need
to
aggregate
large
chunk
of
data-
and
you
probably
know
that
cmd
is
something
that
I
mean
lets
you
parallelize
parallelize
execution
within
single
core
hardware,
so
without
using
threads,
so
we
can
execute
multiple
instructions
at
the
same
time.
B
So
that's
that's
another
optimization
technique
and,
and
and
lastly,
all
of
our
I
o
around
the
system
is-
is
non-blocking
generally,
so
the
system
does
not
have
like
locks
or
critical
sections
or
anything
that
that
is
impossible
to
look
it
up
generally
other
than
have
it
processed
monumental
amount
of
data
inefficiently.
Maybe
in
some
some
inefficient
paths
in
this
case
it
you
might
take
time,
but
otherwise
it's
it's
a
lock
and
weight
free
system.
B
So
that's
that's!
I
guess
that's
that's!
What
quest
db
is
if
we,
if
we
move
to
to
another
slide,
I
suppose
it's
important
to
also
understand
that
quest
db
is
is
not
an
online
transaction
processing
system
and
I
say
it
in
a
way
that
our
transactionality,
for
example,
implemented
so
far
per
table.
So
it's
it's
impossible
to
in
quest
db
to
commit
basically
several
table
updates
in
one
transaction.
B
Now
we
might
implement
it
in
the
future,
but
now
that's
that's
not
the
case.
Likewise,
we're
not
optimized
for
for
delete
and
update
workloads
and
and-
and
you
can
have
some
cases
where
people
absolutely
have
to
delete
a
record
from
the
database
or
an
update,
a
field
on
a
database.
So
we
not
fully
optimized
for
it,
so
it's
possible
to
update
the
value
generally,
but
that's
not
not
very
efficient
and
to
delete.
B
So
that's
that's
that
covers
the
delete
and
updates
and
and
last
point
quest
db
is
not
a
data
lake
and
the
data
lake.
In
a
sense,
we
haven't
built
connectors
to
to
work
with
cloud
storage
yet
so
only
all
with
all
the
data
for
quest
db
need
to
be
located
locally
to
computing
hardware,
which
obviously
places
some
limitations
on
their
own
amount
of
data
that
can
be
processed
in
a
way
that
they
can
fit
their
fit
the
physical
server.
B
So
that's,
that's!
That's
that's
the
summary,
and
at
this
point
I
probably
would
like
to
welcome
if
any
questions,
if
you
guys
have
so
far.
B
Okay
cool
so
again,
I'm
gonna
move
on
to
next
slide,
which
is
integrations.
What
do
we
have
that
might
help
we?
We
saw
influx
line
protocol
as
as
as
as
kind
of
interesting
proposition.
First,
there's
there's
a
lot
of
tools
that
send
data
in
this
format
and,
what's
kind
of
I
personally
found
sort
of
pretty
pretty
cool.
That
influx
done
with
this
protocol.
B
Is
that
you
can,
you
can
add
the
column
on
the
fly,
so
you
don't
need
to
in.
In
some
cases
you
don't
really
need
to
at
the
column
offline,
when
your
date
will
tip
me
in
typical
kind
of
probably
relational
database.
Adding
a
column
is,
is,
is
the
release
procedure
generally
so,
whereas
influx
protocol
makes
it
makes
it
really
easy
and
instant
and
and
and
quest
db
does
support
it
to
the
fullest.
B
B
It's
not
free
operation,
but
there's.
No,
there
is
no
data.
Backfill,
if
you
add
the
column
to
existing
table,
it's
not
trying
to
backfill
the
data
with
nulls
or
anything
like
this,
and
we
use
use
influx
line
protocol
for
ingestion.
We
also
on
top
of
it.
We
we
kind
of
enhanced
it
a
little
bit
by
adding
optional
authentication
to
this
protocol.
So
it's
it's
totally
optional,
but
if
you
need
it,
you
can
have
it
and-
and
this
authentication
is
a
is
a-
is
a
secure
challenge
response
authentication.
B
Sorry
postgres
wire
protocol,
and
we
we
see
that
in
postgres
wire
as
a
as
a
sort
of
really
really
convenient
feature
to
get
a
lot
of
tools,
kind
of
integrating
with
quest
db
without
having
to
change
these
tools
or
program
new
new
new
interfaces.
B
We
support
most
of
the
postgresql
protocol
to
a
point
where
you
can
pick
a
driver
of
the
shell
for
for
any
language,
and
you
can.
You
can
definitely
execute
queries
and
and
insert
data
through
through
the
postgres
through
the
driver.
B
There
are
some
limitations
where
we
don't
support
some
of
the
all
of
the
features
of
postgresql,
but
like
we
don't
support
like
a
file
upload,
yet
the
remote
remote
file
upload
via
the
wire
or
we
don't
support
like
script
execution
and
and
also
some
of
the
metadata
queries
most
of
actually
metadata
queries
that
aim
that
postgres
may
not
work
correctly,
even
though
we
kind
of
chop
in
well
implementing
all
these
queries
to
make
sure
you
can
get
a
list
of
tables
list
of
columns
and
and
basically
navigate
the
database
using
postgres
tools
and
and
the
postgres
wire
actually
is
is-
is
an
instrument
that
allows
you
to
use
grafana
against
quizdb
using
built-in
postgres
adapter
in
grafana
this.
B
Basically,
this
postgres
plugin
for
grafana.
It
has
two
two
parts:
there's
one
that
lets
you
kind
of
visually
build
the
query.
B
But,
on
the
other
hand,
this
driver
also
is
a
plugin
rather
lets
you
write
free
text,
sql
and,
and
and
there
you
can,
you
can
write
whatever
query
you
need
generally
and,
and
you
can,
you
can
plot
the
data
using
using
using
postgres
plugin.
B
So
these
are,
I
guess
these
are
the
influx
line
protocol
I
didn't
mention,
so
we
we
actually
support
both
tcp
and
udp
versions
of
of
of
this
protocol.
So
you
can
send
data
traditionally,
over
tcp
or
or
you
can,
you
can
use
udp
depending
on
the
environment.
Some
some
environments
have
like
effectively.
B
They
prioritize,
for
example
like
there's
a
system
that
sends
its
own
metrics
to
for
storage
and
they
prioritize
performance
of
the
sending
part
over
the
data
loss
like,
for
example,
they
would
rather
send
data
quickly,
then
have
tcp
protocol
create
back
pressure
into
application
and
slow
application
down
just
because
it
just
cannot
send
them,
send
the
metric
out.
So
we
so
we've
got
both
as
a
choice
of
which
one
to
use
and
and
both
of
them
are
fairly
high
performance
applications.
B
We
tested
udp
influx
line
protocol
and
for
for
very
kind
of
typical
message.
We
we
process
kind
of
easily
over
three
hundred
thousand
messages,
a
second
generally
on
on
this
on
on
a
single
thread.
Genuinely
so
that's
that's!
That's
that
do
you
guys
have
any
any?
D
B
I
think
I
think
it's
it's
version,
it's,
oh.
What's
the
difference
between
version
one
and
version
two.
D
I'm
quite
myself,
I'm
not
so
sure
where
the
difference
is
because
I
want
I
was
trying
to
get
some
prometheus
metrics
into
crestdb
and
transform
my
metrics
from
from
prometheus
to
inference,
and
I
tried
to
use
it
with
vector
vectors
also
on
an
interest
star
for
metrics,
or
it
could
be
also
for
log
files
and
there
they
stated
that
they
support
version
two
and
the
version
one.
So
I'm
currently
down
now,
where
the
real
difference.
D
I'm
currently
also
checking
what
the
difference
between
the
both
protocols
and
where
the
compatibility
is
currently
failing.
B
Okay-
okay,
I
see
so
I
I
I
I
think
this
is.
This
is
fairly
we
we
implemented
it
a
while
ago.
I
I'd
say
it
should
be
version
one
at
very
least.
But
to
be
honest,
I
don't
don't
know
the
difference
between
one
and
two
myself,
so
the
the
the
whole
protocol
generally
is
is
kind
of
name
value,
name,
value,
pairs,
there's
a
table
name
and
then
there's
a
tag,
value
and
then
field
value
and
the
timestamp
generally
is
a
text
we
can
probably
take
it.
B
Take
it
offline
and
we'll
will
investigate
this
this
this
particular
method
of
sending
data
from
promises
to
to
quest
db
and
see
see
where,
where.
B
Is
and
try
and
figure
out
basically
what
what?
What
does
it
send?
So
one
important
point
here
is
also:
is
we
this
the
quest
db?
Is
we
written
the
the
whole
thing?
Is
ourselves
there's?
No,
we
don't
use
libraries
for
for
anything
and
we
kind
of
fully
in
control
of
the
influx
line
protocol
parser.
If,
if
something
is
a
mess,
we
we
usually
investigate
pretty
quickly
another
generally.
So
that's
that's.
B
D
So
I
got
also
second
question
to
that.
So
is
there
also
support
for
authentication
in
the
protocol
already
so
that
I
can
enter
username
password,
for
example,.
B
Yes,
it's
a
it's!
It's
it's!
It's
a
challenge
response,
authentication!
Generally,
it's
not
a
username
password.
It's
it's
more
certificate,
based
authentication,
but
yes,
yeah
you.
There
is
support
for
that.
B
B
For
dev,
we
we
do
not,
but
this
is
something.
Do
we
well
right
now
we
sort
of
again
we're
very
fairly
fairly
new
to
the
scene,
and
one
of
the
things
we
were
working
on
is
is
a
proper
ci
system
to
build
on
multiple,
multiple
operating
systems
and
stuff
and
and
deploying
dev.
Docker
container
is
gonna,
be
part
of
it,
but
this
system
is
is
incomplete.
B
A
Yeah
no
worries
I'm
just
thinking
when
I
want
to
try
it
out
and,
as
you
mentioned,
some
features
are
only
in
master
right
now,
it's
nowadays
it's
super
convenient
to
just
have
a
docker
container
and
not
having
to
install
a
long
list
of
dependency
manually.
I
know
that
this
needs
a
lot
of
effort
to
make
it
right
in
ci
cd,
but
I
think
developers
will
ask
you
for
that
if
they
want
to
contribute
actively.
B
Yeah
that
definitely
but
the
same
thing
is
you
guys,
may
be
like
kind
of
there's
a
lot
of
databases
out
there,
and
some
of
them
are
pretty
complicated
to
install
from
source
our
database.
It
builds
in
in
a
single
file.
It's
a
single
file
that
you
run
like.
B
Three
megabyte
file
and
kind
of
literally
double
click
on
it
and
it
runs
it.
Would
you
don't
need
to
install
any
dependency
other
than
java
actually
like
you
need
to
have
java
locally,
but
other
than
that?
It's
it's
fairly
easy
to
to
get
going,
but.
G
A
A
No,
I
was
just
thinking
you
might
have
java
already
installed
on
your
systems
because
of
desktop
environments
or
whatever.
So
it's
it's
a
fair
point
to
say
it's
easier
to
install
from
source
and
to
contribute
than
to
have
whatever
python
mysql
whatever
to
be
installed
to
make
the
application
run.
So
it
should
be
easier
to
contribute.
B
Yeah,
the
the
we
actually
like
the
whole
all
of
our
process,
development
process
and
actually
product
is
about
making
it
super
simple
to
to
to
use
from
from
every
angle
from
from
building
it
for
to
build
it.
You
need
you
need
maven,
though,
like
it's,
it's
a
it's
a
like
one
command
and
maven,
and
it
produces
everything
that
you
need
to
run
and
and
and
the
file
itself
is,
is
very
small.
B
B
G
B
Yes,
we
do,
but
the
home
brew
is
for
the
for
releases.
So
dev
we
don't
build
the
homebrew
package
for
the
nightly
build,
so
that
makes
sense.
So
this
is
this
is
for
released
versions.
But
yes,
we
we
kind
of
do,
do
have
homebrew
now.
A
For
me,
it's
just
when
I
want
to
try
things
out,
I'm
hesitant
to
like
call
curl
and
pipe
bash,
or
whatever
things
I
want,
either
homebrew
or
a
docker
container
or
a
single
binary
which
gets
started
because
oftentimes
your
system
gets
messy
after
installing
lots
of
things.
That's
why
I'm
asking.
A
That's
awesome
and
I've
I'm
also
currently
looking
a
bit
into
the
github
repository.
The
building
from
source
documentation
is
really
clear
and
should
be
easy
going
to
get
started.
B
Oh,
thank
you
very
much,
and
not
only
that
we,
the
one
probably
this
is
nick's,
usually
lying,
but
we
we're
kind
of
very
keen
to
to
build
community
and
and
now
kind
of
ethos,
history
to
help
you
guys
to
do
stuff.
So
we
we
have
also
slack
channel
that
you
can
join
and
if
there
is,
if
there's
any
questions,
we
we
available
there
to
help
with
anything
now
building
using
anything.
A
B
So
we've
got
the
demo
here.
Have
you
seen
demo
by
the
way
who
hasn't
seen
it?
Let's
start
with
that,.
B
G
B
Calendar,
oh
and
this
is
demo,
can
can
you
see
this
demo
screen
right?
Yes,
so
this
this
is
the
url,
it's
triquesdb
dot
io
and
it
runs
on
port,
nine,
nine
thousand,
so
just
gonna
reload
the
page.
So
it's
there
right
yeah.
So
so
what
you
can
do
here.
So
what
we
have
here
is
a
bunch
of
queries
that
you
can
run
and.
B
B
It's
it's
1.6
billion
plus
records
in
the
database
so
and
I'm
just
going
to
show
you
some
of
the
it's
not
the
biggest
database
in
the
world,
but
it's
sort
of
it's
okay,
for
I
guess
for
for
a
demo,
and
one
thing
is
like
one:
what
the
mentioned:
cmd
instructions
right
like,
for
example,
there
is
this
query:
it
calculates
of
of
a
single
column,
from
from
a
table
right
so
and
and
and
this
is
execution
time.
B
Yes
here
I
can't
select
this
yeah
211
millis
and
then
this
is
the
result.
This
is
not
this.
This
is
not
a
canned
canned
query
generally,
not
the
can
rather
result,
so
you
can.
You
can
run
it
on
any
other
column
generally,
but
this
this
kind
of
illustrates
if
we
run
it
again,
it's
probably
faster
because
it's
a
bit
warmer
data.
B
B
Kind
of
illustrates
the
partitioning
as
well
like
you
can,
for
example,
pick
a
query.
That's
just
basically
pick
this
query
right.
So
this
this
is
a
a
filter
and
this
filter
would
take
all
the
data
that
that
just
belongs
to
this
one
day
or
one
months
rather,
and
and
and
this
is
the
performance
of
finding
finding
all
this
all
these
records
for
2.7,
milliseconds,
right
and
and
you
can
you
can
you
can
tweak
it.
B
For
example,
if
you,
if
you
for
sake
of
argument
like
find
another
month's,
I
don't
know
months
three,
so
it
doesn't
get
basically
much
slower.
So
you
can
change
this
or
you
can
do
say
you
can
get
entire
year.
For
sake
of
argument.
B
That's
that's
the
number
of
records
it
returns.
110
million
in
17
milliseconds,
are.
B
Yeah,
so
you
can
do
basically
say
you
can
do
months,
two
and,
and
what
you
can
do
is
you
can
do.
I
think
I
didn't
remember
syntax.
I
think
I
think
one
month.
I
think
that
that
start,
so
it's
gonna
do
months,
two
and
three
together
so
like
this
is
this?
Is
the
month
number
two
and
if
I
go
at
the
bottom.
B
Oh,
that
didn't
bottom,
oh
yeah!
This
is
the
this
is
the
month
three.
I
don't
know
if
you
can
see
this,
it's
2008.03
so
this
this.
Basically,
this
is
a
format
for
for
implicit
range.
So
this
is
the
starting
point,
and
this
is
the
the
the
interval
lengths
right
or
you
can
do
it
conventionally.
For
example,
you
can
do
you
can
do
this
and
and.
E
B
20
20
20
20,
so
we
can
run
this
is
this
is
gonna
pick
four
months
so,
let's,
if
we
go
down
to
the
bottom
yeah-
and
this
is
the
yeah-
this
is
the
month
number
four
circulars
and
blah
blah
blah.
So,
let's
test
the
query
and
the
execution
time
is
still
low
generally
to
two
minutes
and
this
this
basically
what
this
does.
It
does
two
things.
B
First,
the
data
is
partitioned
by
by
month
and
if,
if
the
optimizer,
when
it
sees
the
date
range,
it
tries
to
first
work
out
partitions
that
need
to
be
lifted
in
memory
right
and
if
I,
for
example,
find
this
there's
a
top
of
the
partition
need
to
be
lifted
top
of
partition,
one
and
bottom
of
partition
two.
B
It
knows
basically
how
many
rows
in
each
partition-
and
it
just
starts
lifting
data
without
even
searching
for
things
that
that's
that's
the
time
partitioning
is,
if
you,
if
you
add
like
a
day,
for
example,
you
can
add,
like
I
don't
know,
zero
three
and
you
can
go
say
and
the
time
say,
twenty
two:
zero,
zero.
That's
just
for
sake
of
argument
this.
This
will
go
inside
the
time
column
and
do
binary
search
to
see
where
the
data
begins
and
and
that's
execution
time
it's
slightly
longer.
B
It's
20
milliseconds
because
it
just
does
a
bit
more
work
generally.
To
do
that,
and-
and
this
is
this-
is
the
start-
interval
that's
the
basically
where
it
begun,
so
that
that's
the
interval,
searches
and,
and
then
you
can
do
things
like,
I
think,
with
within
flux.
You
can
do
this
so,
for
example,
and
this
query
I
know
this
doesn't
do
this,
there's
that
I'll
just
pick
you
yeah,
okay,
so
this
this
is.
This
is
a
good
one
right.
B
So
what
this
query
does
and
it
takes
a
seven
day
interval
here
and
samples
counts
by
one
hour
within
within
those
intervals.
It's
it's.
It's
basically
effectively
aggregation
of
the
data
by
time
and
you
specify
a
specified
time
interval
like
this
right.
B
So
if
I
run
it,
that's
execution
time,
it's
a
bit
longer,
64
millis,
but
you
get
hourly
hourly,
counts
and
and
this
something
you
can
plot
with
wooden
flux,
sorry
with
grafana,
so
you
can,
you
can
run,
have
grafana
run
this
query
and
they
will
plot
these
values
and-
and
you
can
vary
this
one
hour-
is
not
a
fixed
entity.
So
you
can
say
I
will
not
do
you
by
four
hours.
Just
for
sake
of
argument.
B
Oh
well,
it's
a
bit
it's
a
bit
longer.
Actually
there
was
a
networks
network
latency
here,
18
millis
for
some
reason,
but
yeah
so
yeah.
So
this
this
does
it
by
for
our
interval.
I
don't
know
if
you
can
see
see
my
screen
well
in
terms
of
like
kind
of
font,
size
and
stuff.
If
you
can
see
all
these
numbers,
I'm
highlighting
they
do
shout
if
you
can't
see
it
like
it's
yeah
and
it
doesn't
have
to
be,
it
doesn't
have
to
be
hours,
so
you
can
do
say
one
one
day.
B
It's
basically
saying
same
thing,
so
you
get
fewer
days.
Obviously,
because
interval
is
is
basically
seven
days.
It's
actually
add
seven
here.
So
it's
eight.
So
it's
a
bit
it's
a
bit
of
a
weird
mask,
so
you
can
do
like
six
plus
six,
so
you
can
get
seven
seven
rows,
including
the
first
one.
That's
that's
the
count
and
and
generally
date,
other
databases
like
like,
for
example,
postgres.
B
They
would
go-
and
I
think
I
think
time
scale
posted
this
article
to
say,
like
we
pre-calculate
all
the
different
aggregations
like
you
would
calculate
by
sort
of
months,
we
calculate
by
day
you
calculate
by
whatever
right.
So
this
this
is
real
time.
You
don't
really
need
to
pre-calculate
anything.
This
is
this
is
the
results
you
get
just
by
kind
of
struggling
charts.
Well,
you
get
the
response.
B
Sub
sub
10,
some
sub
100
milliseconds
generally,
so
it's
gonna
be
pretty
so
pretty
easy
to
not
pre
calculate
stuff
yeah.
So
that's!
That's
the
that's
the
that's!
This
query
sampling
query
and
these
other
queries
like
this
interesting
time,
series
query
and
what
this
does.
Let
me
just
close:
this
window
stay
dangling
unnecessarily
and
what
this
does
it
takes
one
day
of
data
right,
one
day
of
data
and
and
then
joins.
B
This
is
called
as
of
join
and
it
joins
weather
to
this
data
and
and
what,
as
of
john,
does
actually
say.
For
example,
the
the
ride
was,
I
don't
know,
10
10
10
a.m
in
the
morning
right
and
and
your
data
reading
could
be
not
necessarily
10
a.m
exactly.
It
could
be
like
9
55
a.m
right
and
this,
as
of
join
effectively,
takes
the
very
latest
reading
from
this
table.
B
This
is
this
is
in
in
part
thanks
to
the
to
the
kind
of
only
one
day
selection.
If,
if
we
kind
of
select
like
a
year,
they'll
take
a
little
longer,
but
not
not
too
much,
I
mean
they
didn't
actually
take
any
longer.
So
there
you
go
so-
and
this
is
this
is
this-
is
this
is
actually
data
you
can
scroll
through?
This
is
I'm
just
kind
of
sleeping
on
page
down
button
here,
so
it's
kind
of
scrolling
and
stuff.
B
So
it's
sort
of
it's
it's
the
actual
data
you
can
you
can
you
can
see
that
that
said,
the
not
all
of
the
queries
are
super
optimal.
We
kind
of
still
need
to
do
some
work
on
optimizer.
B
We
need
to
do
some
work
on
the
filtering
kind
of,
if
you,
for
example,
if
you
filter
by
amount
here
fair
amount
in
the
whole
table,
it
will
take
longer
because
the
access
to
the
data
for
the
filtering
is
raw
based.
It's
not
kind
of
it's,
not
multi-threaded
single
single
threaded
row
based,
but
we're
looking
in
upcoming
releases.
While
we
every
every
query
into
pieces
and
we're
gonna
make
filter
multi-threaded.
B
So
it's
gonna
execute
pretty
much
like
like
the
queries
I'm
showing
and
showing
you.
So
it's
not
it's
not
all
ideal.
So
what
I'm
trying
to
say
effectively,
we've
got
some
queries
that
we
implemented
they.
They
use
row
based
access
to
data
and
single
threaded.
Some
other
queries
have
been
tweaked
to
use
concurrency
and
simmed.
B
So
even
if
those
those
with
concurrency
and
seem
going
to
be
way
way
faster
than
row
and
row-based
queries,
so
that's
the.
I
guess
that's
what
I'm
trying
to
say
yeah.
So
this
demo
is,
as
I
say,
it's
live
you
you
can.
You
can
just
run
exactly
the
same
queries
yourselves
and
yeah.
If
you,
if
you
have
any
any
any
any
questions
so
far,
I'd
be
really
really
happy.
A
I
have
one
what
happened
what's
what's,
hiding
underneath
the
chart
top
next
to
the
grid?
A
B
Yeah,
so
so
this
I
just
switched
there,
so
it
builds
the
chart
automatically
from
the
query
you
have.
It
took
a
while
to
build
it
because
they
included
like
a
year
here.
It's
a
year
worth
of
data
and
there's
110
million
rows
right.
It
took
a
few
seconds
to
plot
this
chart,
but
this
is
the
this
shows.
B
I
guess
the
colors
here
a
little
bit
off.
It
shows
fair
amount
temperature
in
wind
direction
on
the
same
chart.
It's
a
bit,
it's
a
bit
a
bit
strange,
but
you
can,
for
example,
I
don't
know,
may
make
it
less
dense,
so
yeah,
let's
make
it
like.
I
don't
know
like
one
day,
I
don't
know
20
seconds
away.
Bro.
B
And
then,
if,
if
I
draw
this,
it's
a
little
bit
a
little
bit
faster,
but
oh
yes,
it's
not
it's
not
very
good.
Basically
I
I
wasn't.
I
did.
I
didn't
prepare
the
child,
but
the
idea
is
you
can
yeah
you
you
can
you
can
pick
the
values
from
a
query
and
it
would
put
time
series
access
basically
time
time
stamp
on
a
kind
of
x
axis
and
all
of
your
non-timestamp
values
on
y-axis
and
then
yeah
here
you
can
see
all
these
three
three
three
things
drawn
on
the
same
scale.
A
Maybe
maybe
show
the
weather
example
like
10
years
of
new
york
city
weather
data.
I
think
this
graph
is
a
little
more
a
little
better
to
showcase,
maybe.
B
Be
honest,
cool,
so
yeah,
so
this
is
this
this.
This
is
this
data
at
least
this
data
is
comparable
in
terms
of
scale
right,
so
it
kind
of
draws
kind
of
it
draws
well.
So
this
this
chart
is
not
super
sophisticated
to
be
honest,
and
we,
if,
if
you,
if
you
do
kind
of
need
more
sophisticated
charts,
this
is
why
we're
trying
to
connect
with
db
to
grafana,
because
grafana
is
a
lot
better
at
drawing
charts
than
we
do.
B
This
is
just
I
don't
know
just
just
provide
another
angle
in
the
data
rather
than
grids,
you
know.
So
it's
it's
not
perfect,
but
yeah
this.
This
is
where
the
data
looks
pretty
pretty
cool,
just
because
it's
on
the
same
scale,
and
we
need
to
sort
out
this
timestamp,
so
we're
gonna
print
these
timestamps
with
a
lot
of
zeros,
so
we'll
fix
that.
A
Yeah,
I
think
I
think
this
really
adds
something
to
the
interface,
because
I
I
personally
I
can
read
the
long
grid
with
columns
and
data,
but
after
sometimes
you
get
like
tired
of
it,
and
you
want
to
see
some
graphical
representation
and
for
for
quick
debugging
or
for
quick
analysis.
I
would
say
having
a
simple
interface
is
best
because,
in
my
opinion,
grafana
has
too
many
options
sometimes,
and
you
get
lost
in
the
interface.
A
What
data
you
want
to
see
having
a
quick
look-
and
I
could
imagine
that
if
you,
for
example,
have
that
available
with
a
persistent
url,
you
could
embed
the
charts
into
gitlab
issues
or
something
else
for
incident
management
as
well,
not
having
to
install
grafana,
for
instance.
But
you
have
your
own
charts
and
I
do
know
that
promisius
also
has
a
simple
web
ui
based
on
on
react.
I
think
so
it's
it's
just
when
you
want
to
or
maybe
think
of
exporting
a
png
or
even
a
pdf.
This
could
be
super
useful.
A
If
you
just
query
the
api
and
say
hey,
I
want
to
have
a
png
right
now
with
the
latest
time
series
set,
which
is
defined
via
query,
and
you
don't
need
any
external
dependencies.
It's
just
quest
db
and
nothing
else.
B
D
I
got
also
another
question
regarding
the
notification
block,
so
is
there
also
currently
an
option
in
the
ui
that
I
can
block
for
notification
when
I
press
the
run
button,
because
when
you
press
it
a
lot
of
times
in
the
first
time,
your
browser
will
be
blown
by
all
the
notification
poetry
how
long
it
takes
for
tree.
B
B
B
B
C
B
G
A
B
Cool
but
yeah,
I
don't
know,
I
didn't
have
a
chance
to
say
to
you
that
we're
kind
of
very
grateful
for
for
you,
organizing
this,
it's
it's
it's
it's.
B
It's
really
really
really
good
to
you
to
see
that
you
guys
kind
of
even
a
little
bit
kind
of
interested
and
then
what
we'll
do,
and
thanks
for
tuning
in
and
and
yeah,
and
we
we
wanted
basically
to
we
want
to
to
help
you
in
in
some
ways
and
if
db
can
be
helpful
or
something
works,
something
doesn't
we
we're
happy
to
just
go
ahead
and
implement
things
they
like.
Just
I
don't
know.
If
you
didn't
know,
the
sequel
stuff
is
also
is
part
of
our
code
base.
B
It's
not
the
library
is,
is
we're
fully
in
control
of
the
syntax
error,
reporting
against
it
and
everything,
everything
and
anything
here,
so
we
we
think
this
sort
of
time
aggregation
like
that.
It's
it's
it's
a
little
bit
simpler
than
you
would
do
in
in
other
systems.
In
terms
of
just
you
write
less
text
generally,
that's
just
the
goal.
If
we
can
do
something
to
to
reduce
text
that
you're
right,
it's
yeah,
it's
it's
something
that
yeah
some
something
we
can
like.
Just
for
sake
of
argument.
What
we
can
do
is
this.
B
This
whole
whole
of
the
select
from
is
optional
than
if
you
didn't
know,
so
you
can
just
run
this
and
oh,
it
goes
in
the
chart
but
yeah.
So
it
just
selects
from
this
table
yeah
and
yeah.
We
can.
We
can
manipulate
syntax
in
a
way
that
makes
your
life
easier
generally
and
there's
also
optimizer.
B
We
can
tweak
optimizer,
there's
quite
a
lot
of
funky
stuff
like
moving
around.
Basically,
the
goal
of
optimizer
is
to
okay.
Let
me
just
rephrase
it
so.
The
way
query
is
executed
is
like
a
it's,
a
it's
a
daisy
chain
of
of
of
code.
B
So
there's
a
there's
one
piece
of
code:
the
sources
data
there's
another
code
that
takes
kind
of
input
from
the
first
code
and
the
third
code
takes
in
input
from
this
second
one
and
like
the
data
chain
right
and
the
goal
of
optimize,
is
to
reduce
the
input
from
from
the
first
source
of
data,
so
the
the
consequent
kind
of
pieces
of
code
process
less
data
first
idea,
so
it's
fairly
aggressive
that
kind
of
very
restructured
in
the
sequel
to
achieve
that.
Generally,
so
yes,
that's
the
thing.
So
we
can.
B
We
can
work
in
this
optimizer.
To
do
things
even
further,
and
and
also
we
kind
of
one
of
the
things
we
wanted
to
do
is
is
to
to
remove
headache
from
trying
to.
If
you
have
a
sequel
that
you,
then
you
need
to
like
hint,
it
create
indices
and
whatever
right.
So
all
of
the
execution
you
you
you
saw
here,
they
it
doesn't
rely
on
indexes.
So
it's
just
data
generally,
like
you,
don't
need
to
build
indexes
or
remember
to
build
indexes
that
kind
of
stuff.
B
C
I
had
a
question
about
the
the
I
would
say
unusual
way
to
to
not
using
any
library
and
what
is
the.
What
are
the
main
reasons
you
you
mentioned
that
you
did,
you
can
build
it
really
easy,
but
do
you
also
avoid,
for
example,
standard
container
stuff
from
the
siblasco
standard
library
to
optimize
it
more.
B
Yeah,
so
what
well?
The
bulk
of
the
the
bulk
of
the
code
is
written
in
actually
java.
This
is
java.
This
there's
a
c
library
built
in
there
as
well.
So
the
goal
is
basically
the
reason
we
would
try
not
to
use
libraries
to
avoid
like
a
coupling
issues
right.
So
you
you
could
have
like
you
use
a
library,
but
it
doesn't
necessarily
take
the
data
in
the
format
you
have
it
so
you've
got
to
like
do.
B
Okay,
you,
you,
you
transform
the
data
from
what
you
have
it
to
what
the
library
understands
that
the
test
is
sort
of
rational
so
that
we
don't
need
to
do
these
transformations.
If,
if
I
have
the
data
here,
whatever
code,
I
write
can
use
this
data
as
it
is.
You
know
it
doesn't
have
to
move
it
anywhere
right
and
that
allows
basically
as
a
void,
in
most
cases,
copying
of
data
generally
without
copying
and
transformation.
That's
that's!
That's
the
main
main
goal
to
tightly
couple
interfaces
between
libraries
that
we
have.
B
B
And
so
the
rest
is
just
over
yeah,
so
basically
we
use
in
in
c
we
we
we
have.
We
have
two
things
so
for
java
usually
comes
with
its
own
libraries
to
you
to
do
with
io
like
if
you
need
to
read
the
file
write.
The
file
interact
with
the
network,
that
kind
of
stuff
right
and
and
those
libraries
are
horrible.
As
far
as
we
can
tell
generally
right
so
so
we
we
use
c
layer
very
thin
c
layer
to
provide
java
with
direct
access
to
operating
system.
B
So
we
bypass
kind
of
like
java
is
very
big
on
frameworks
like
they've
got
like
operating
system,
and
then
they
they
write
their
own
framework
to
deal
with
the
operating
system
right,
so
we
kind
of
removed.
So
we
implode
the
entire
framework
and
we
let
java
call
like
messages
like
read,
file,
write
file
and
we
would
keep
the
signature
of
the
method
consistent
across
multiple
operating
systems.
B
B
Have
you
heard
of
them?
No
all
right!
This
is
he's.
Really
really
is
it's
the
this
this
gentleman
is.
Is
he
I
think
he's
a
is
a
professor
at
the
uni
somewhere,
denmark
or
something
like
that?
But
anyway,
so
he
he
wrote
like
this.
One
library
that
we
use
is
called
vector
library
and
this
library
he
wrote
effectively
c,
plus
plus
templates
for
vectorizing,
arithmetic,
right
and
so
and
and
because
it's
it's
basically
it's
in
line
templates.
It's
it's
a
bailey,
a
library
generally
right.
B
So
it's
just
a
code
that
just
gets
basically
inlined
in
your
in
your
in
your
binary
right,
and
so
we
we
use
that
for
for
cmd.
Generally,
we
use
the
library
because
it
just
if
you,
if
you
if
you
dig
into
cmd,
oh
my
god,
it
can
become
complex
really
really
quickly,
because
because
of
the
cpus,
and
also
this
library
lets
us
basically,
what
we
do
is
we
kind
of
on
the
fly
determine
basically
like,
for
example,
if
you
have
a
method,
there's
some
stuff
right.
B
When
you
build
c
code,
we
compile
several
versions
of
this
method.
For
for
all,
the
instruction
sets
that
we
support
like
for
for
ssc
to
acc
iv,
avx
and
avx2
avx
512,
there's
four
of
them
right
and,
and
we
determine
which
one
to
call
at
runtime
like
when
you.
When
you
start,
we
go
okay.
This
is
avx
512,
compatible
cpu
and
all
the
call
is
going
to
go
to
avx,
512,
routine,
right
and
and
and
the
vector
library
that
they
are
created.
B
Basically
lets
you
template
this
really
easily,
so
you
effectively
write
same
code,
just
compile
it
with
different
flags,
they
will
compile
it
for
hdc2
and
the
same
code
would
compile
it
for
for
different
instruction
instruction
set.
So
it's
really
really
good.
It's
really
is
it's
not
it's
not
complete.
You
can't
do
all
things
with
it
generally.
B
So
there's
a
few
things
that
yeah
few
things
that
we
kind
of
need
to
extend
it
for,
but
generally
is
it's
amazing,
yeah
amazing
piece
of
code-
and
I
just
can't
recommend
it
enough
if
you
want
to
use
them
yeah.
C
That
was
my
my
next
question,
because
I
am
in
the
in
the
situation
now
that
I
have
to
build
some
the
instruction
to
a
high
performance
computing
system,
and
this
was
the
question:
what
do
you
use
and
how
do
you
deal
with
this?
B
B
Here
this
is
his
name
and
it's
called.
G
C
I
think
I
found
it:
okay
in
github,
recoder,
slash
vector
class.
B
C
B
One
other
thing
we
used
c4:
we
we
basically
stole
idea
from
from
google's
swiss
table.
I
don't
know
if
you
have
this
and
it's
basically
it's
it's
it's.
It's
quite
well
optimized
version
of
a
hashmap
and
we
use
it
for
for
aggregation
generally
and
the
way
it's
optimized
pretty
much.
You
know
how
to
explain
it.
So
so
you
when
you,
when
you
store
your
keys
like
in
a
hash
map
right,
so
what
it
does
is,
basically
is
it
stores
in
in
the
hash
map.
B
It's
those
in
the
dense
way,
a
hash
code
of
every
key
that
you
you
have
in
it
like
in
blocks
like,
for
example,
you've
got
16
hash
codes
right
and
what
you
then,
do
you
calculate
if
you
need
to
find
something
in
in
the
map
you,
you
calculate
hash
coding
on
a
key
and
then
using
sims
instruction.
You
search
16
hash
codes,
all
at
the
same
time
to
see
which
one
matches
you
know
and
then
and
then
those
that
you
match.
B
B
Yeah,
so
this
this
would
use
it
so
average
distance
per
passenger
count
right
it.
We
also
use
it
multi-credit
in
multi-strategy
way,
so
we're
gonna
build
basically
20
hash
maps
at
the
same
time,
pretty
much
and
then
merge
them
together.
But
that's
that's
the
thing
and
that's
the
execution
time.
It's
not
super
fast,
but
it's
a
half
a
second
to
do
that.
Yeah!
It's
1.6
billion
rows
again,
you
know.
B
So
that's
the
that's
the
best
thing
it's
pretty
good
and
we
we
have
our
own
implementation
of
of
that.
We
basically,
I
think
I
think
this
map
comes
from
a
project
called
tool.
It's
a
google's
project,
yeah.
If
you
had
a
list
what
what
I
found
that
sort
of
I
mean
you
can
use
it
verbatim,
but
they
the
this
project,
sort
of
serves
almost
needs
of
google
right.
So
the
way
they
they
stuff
they
templated
in
it
like.
Oh,
my
god,
we
don't
need
half
of
it.
B
If
you
look
at
this
jesus
christ,
this
is
like
this
is
a
lot
of
code.
You
know,
and
we
just
implemented
our
own-
that
again
suits
our
data
and
not
not
necessarily
what
I
need
to
conform
to
google's
formats.
You
know
that
kind
of
stuff.
B
Cool,
that's!
That's!
That's
all
I
really
have
really
to
show,
and
if
you,
if
you
guys,
have
any
more
questions,
I'm
obviously
to
you
to
answer
any
of
them.
If
I
can.
D
B
Yeah,
so
the
clustering
clustering
is
in
progress,
so
we
we
basically
they
we
implement
in
it.
It
sits
on
a
branch
called
replication.
It's
not
it's
not
fully
ready,
but
it's
it's
coming
generally.
B
We
we
kind
of
aim
to
build
a
simple
replication
right
now.
It's
not
it's
not
clustered
in
the
sense
of
sharding.
So
it's
not
going
to
put
half
data
on
one
node,
half
from
the
other
you're
just
going
to
replicate
the
data
across
multiple
nodes
and
we
kind
of
wanted
to
to
build
it
like
super
efficiently
and
when
I
say
super
efficiently,
so
the
idea
that
we
we
lack
kind
of
stuff
and
what
we're
building
for
clustering.
B
We
when
we
ingest
data,
we
ingest
data
in
a
row,
kind
of
row,
row
format
so
kind
of
one
row
after
the
other
right
and
for
clustering,
we're
building
column
first
ingestion
like
it
would
ingest
basically
like
if
you,
for
example,
have
20
columns.
You
will
insert
20
columns
at
the
same
time,
it
would
just
basically
kind
of
write
these
columns
independently
and
and
if
you
have
partitions,
they
will
write
partitions
independently
so
and
we'll
build
a
mechanism
for
for
you
to.
B
B
We
will
send
basically
all
the
data
or
as
much
data
in
parallel
as
possible
and
and
we're
gonna
leverage
this
mechanism
to
ingest
it
simultaneously
in
the
table,
so
we
just
want
to
make
it
super
fast.
That's
that
that's
why
it's
taking
taking
a
while,
you
know.
A
I
I
I
think
we
discussed
last
week-
maybe
a
little,
maybe
showing
the
road,
but
for
next
year
or
something
like
that,
so
giving
giving
everyone
a
little
heads
up
and
an
outlook.
What's
what's
coming,
what's
cooking.
B
Oh
good,
I've
prepared
it,
but
I
I
need
to
dig
it
up.
Basically,
so
we,
what
we
want
to
do
is,
I
guess
one.
One
thing:
that's
an
on.
The
road
map
is
is
replication,
because
this
is
this
is
something
that
is
is
is
highly
anticipated
in
database
community.
We
know
that
this
is
this
is
this
is
really
really
needed,
and
this
is
what
we're
building
first
and
foremost
and
yeah.
B
B
Yes,
jesus
christ.
This
is
this
is
hilarious,
guys
because
out
of
order
is
something
I've
been
doing
this
morning.
Continuing
to
do,
I
forgot
even
forgot
about
that.
You
know
so
so
right
right
now,
basically
out
of
water
takes
takes,
takes
a
while.
So
what
the
limitation
that
we
have
is
your
data
that
you
ingest
need
to
be
in
timestamp
order?
That's
that's
the
that's!
That's
the
limitation,
which
we
consider
to
be
pretty
serious
one
generally
yeah
so,
and
what
we're
building
is
ability
to
insert
data
in
any
order
right
and
what
what
that
means.
B
Basically
is
what
that
effectively
means.
You've
got
your
target
table.
You've
got
your
source
source
data.
Your
source
data
can
be
kind
of
messed
up
in
any
way.
In
any
way
you
want,
and
when
you
insert
it,
you
will
be
reordered
and
put
in
time
series
as
it
lands
in
the
table.
So
that's
that's.
That's
the
idea-
and
this
is
this-
is
roughly
50
complete
and
we
really
came
to
you
to
finish
this
nick.
If
you
have
any
other
reminders.
I'd
welcome
those
you
know
because
I'm
like
you
know.
A
A
Sorry,
I
was
just
referring
to
the
out
of
order
idea,
because
I
think
we
had
that
problem
in
the
past
with
so,
for
instance,
you
have
monitoring
system
which
writes
metrics
and
then
the
node
is
being
shut
down
and
after
a
while,
you
have
some
replication
data,
so
you
want
to
keep
the
older
events
and
you
also
want
to
insert
them
into
a
time
series
database
and
with
rrd
tool.
A
This
isn't
possible
because
you're
dependent
on
the
time
series
inserted
in
order
with
graphite,
you
can
do
it,
but
graphite
is
horror,
is
a
little
slow
in
that
regard,
and
I
think
that
could
be
the
same
with
quest
db.
Am
I
right.
B
Yes,
so
the
quest
db,
wouldn't
let
you
do
that
generally?
Would
you
would
force
you
to
to
kind
of
insert
time
stamp
another
right
now
it's
going
to
refuse.
You
cannot
insert
vectors
out
of
water.
That's
that's
the
issue.
Yeah
we're
kind
of
building
building
something
to
overcome
that
like
completely
and
it's
it's
going
to
be
transparent.
B
You
would
insert
data
from
by
any
means
you
you
currently
do
like
in
flux
line,
protocol
or
anything
else,
programmatically
postgres,
anything
and
all
of
these
things
would
use
the
out
of
order
system
and
also
there's
we're
building
it
in
such
a
way.
It
does
not.
It
will
not
impose
limitation
on
what
kind
of
data
goes
in
I
mean,
for
example,
you
would
be
able
to
insert
data
like
10
years
old
data
together
with
with
last
second
data,
and
they
will
go
in
generally.
B
That's
the
thing
and
and
not
only
that
we
we're
building
it
to
be
hugely
parallel
as
well.
So
it's
gonna,
it's
gonna,
insert
multiple
partitions,
multiple
columns,
columns,
split
into
three
pieces
say
for
sake
of
argument
like
if
you've
got
five
columns
and
two
partitions
right.
He
will
parallelize
this
to
two
to
a
degree
of
30..
A
Sorry,
I
would
recommend
to
put
a
strong
marketing
focus
on
that,
because
I
can
see
there's
a
business
need
with
having
a
replay
log
or
something
like
that
on
my
my
sql
bin
log,
or
something
like
that,
and
there
will
always
be
a
possibility
to
have
some
old
data
which
needs
to
be
inserted,
and
I
think
this
is
a
key
feature
which
your
customers
and
your
users
will
love.
I
would
say.
B
Yeah
yeah:
well,
it's
it's!
The
thing
is
it's
been:
it's
been
kind
of
a
little
bit
of
a
bane
of
our
lives
this
out
of
all
the
stuff.
That's
why
some
marketing
at
all
we're
just
excited
to
have
it
and
and
and
the
the
the
reason
I'm
so
super
excited
about.
It
is
because
I've
been
working
on
it
for
like
two
months
non-stop.
You
know
this
is
just
like
you
know
it
needs
to
yeah
it
just.
I
can't
can't
wait
to
see
it
done.
B
You
know,
but
but
the
we
sort
of
what
we
do
is
also
like
the
the
way
we
the
way
we
ended
up
doing
it.
It's
a
bit
of
a
bit
of
a
trial
and
error,
and
I'm
sort
of
very
excited
to
do
it
really
fast
with
basically
what
we
aim
to
do.
We
we
can
insert
we
wouldn't
be
able
to
insert
a
million
records
in
in
about
under
100
milliseconds,
totally
out
of
all
the
records
right.
So
that's
that's!
B
B
There's
none!
So
you,
after
that,
you
retrieve
data.
You
there's,
there's
no
tax,
whatever
it's
going
to
be
as
fast
as
this
demand,
so
it's
not
going
in
in
the
in
emergency,
like,
like
other
databases,
put
it
in,
so
we
reorder
it
on
the
fly
and
put
it
in
in
it.
It
lands
basically
neatly
in
the
in
the
time
stamp
order.
E
Oh
yeah,
I
mean
you
know
more
generally,
we're
we're
building,
you
know,
features
and
integration,
which
will
be
part
of
our.
E
You
know,
enterprise
offering,
which
we
call
pulsar
for
now-
and
this
is
going
to
be
part
of
you-
know,
sort
of
open
core
model
approach,
and
you
know
the
idea
really
is
to
one
push
quest
db,
open
source,
as
you
know,
widely
as
possible
and
really
like
triple
charge
usage
of
the
free
products,
and
then
this
enterprise
sort
of
offering
will
use
quest
db
as
a
library
and
will
be
more
suited,
for
you
know
super
large
deployments
at
scale,
which
you
know
we
yeah.
E
We
don't
currently
sort
of
serve
as
of
today.
So
that's
the
sort
of
idea-
and
you
know,
there's
a
lot
around
security
monitoring
and
you
know
also,
even
maybe
you
want
to
touch
on
that
vlad-
a
deep,
different
type
of
replication,
which
will
be.
B
E
B
So
the
the
replication
we're
thinking
of
for
for
for
enterprise
product
is
is
more
geared
towards
it's
basically
cudp
based
reliable
udp
based
replication,
so
it's
more
geared
for
for
setup
where
you've
got
servers
closed
together
generally
and
they
service
kind
of
quite
quite
a
lot
of
requests
together,
but
rather
than
sending
data
with
tcp
and
and
getting
all
of
the
all
of
the
tcp
extra
kind
of
traffic
right,
so
the
udp
duplication
would
multicast
data
to
the
nodes
and
deal
with
max
generally-
and
this
is
this-
is
this-
is
going
to
facilitate
faster
data
propagation
generally
in
the
environment
that
is
just
kind
of
where
it's
it's
gonna
be
the
service.
B
Basically,
they
kind
of
connected
to
the
same,
for
example,
switch
right
like
the
same
fast
switch
right
so,
and
this
is
fairly
fairly
unique
for,
for
I
don't
know
if,
if
you
ever,
if
you
ever
need
something
like
that,
but
but
this
is
this
is
this
is
takes
us
to
maybe
like
18
months,
road
map
or
maybe
24,
even
you
know.
So
our
12
months
roadmap
is
open
source
too.
A
If
not,
I
would
like
to
maybe
wrap
up
or
round
up
thanks
thanks
for
thanks
for
attending
today
and
and
sharing
all
the
amazing
insights.
For
me,
it's
late
now,
I'm
not
trying
it
today,
but
I
might
I
might
do
tomorrow
or
next
week,
and
also
thanks
for
the
insights
in
the
roadmap
and
what's
coming
next
and
how
to
contribute
and
other
things
really
appreciate
it.
A
Maybe
we
just
do
it
next
time
in
a
couple
of
months
and
see
see
how
the
progress
is
or
something
like
that
so
just
stay
in
touch
yeah
and
if,
if
someone
else
is
watching
right
now,
just
reach
out
on
twitter
at
questdb
or
at
gitlab
or
at
the
at
our
handles
like
minus
dns,
michi,
dns,
mickey
yeah
and
just
let
us
know
how
it
goes
when
you
test
drive
quest
db
and
with
that.