BRIN (Block Range) Indices look really interesting.
Instead of storing the whole B-Tree (and spending time updating it) just store summary of ranges (pages).
This for example, would be great for a time series database that is write heavy but not read as often.
I found these benchmarks here explaining the differences:
http://www.depesz.com/2014/11/22/waiting-for-9-5-brin-block-...
---
Creating 650MB tables:
* btree: 626.859 ms.
* brin: 208.754 ms
(3x speedup)Updating 30% of values:
* btree: 8398.461 ms.
* brin: 1398.711 ms.
(4x speedup)Extra bonus:
* size of btree index: 28MB
* size of brin: 64kb
Search (for a range): $ select count(*) from table where id between 600000::int8 and 650000::int8;
* btree between: 9.574 ms
* brin between: 21.090 ms
---