Go to file
Jason Wilder f4f0373579 Sort points after appending if needed
Writing points that were not sorted by time could cause very high
CPU usages and increased latencies because each point inserted would
cause the in-memory cache to be resorted.  The worst case would be
writing a large batch of N points in reverse time order which would
invoke N sorts of the slice.

This patch keeps track of which slices need to be sorted and sorts
them once at the end.  In the previous example, the N sorts becomes
one.  There is still a pathalogical case that would require N/2 sorts.
For example, 10000 points split across 5000 series.  Each series has two
points that are in reverse time order.  This would incur 5000 sorts still.

Fixes #3159
2015-07-13 10:51:58 -06:00
.hooks commit hook was inaccuratly reporting vet errors due to how we ran vet 2015-02-12 11:17:41 -07:00
client Add GoDoc badge at top of Readme for quick access. 2015-07-08 16:25:59 +02:00
cluster Allow the PointWriter timeout to be configurable 2015-07-02 12:50:12 -04:00
cmd Update main.go 2015-07-10 10:27:30 -07:00
etc Updated wal & flush parameters 2015-07-11 12:36:00 -04:00
influxql fix #3102: add authentication cache 2015-06-30 18:29:11 -04:00
meta Set log prefix for Metastore 2015-07-06 12:24:00 -04:00
scripts Avoid backticks and use $() instead. 2015-06-25 19:07:42 +01:00
services making queries syntactically correct 2015-07-08 17:25:56 -06:00
shared/admin Make different variable types print prettier. 2015-07-04 14:56:32 -07:00
snapshot Refactor backup and restore 2015-06-10 22:07:01 -06:00
statik Fix go fmt 2015-07-06 16:14:01 -06:00
tcp Make InfluxDB win32 friendly, fix unit test is failed on the windows 2015-06-10 07:29:08 +08:00
tests Update test scripts to use measurement for JSON 2015-06-02 20:44:11 -06:00
toml Fix spelling errors in comments and strings. 2015-06-28 02:54:34 -04:00
tsdb Sort points after appending if needed 2015-07-13 10:51:58 -06:00
uuid Replace code.google.com/p/go-uuid with TimeUUID from gocql 2015-03-30 09:02:11 -07:00
.gitignore Write path interfaces 2015-05-07 23:12:12 -06:00
CHANGELOG.md Sort points after appending if needed 2015-07-13 10:51:58 -06:00
CONTRIBUTING.md Minor typo in CONTRIBUTING.md 2015-07-06 08:58:56 -04:00
LICENSE update the year in the LICENSE file 2015-01-05 21:35:28 -08:00
QUERIES.md Merge pull request #2765 from influxdb/beckettsean-queriesMD-2 2015-06-25 18:28:10 -07:00
README.md Make quick start example clearer 2015-06-23 16:57:55 -07:00
balancer.go Integrate meta package. 2015-05-29 14:54:04 -06:00
balancer_test.go Integrate meta package. 2015-05-29 14:54:04 -06:00
circle-test.sh Increase CircleCI timeout to 10 minutes 2015-06-09 12:40:11 -07:00
circle.yml Install from binary package. 2015-04-20 15:11:32 -07:00
diagnostics.go Start move to 64-bit ints 2015-04-07 12:58:44 -07:00
errors.go Return field type errors as client write errors 2015-06-10 14:52:26 -06:00
nightly.sh Strip leading v from version for packages 2015-06-25 19:35:47 -04:00
package.sh Switch to target branch after 'go get' 2015-07-01 12:19:35 -04:00

README.md

InfluxDB Circle CI

An Open-Source, Distributed, Time Series Database

InfluxDB v0.9.0 is now out. Going forward, the 0.9.x series of releases will not make breaking API changes or breaking changes to the underlying data storage. However, 0.9.0 clustering should be considered an alpha release.

InfluxDB is an open source distributed time series database with no external dependencies. It's useful for recording metrics, events, and performing analytics.

Features

  • Built-in HTTP API so you don't have to write any server side code to get up and running.
  • Clustering is supported out of the box, so that you can scale horizontally to handle your data.
  • Simple to install and manage, and fast to get data in and out.
  • It aims to answer queries in real-time. That means every data point is indexed as it comes in and is immediately available in queries that should return in < 100ms.

Getting Started

The following directions apply only to the 0.9.0 release or building from the source on master.

Building

You don't need to build the project to use it - you can use any of our pre-built packages to install InfluxDB. That's the recommended way to get it running. However, if you want to contribute to the core of InfluxDB, you'll need to build. For those adventurous enough, you can follow along on our docs.

Starting InfluxDB

  • service influxdb start if you have installed InfluxDB using an official Debian or RPM package.
  • $GOPATH/bin/influxd if you have built InfluxDB from source.

Creating your first database

curl -G 'http://localhost:8086/query' --data-urlencode "q=CREATE DATABASE mydb"

Insert some data

curl -XPOST 'http://localhost:8086/write?db=mydb' \
-d 'cpu,host=server01,region=uswest value=1.0 1434055562000000000'

Query for the data

curl -G http://localhost:8086/query?pretty=true --data-urlencode "db=mydb" \
--data-urlencode "q=SELECT * FROM cpu WHERE host='server01'"