Add a test for the shard expiration

pull/376/head
John Shahid 2014-08-07 12:51:17 -04:00
parent 22d02b734d
commit adfbdb0e4e
7 changed files with 58 additions and 0 deletions

View File

@ -147,6 +147,47 @@ func (self *ServerSuite) TestGraphiteUdpInterface(c *C) {
c.Assert(series.GetValueForPointAndColumn(1, "value", c), Equals, 100.0)
}
func (self *ServerSuite) TestShardExpiration(c *C) {
// makes sure when a shard expires due to retention policy the data
// is deleted as well as the metadata
client := self.serverProcesses[0].GetClient("", c)
client.CreateDatabase("db1")
space := &influxdb.ShardSpace{Name: "short", RetentionPolicy: "5s", Database: "db1", Regex: "/^test_shard_expiration/"}
err := client.CreateShardSpace(space)
c.Assert(err, IsNil)
self.serverProcesses[0].WriteData(`
[
{
"name": "test_shard_expiration",
"columns": ["time", "val"],
"points":[[1307997668000, 1]]
}
]`, c)
// Make sure the shard exists
shards, err := client.GetShards()
shardsInSpace := filterShardsInSpace("short", shards.All)
c.Assert(shardsInSpace, HasLen, 1)
time.Sleep(6 * time.Second)
// Make sure the shard is gone
shards, err = client.GetShards()
shardsInSpace = filterShardsInSpace("short", shards.All)
c.Assert(shardsInSpace, HasLen, 0)
}
func filterShardsInSpace(spaceName string, shards []*influxdb.Shard) (filteredShards []*influxdb.Shard) {
for _, s := range shards {
if s.SpaceName == spaceName {
filteredShards = append(filteredShards, s)
}
}
return
}
func (self *ServerSuite) TestRestartAfterCompaction(c *C) {
data := `
[{

View File

@ -50,6 +50,8 @@ dir = "/tmp/influxdb/test/1/raft"
[storage]
dir = "/tmp/influxdb/test/1/db"
retention-sweep-period = "1s"
[cluster]
# A comma separated list of servers to seed
# this server. this is only relevant when the

View File

@ -34,6 +34,8 @@ dir = "/tmp/influxdb/test/2/raft"
[storage]
dir = "/tmp/influxdb/test/2/db"
retention-sweep-period = "1s"
[cluster]
# A comma separated list of servers to seed
# this server. this is only relevant when the

View File

@ -34,6 +34,8 @@ dir = "/tmp/influxdb/test/3/raft"
[storage]
dir = "/tmp/influxdb/test/3/db"
retention-sweep-period = "1s"
[cluster]
# A comma separated list of servers to seed
# this server. this is only relevant when the

View File

@ -73,6 +73,9 @@ dir = "/tmp/influxdb/development/raft"
[storage]
# The server will check this often for shards that have expired and should be cleared.
retention-sweep-period = "10s"
dir = "/tmp/influxdb/development/db"
# How many requests to potentially buffer in memory. If the buffer gets filled then writes
# will still be logged and once the local storage has caught up (or compacted) the writes

View File

@ -47,6 +47,10 @@ port = 60501
dir = "/tmp/influxdb/test/1/raft"
[storage]
# The server will check this often for shards that have expired and should be cleared.
retention-sweep-period = "10s"
dir = "/tmp/influxdb/test/1/db"
[cluster]

View File

@ -32,6 +32,10 @@ port = 60507
dir = "/tmp/influxdb/test/2/raft"
[storage]
# The server will check this often for shards that have expired and should be cleared.
retention-sweep-period = "10s"
dir = "/tmp/influxdb/test/2/db"
[cluster]