<p>How, if you have a database per client of a web application instead of one database used by all clients, do you go about providing updates and enhancements to all databases efficiently?</p>

<p>How do you roll out changes to schema and code in such a scenario?</p>

[{'answer_id': 35252, 'author': 'travis', 'author_id': 1414, 'author_profile': 'https://Stackoverflow.com/users/1414', 'pm_score': 3, 'selected': False, 'text': '<p><a href="http://www.bittorrent.com/" rel="nofollow noreferrer">bittorrent</a>?</p>\n\n<p>There have been a few web-based versions already (<a href="http://www.bitlet.org/" rel="nofollow noreferrer">bitlet</a>, <a href="http://torrentfreak.com/w3btorrent-a-bittorrent-client-for-your-web-server/" rel="nofollow noreferrer">w3btorrent</a>), and <a href="http://azureus.sourceforge.net/" rel="nofollow noreferrer">Azureus</a> was built using java, so it\'s definitely possible.</p>\n\n<p>Edit: @TonyB is it limited to port 80?</p>\n'}, {'answer_id': 35257, 'author': 'levand', 'author_id': 3044, 'author_profile': 'https://Stackoverflow.com/users/3044', 'pm_score': 2, 'selected': False, 'text': "<p>Please don't use ActiveX... I am so sick of sites that are only viewable in IE.</p>\n\n<p>My actual preference, as a user, in these situations is to download a lightweight .exe file that downloads the file for you.</p>\n"}, {'answer_id': 35258, 'author': 'TonyB', 'author_id': 3543, 'author_profile': 'https://Stackoverflow.com/users/3543', 'pm_score': 0, 'selected': False, 'text': "<p>@travis</p>\n\n<p>Unfortunately It has to be over HTTP inside the users browser.\nI'll update the question to be more clear about that.</p>\n"}, {'answer_id': 35264, 'author': 'jjnguy', 'author_id': 2598, 'author_profile': 'https://Stackoverflow.com/users/2598', 'pm_score': 2, 'selected': False, 'text': '<p>Can you split the files into pieces and then rejoin them after the download?</p>\n'}, {'answer_id': 35280, 'author': 'TonyB', 'author_id': 3543, 'author_profile': 'https://Stackoverflow.com/users/3543', 'pm_score': 0, 'selected': False, 'text': "<p>@levand\nThe problem only exist in IE (it works in Firefox) so while ActiveX would only work on IE, IE is the only one we need the work around for.</p>\n\n<p>@travis - interesting idea.  Not sure if it will work for what I need but I'll keep it in mind.  I'm hoping to find something to integrate with the existing site instead of having to go out to a third party.  It would also require me to setup a bittorrent tracker which wouldn't be as easy as it sounds for this application because different users will have different access to different files.</p>\n"}, {'answer_id': 35289, 'author': 'TonyB', 'author_id': 3543, 'author_profile': 'https://Stackoverflow.com/users/3543', 'pm_score': 0, 'selected': False, 'text': "<p>@jjnguy\nI'm looking for a java applet or ActiveX component that will do that for me.  These are non-technical users so we really just want to have them click download and the full file ends up in the specified location</p>\n"}, {'answer_id': 35291, 'author': 'ceejayoz', 'author_id': 1902010, 'author_profile': 'https://Stackoverflow.com/users/1902010', 'pm_score': 3, 'selected': False, 'text': '<p>@levand:</p>\n\n<blockquote>\n  <p>My actual preference, as a user, in these situations is to download a lightweight .exe file that downloads the file for you.</p>\n</blockquote>\n\n<p>That\'s a dealbreaker for many, many sites. Users either are or <em>should be</em> extremely reluctant to download .exe files from websites and run them willy-nilly.  Even if they\'re not always that cautious, incautious behaviour is <strong>not</strong> something we should encourage as responsible developers.</p>\n\n<p>If you\'re working on something along the lines of a company intranet, a .exe is potentially an okay solution, but for the public web?  No way.</p>\n\n<p>@TonyB:</p>\n\n<blockquote>\n  <p>What is the best way to do this without using FTP.</p>\n</blockquote>\n\n<p>I\'m sorry, but I have to ask why the requirement. Your question reads to me along the lines of "what\'s the best way to cook a steak without any meat or heat source?"  FTP was <em>designed</em> for this sort of thing.</p>\n'}, {'answer_id': 35293, 'author': 'TonyB', 'author_id': 3543, 'author_profile': 'https://Stackoverflow.com/users/3543', 'pm_score': 0, 'selected': False, 'text': "<p>@ceejayoz</p>\n\n<p>I totally agree but its part of the requirement for our client.  There will be FTP access but each user will have the option of downloading via HTTP or FTP.  There are some users that will be behind corporate firewalls that don't permit FTP</p>\n\n<p>I have seen other sites do this in the past (MSDN, Adobe) so I was hoping there is something out there already instead of having to make one in house (and learning java and/or ActiveX)</p>\n"}, {'answer_id': 35296, 'author': 'DevelopingChris', 'author_id': 1220, 'author_profile': 'https://Stackoverflow.com/users/1220', 'pm_score': 0, 'selected': False, 'text': "<p>I say click-once installed download manager, similar to msdn.</p>\n\n<p>But becoming a CDN without a more optimized protocol for the job is no easy task. I can't imagine a business model that can be worthwhile enough to have such large file downloads as a core competency unless you are doing something like msdn. If you create a thick client, you at least get the chance to get some more face time with the users, for advertising or some other revenue model, since you will probably be paying in the hundreds of thousands of dollars to host such a service.</p>\n"}, {'answer_id': 35496, 'author': 'John Meagher', 'author_id': 3535, 'author_profile': 'https://Stackoverflow.com/users/3535', 'pm_score': 0, 'selected': False, 'text': '<p>The problem with the applet approach mentioned is that unless you have the end user modify their java security properties your applet will not have permission to save to the hard drive.  </p>\n\n<p>It may be possible using <a href="http://java.sun.com/developer/technicalArticles/Programming/jnlp/" rel="nofollow noreferrer">Java Web Start</a> (aka JNLP).  I think that if it is a signed app it can get the extra permission to write to the hard drive.  This is not too different from the download an exe approach.  The problem with this is that the user has to have the correct version of Java installed and has to have the Java Web Start capability setup correctly.  </p>\n\n<p>I would recommend the exe approach as it will be the easiest for the non-technical users to use.  </p>\n'}, {'answer_id': 35600, 'author': 'Edmund Tay', 'author_id': 2633, 'author_profile': 'https://Stackoverflow.com/users/2633', 'pm_score': 1, 'selected': False, 'text': '<p>If you don\'t want to write java code in-house, there are commercial applet solutions available:</p>\n\n<ul>\n<li><a href="http://scand.com/products/vault/" rel="nofollow noreferrer">Vault</a></li>\n<li><a href="http://www.javaatwork.com/java-download-applet/details.html" rel="nofollow noreferrer">MyDownloder</a></li>\n</ul>\n\n<p>Both of them have eval versions that you can download and test.</p>\n'}, {'answer_id': 42167, 'author': 'ceejayoz', 'author_id': 1902010, 'author_profile': 'https://Stackoverflow.com/users/1902010', 'pm_score': 0, 'selected': False, 'text': "<blockquote>\n  <p>There are some users that will be behind corporate firewalls that don't permit FTP...</p>\n</blockquote>\n\n<p>Are users with restrictive firewalls like that likely to be permitted to install and run a .exe file from your website?</p>\n"}, {'answer_id': 42211, 'author': 'ckpwong', 'author_id': 2551, 'author_profile': 'https://Stackoverflow.com/users/2551', 'pm_score': 1, 'selected': False, 'text': '<p>A few ideas:</p>\n\n<ul>\n<li>Blizzard use a light-weight .exe BitTorrent wrapper for their patches.  I\'m not entirely sure how it is done, but it looks like a branded version of the official BitTorrent client.</li>\n<li>Upload to Amazon S3, provide the torrent link of the file (all S3 files are automatically BitTorrent-enabled), plus the full HTTP download link as alternative.  <a href="http://docs.amazonwebservices.com/AmazonS3/2006-03-01/index.html?S3TorrentRetrieve.html" rel="nofollow noreferrer">See S3 documentation</a></li>\n</ul>\n'}, {'answer_id': 42225, 'author': 'spoulson', 'author_id': 3347, 'author_profile': 'https://Stackoverflow.com/users/3347', 'pm_score': 0, 'selected': False, 'text': '<p>Take a look at <a href="http://curl.haxx.se" rel="nofollow noreferrer">cURL</a>.  <a href="http://linuxhelp.blogspot.com/2007/03/tip-download-accelerator-for-linux.html" rel="nofollow noreferrer">This article</a> describes how to do a multi-part simultaneous download via HTTP.  I\'ve used cURL in the past to manage FTP downloads of files over 300GB.</p>\n\n<p>Another tip: You can boost download times even more if you increase the size of the TCP Window on the client\'s NIC configuration.  Set it as high as the OS allows and you should see up to 2x improvement depending on your physical network.  This worked for me on Windows 2000 and 2003 when FTPing over a WAN.  The down side is it may increase overhead for all other network traffic that wants only a few KB for a network packet, but is now forced to send/recv in 64KB packets.  Your mileage may vary.</p>\n\n<p>Edit: What exactly is this you\'re trying to accomplish?  Who is the audience?  I\'m assumed for a bit that you\'re looking to do this over your own network; but you seem to imply the client side is someone on the internet.  I think we need clearer requirements.</p>\n'}, {'answer_id': 487722, 'author': 'John Oxley', 'author_id': 24108, 'author_profile': 'https://Stackoverflow.com/users/24108', 'pm_score': 1, 'selected': False, 'text': '<p>What about saying "We recommend that you install <a href="http://www.freedownloadmanager.org/" rel="nofollow noreferrer">Free Download Manager</a> to download this file.  You will have the added benefit of being able to resume the file and accelerate the download."</p>\n\n<p>Personally I never download anything using the built in browser download tool unless I have to (e.g. Gmail attachments)</p>\n'}, {'answer_id': 71879380, 'author': 'hua.jiao', 'author_id': 16850802, 'author_profile': 'https://Stackoverflow.com/users/16850802', 'pm_score': 0, 'selected': False, 'text': '<ol>\n<li><p>Create a folder of files to be downloaded on the server where the document service is running (either using Linux commands or using java to execute shell commands)</p>\n</li>\n<li><p>Write the file to be downloaded to this folder (using Linux command or Java shell command is OK). Considering the efficiency of program execution, WGet command is used here</p>\n</li>\n<li><p>Package the downloaded folder as a zip file (using shell command), configure nginx agent, return the access file path of nginx to the front end, and then download from the front end.</p>\n</li>\n</ol>\n'}]
['https://Stackoverflow.com/questions/35256', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/137/']