Looking for suggestions on how to store Price data using MAN AHL's Arctic Library for 5000 stocks EOD data as well as 1 minute data. Separate solutions for EOD and 1-minute data are also welcome. Once the data is stored, I want to perform the following operations:

Fetch data for a subset of stocks (lets say around 500-1000 out of the entire universe of 5000 stocks) between a given datetime range.
Any update to historical data (data once stored in database) should have versioning. Data prior to the update should not be discarded. I should be able to fetch data as of a particular version/timestamp.

Example format of data:

        Date        Stock        Price
0       d1          s1            100
1       d2          s1            110
2       d3          s1            105
3       d1          s2            50
4       d2          s2            45
5       d3          s2            40
Arctic supports a few different storage engines. The only one that will do what you're looking for is VersionStore. It keeps versions of data, so any update you make to the data will be versioned, and you can retrieve data by timestamp ranges and by version. 
However it does not let you do a subsetting of stock like you want to do. I'd recommend subsetting your universe (say into US, EMEA, EUR, etc) or into whatever other organization makes sense for your use case.
Storing and fetching multiple stocks in Arctic Library