4 ms·
You may also want to consider Aerospike database. Aerospike is an open-source database known for its high performance. If you can represent your timestamp as an
by sunilvirus 12y ago
You may also want to consider Aerospike database.
Aerospike is an open-source database known for its high performance. If you can represent your timestamp as an integer, you can built a secondary index on top and do a range query on it.
The range definition looks something like this:
Filter.range(name, begin, end) )
More details: http://www.aerospike.com/docs/client/java/usage/query/query.html http://www.aerospike.com/docs/client/java/usage/query/query....
The advantages of Aerospike is its going to be superfast as the index is co-located with the data and also the secondary indexes are always updated inline with writes. So, the indexes always reflect the current state of truth. While doing the secondary index query, its follows a scatter gather approach thereby achieving distributed parallelism of the query. More details: http://www.aerospike.com/docs/architecture/secondary-index.html http://www.aerospike.com/docs/architecture/secondary-index.h...
On top of this, if at all you need to perform an aggregation on the secondary query result, you can use the Aerospike's Distributed Streaming Aggregation framework (http://www.aerospike.com/docs/guide/aggregation.html http://www.aerospike.com/docs/guide/aggregation.html). Where you an do the aggregation on the server side itself without pulling all the data to the client. Only the final aggregation happen on the client.