You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Current backend, MSSQL, has its limits in terms of performance and scalability. Storing large number of songs in a database requires a data storage which is easily scalable horizontally, and has a good performance index.
After studying a large number of NoSQL solutions, would recommend MongoDB for the winner. REDIS would fit perfect for a caching layer, as it seems to perform not as well as other NoSQL database systems when stored set exceeds the amount of RAM available on dedicated machine. Possible amount of songs and fingerprints will definitely exceed RAM capacity. CouchDB seems very similar to Mongo. Because we don't really need master - master replication, as the data will be mostly inserted (with no frequent updates), would go for Mongo as well. Other database system has also been analyzed, though mainly these 3 have been considered as good candidates.
Use Aggregation capabilities in order to perform main query on HashTable - HashBin
Add complex index on HashTable, HashBin in order to burst performance
Map data models to the same structure as in MSSQL (connect entities via references)
Would store Album Title as a part of Track to minimize lookups for Album. In case if the album is not known, do not store untitled
Sharding (if required) will be performed over the HashTables (25 elements fit perfectly)
The text was updated successfully, but these errors were encountered:
Cassandra with Hadoop has been chosen as the winner for this particular issue. Implementation is in progress. Vagrant scripts has bee written to start a Cassandra cluster.
Current backend, MSSQL, has its limits in terms of performance and scalability. Storing large number of songs in a database requires a data storage which is easily scalable horizontally, and has a good performance index.
After studying a large number of NoSQL solutions, would recommend MongoDB for the winner. REDIS would fit perfect for a caching layer, as it seems to perform not as well as other NoSQL database systems when stored set exceeds the amount of RAM available on dedicated machine. Possible amount of songs and fingerprints will definitely exceed RAM capacity. CouchDB seems very similar to Mongo. Because we don't really need master - master replication, as the data will be mostly inserted (with no frequent updates), would go for Mongo as well. Other database system has also been analyzed, though mainly these 3 have been considered as good candidates.
The text was updated successfully, but these errors were encountered: