Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
InfluxDB - a distributed events and time series...
Search
Paul Dix
April 27, 2014
Technology
2k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
InfluxDB - a distributed events and time series database
Slides from my lightning talk at the GopherCon pre-party.
Paul Dix
April 27, 2014
More Decks by Paul Dix
See All by Paul Dix
InfluxDB IOx Project Update - 2021-02-10
pauldix
0
280
InfluxDB IOx data lifecycle and object store persistence
pauldix
1
730
InfluxDB 2.0 and Flux
pauldix
1
810
Flux and InfluxDB 2.0
pauldix
1
1.5k
Querying Prometheus with Flux
pauldix
1
1k
Flux (#fluxlang): a new (time series) data scripting language
pauldix
7
5.4k
At Scale, Everything is Hard
pauldix
2
780
IFQL and the future of InfluxData
pauldix
2
1.5k
Time series & monitoring with InfluxDB and the TICK stack
pauldix
0
540
Other Decks in Technology
See All in Technology
Code for Security プロジェクト紹介 2026年10月
yu23ki14
0
110
フロントエンドカンファレンス関西2026 - 速すぎるUIに、待ち時間を
teamlab
PRO
0
130
Temporal 最高!でも改めて「日付」について調べたら人類の負債すぎる件
riyaamemiya
0
150
古い指輪から広がった JAVA コミュニティ とのつながり
yamad
0
110
AIカンパニーへの転換を支えた、エンジニアの仕事の再定義
kworkdev
PRO
2
1.2k
会社説明資料
persolserverworks
0
9.8k
分析AIエージェントを育てる、動く環境を育てる
codatum
1
1.1k
DGX Spark でどこまでハッキングができるのか?
kash1064
3
1.3k
アウトプット初心者、半年間のふりかえり
4o1sobblue
0
440
Post AI時代のリファクタリング実践記 / Refactoring in the post AI era
kaminashi
1
240
OptunaHub: ブラックボックス最適化のためのプラットフォーム
pfn
PRO
0
140
hackers_champloo_2026_tidb
makocchi
0
160
Featured
See All Featured
Six Lessons from altMBA
skipperchong
29
4.5k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
320
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
550
Deep Space Network (abreviated)
tonyrice
0
370
Building the Perfect Custom Keyboard
takai
2
910
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
From π to Pie charts
rasagy
1
400
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
77k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
A designer walks into a library…
pauljervisheath
211
25k
Exploring anti-patterns in Rails
aemeredith
4
540
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Transcript
InfluxDB - a distributed time series, metrics, and events database
Paul Dix paul@influxdb.com @pauldix @influxdb
YC (W13), 3 people full time: Todd Persen John Shahid
Paul Dix (me)
What it’s for…
Metrics
Time Series
Analytics
Events
Can’t you just use a regular DB?
order by time?
Doesn’t Scale
Example from metrics: ! 100 measurements per host * 10
hosts * 8640 per day (once every 10s) * 365 days ! = 3,153,600,000 records per year
Have fun with that table…
But wait, we’ll just keep the summaries!
1h averages = ! 8,760,000 per year
Lose Detail and AdHoc Queryability
So let’s use Cassandra, HBase, or Scaleasaurus!
Too much application code and complexity
Application logic and scripts to compute summaries
Application level logic for balancing
No data locality for AdHoc queries
And then there’s more…
Web services
Libraries for web services
Data collection
Visualization
–Paul Dix “Building an application with an analytics component today
is like building a web application in 1998. You spend months building infrastructure before getting to the actual thing you want to build.”
Analytics should be about analyzing and interpreting data, not the
infrastructure to store and process it.
None
HTTP API Web services built in
HTTP API (writes) curl -X POST \ 'http://localhost:8086/db/mydb/series?u=paul&p=pass' \ -d
'[{"name":"foo", "columns":["val"], "points": [[3]]}]'
Data (with timestamp) [ { "name": "cpu", "columns": ["time", "value",
"host"], "points": [ [1395168540, 56.7, "foo.influxdb.com"], [1395168540, 43.9, "bar.influxdb.com"] ] } ]
HTTP API (queries) curl 'http://localhost:8086/db/mydb/series?u=paul&p=pass&q=.'
SQL-ish select * from events where time > now() -
1h
SQL-ish select * from “series with weird chars ()*@#0982#$” where
time > now() - 1h
Where Regex select line from application_logs where line =~ /.*ERROR.*/
and time > "2014-03-01" and time < "2014-03-03"
Only scans the time range Series and time are the
primary index
Work with many series…
Select from Regex select * from /stats\.cpu\..*/ limit 1
Downsampling on the fly…
Aggregates select percentile(90, value) from response_times group by time(10m) where
time > now() - 1d
Continuous Downsampling…
Continuous queries (summaries) select count(page_id) from events group by time(1h),
page_id into events.[page_id]
Series per page id select count from events.67 where time
> now() - 7d
Continuous queries (regex downsampling) select percentile(value, 90) as value from
/stats\.*/ group by time(5m) into percentile.90.:series_name
Percentile series per host select value from percentile.90.stats.cpu.host1 where time
> now() - 4h
Denormalization for performance
Range scans all user events for last hour select *
from events where user_id = 3 and time > now() - 1h
Continuous queries (fan out) select * from events into events.[user_id]
Series per user id select * from events.3 where time
> now() - 1h
Distributed Scale out, data locality, high availability
Raft for metadata We owe Ben Johnson a beer or
three…
Protobuf + TCP for queries, writes
Scalable Have billions of points in 1 series* or a
million different series
Libraries Go, Ruby, Javascript, Python, Node.js, Clojure, Java, Perl, Haskell,
R, Scala, CLI (ruby and node)
Visualization
Built-in UI
Grafana
Javascript library + D3, HighCharts, Rickshaw, NVD3, etc. Definitely more
to do here!
Data Collection CollectD Proxy, StatsD backend, Carbon ingestion, OpenTSDB (soon)
Coming Soon
ugh, Documentation
Series Metadata
Binary Protocol
Pubsub select * from some_series where host = “serverA” into
subscription() select percentile(90, value) from some_series group by time(1m) into subscription()
Custom Functions select myFunc(value) from some_series
Rack aware sharding and querying
Multi-datacenter replication Push and bi-directional
Indexes?
Ponies? Tell @jvshahid that you want your pony ;)
But it’s ready to go now. Production deployments already running.
Need help? support@influxdb.com Thanks! paul@influxdb.com @pauldix