Netflix/Priam — pull request #94 by jasobrown (2012-10-31 21:20:59+00:00)
Title: Replace SDF with joda-time; catch exceptions in the middle of backup process

1) Discovered unsafe use of SimpleDateFormat in AbstractBackupPath. Found it under heavily loaded backup (~100,000 files with LCS cluster) where we were strangely getting NumberFormatExceptions in very odd circumstances (i.e. multithreading through the SDF). Replacing SDF with joda-time implementation and hiding it from external callers; they now call parseDate() and formatDate(). This is thread safe.

In the future, might want to move the date format/parsing to a separate as many invocations of ABP for the formatter are just plain wrong. But for now, let's just solve the threading data-race at hand.

2) Catch any exceptions that occur while uploading. Before this change, the entire backup would stop if there were any problems (see recent change regarding SDF thread data-races). Now, we'll try the overall upload for the file 3 times (an arbitrary value greater than 1), log the failed file, and continue with the rest of the backup upload.