Posted 15 June 2012 - 05:31 AM
As I mentioned, running in Compatibility Mode (as we call it) produces exactly the same backup zip archive files as would be produced using the native zip command through the exec() function but necessarily because this mode has to rely more on PHP scripting it is always going to be slower. The actual compression of files that are put in the zip archive is still done by standard libraries and _not_ PHP scripts so that aspect is really no different, but the "assembling" of the zip archive is done at the PHP level. But this is going to be the same for any solution that would try and use exec() whatever type of compression and archive file creation it uses - if exec() isn't available then _any_ solution has to fall back to less efficient methods instead of the more efficient native operating system utilities.
This inevitably means that (as mentioned above) the zip archive file creation is going to be slower and so whatever timeouts or other resource constraints your host applies will obviously have more of an impact in terms of the size of site that you can produce a Full backup for and that is when you need to use capabilities such as directory exclusion to work within the constraints of your server. There are generally quite a few things that you can leave out of a backup if you have to and they can be archived by alternate methods - basically you have to cut your coat according to your cloth ;-)
There are other techniques we can advise on such as not using compression when creating the zip archive file (although "zip" is commonly thought of to mean compression actually the zip archive format defines both an archive file format and how files _may_ be compressed within that archive by different compression algorithms) which _may_ be faster on a server that is overloaded (processor bound) or simply slow because it cuts out the processor intensive compression component of creating the archive - but of course you do get a larger archive file, it's swings and roundabouts. Sometimes this may not work if the server is overloaded in terms of disk activity in which case the limiting factor becomes the actual reading/writing of files.
Additional server constraints that may be important to you might be, for example, are you running on an old 32 bit server but you want to produce backup files >2GB - here you will run into PHP constraints of the representation of integers as 32 bit signed values, or if you want to produce backup files over 4GB then you need to be on a 64 bit server with zip archive creation capabilities with zip64 extensions - none of these are BackupBuddy constraints but constraints of your server that BackupBuddy will try and help you live within - basically BackupBuddy will use the capabilities of your server to give you the best possible outcome within those constraints but it cannot work miracles :-)
But none of this is specific to BackupBuddy as any solution has to work under the same conditions - we just try and make BackupBuddy give you as many options as possible so that you can work around any constraints due to a particular server.
A limitation of BackupBuddy some time back was that the Compatibility Mode did not support directory exclusions and so you had to manage your on-site backups more closely so that you didn't end up with a new Full backup including a previous full backup that was still stored on site and it could also make backups much larger if there were directories that you wanted to exclude but couldn't. So this didn't impact the actual creation of backups but could lead to problems if the backups were not managed properly or there was a lot of stuff on the site not actually part of the site.
However, for some time now (in BackupBuddy Version 2) there has been an option for zip archive creation in which Compatibility Mode _does_ support directory exclusion and so that limitation was removed which very much helped Customers on servers where exec() was not available. This capability is of course also in BackupBuddy Version 3.
From a support perspective we are always very keen on helping Customers find solutions, for example, I recently helped a customer find a way to be able to automatically exclude version control directories from every directory of a development site when the backup was made to move to a live site server and these are the kind of things that we may then roll out into the product for general availability.
I hope this gives you a flavour of what to look out for when choosing a solution - not only the mechanics of how a product works but also what "backup" there is behind the product, thanks.
"Everything will be all right in the end. If it isn't all right yet then it isn't the end."