I welcome all discussion on this topic as I feel there is no "right" or "wrong" answer here. It will likely be a list of pros and cons for various implementations.
This is why I love this forum. If you asked this question on SO it would be closed in 2 seconds for being objective. Anyway...
The 1st step is to manage the organization and the "How" for storing and accessing. I strongly recommend using SQL Server's FILESTREAM Storage capabilities to organize your blobbed media on the file system. If you have not heard about it have a look at the
link below:
That only takes care of the "How to physically access and manage" portion of your question. For the actual schema I will also defer to others to chime in to this open-forum question in addition to my experiences below.
Actually I have done exactly what you are doing but maybe not quite to the scale you are mentioning. I have an app that manages thousands of pictures and videos just as you described. In my case everything was organized by Year/Month and that was
really all I needed to do for my requirements. Space is cheap, so I was able to get 100's of GB with no resistance at all that can easily be upped if I needed it. My performance is not impacted by the file system schema I used. You can also share the files
via a IIS site so you could access the files directly via HTTP if desired or needed.
The way I dealt with redundancy was by eliminating it via the associated content meta data. Each media file has associated meta data that could be filtered to prevent duplication of content, but then again your scenario might be different. In the end my
files are rapidly accessible and can be uploaded or downloaded via WCF as well which makes for a really flexible solution in my case.
atconway
All-Star
16846 Points
2756 Posts
Re: Mass Media Storage Architecture
Apr 02, 2012 07:57 PM|LINK
This is why I love this forum. If you asked this question on SO it would be closed in 2 seconds for being objective. Anyway...
The 1st step is to manage the organization and the "How" for storing and accessing. I strongly recommend using SQL Server's FILESTREAM Storage capabilities to organize your blobbed media on the file system. If you have not heard about it have a look at the link below:
FILESTREAM Storage in SQL Server 2008:
http://msdn.microsoft.com/en-us/library/cc949109(SQL.100).aspx
That only takes care of the "How to physically access and manage" portion of your question. For the actual schema I will also defer to others to chime in to this open-forum question in addition to my experiences below.
Actually I have done exactly what you are doing but maybe not quite to the scale you are mentioning. I have an app that manages thousands of pictures and videos just as you described. In my case everything was organized by Year/Month and that was really all I needed to do for my requirements. Space is cheap, so I was able to get 100's of GB with no resistance at all that can easily be upped if I needed it. My performance is not impacted by the file system schema I used. You can also share the files via a IIS site so you could access the files directly via HTTP if desired or needed.
The way I dealt with redundancy was by eliminating it via the associated content meta data. Each media file has associated meta data that could be filtered to prevent duplication of content, but then again your scenario might be different. In the end my files are rapidly accessible and can be uploaded or downloaded via WCF as well which makes for a really flexible solution in my case.