David Steele
7081c8b867
New model where threads are created early and destroyed late.
...
Backups now work like restores in terms of how jobs are queued.
Split out BackupFile and RestoreFile for easier multi-threading/processing.
2015-04-07 07:34:37 -04:00
David Steele
3f651a8ce8
Unit tests will now work across all installed versions of Postgres.
...
Created a function to list all supported versions. Now used for all version checking.
2015-04-02 22:07:23 -04:00
David Steele
984fceea67
Moved archive functions from pg_backrest.pl and Backup.pl to Archive.pm.
...
Moved Remote code from pg_backrest.pl to Config.pm.
Added version specific code to regression tests and Db.pm.
archive-push checks for duplicate WAL in the archive.
archive-push reads the db sys id to match up WAL to the correct archive.
2015-04-01 15:58:33 -04:00
David Steele
a998119cba
Various option and unit test fixes.
2015-03-24 18:50:14 -04:00
David Steele
a3604bc512
Changed retention section to expire.
2015-03-24 11:43:37 -04:00
David Steele
58d6c37f4a
Changed permission to mode in manifest.
2015-03-23 17:17:43 -04:00
David Steele
8a3c6388b2
Removed WAL from some option names - still waffling on this naming thing.
2015-03-23 16:01:15 -04:00
David Steele
1729fa1c51
Added unit tests for expiration.
2015-03-17 18:31:05 -04:00
David Steele
f4f31302f0
Broke archive-required into two options: backup-wal-check and backup-wal-store.
2015-03-16 14:45:53 -04:00
David Steele
258fb9c6e2
More work on automated docs. Merging this to go back to some feature/bug work for a while.
2015-03-16 14:01:01 -04:00
David Steele
882f068254
All config options can now be provided on the command-line.
...
Lots of name changes, but more thought needed there.
Still needs cleanup.
2015-03-12 12:15:19 -04:00
David Steele
ae6bdecfaf
Split command-line parameter processing out into a separate file. This is in preparation allowing all parameters to be specified/overridden on the command line, with pg_backrest.conf being option.
2015-03-08 13:26:09 -04:00
David Steele
d19baefdb9
Removed db-timestamp-start and stop from manifest. Better to get these values from
2015-03-03 22:33:41 -05:00
David Steele
7509b01e22
Added format to manifest to identify a manifest/dir structure version.
2015-03-03 21:21:07 -05:00
David Steele
f5761a41c1
Modules cleanup.
2015-03-03 10:03:55 -05:00
David Steele
3d0d308a98
Made all warnings FATAL.
...
Fixed one bug that was exposed.
2015-03-03 00:57:20 -05:00
David Steele
c0ec62b131
Fixed bug in File->hash() and removed improper last statements from do loops.
2015-03-02 23:42:55 -05:00
David Steele
7dbb11e8b8
Added buffer-size param and added config validation improvements.
2015-03-02 22:58:32 -05:00
David Steele
8e8f2f3c77
New config options compress-level and compress-level-network to control compression levels.
2015-03-02 20:36:12 -05:00
David Steele
49112eb6d3
Better compression window settings.
2015-03-02 09:46:11 -05:00
David Steele
d874e122aa
Optimized compression to disable headers/crc when the source and destination are both uncompressed.
...
Set different compression levels based on usage.
2015-03-01 23:41:01 -05:00
David Steele
0df1b7c473
Changed file sizes are now detected and stored in the manifest.
...
Remove thread file minimums - they are unrealistic for a real db and hinder unit tests.
2015-03-01 22:43:32 -05:00
David Steele
23102f19e5
All copy() cases generate checksums during copy.
...
Unit tests for bAppendChecksum option for copy().
2015-03-01 22:23:52 -05:00
David Steele
76391dde90
Archive checksums are not calculated in stream.
2015-03-01 16:42:27 -05:00
David Steele
393525d280
Full refactor of binary_xfer.
...
Compression now uses Compress::Raw::Zlib.
2015-03-01 15:17:57 -05:00
David Steele
77bc4238dc
ZLib stuff starting to look good. All references removed from File and using binary_xfer for all de/compression.
2015-03-01 13:41:35 -05:00
David Steele
7ede058b45
Backup checksums are no longer optional.
2015-02-28 20:31:56 -05:00
David Steele
28326d6b4c
File->copy now returns hash and size in all cases, though the local copies are not optimal. They just call hash_size().
2015-02-28 19:07:29 -05:00
David Steele
260a6cb8f1
Working on calculating hash and file size in binary_xfer().
2015-02-28 15:54:49 -05:00
David Steele
0f94476a1f
Changed buffer sizes.
2015-02-28 12:10:50 -05:00
David Steele
f6b9ab7326
Minor param fix.
2015-02-28 10:28:25 -05:00
David Steele
f93c6caec2
Backup/restore copy will be run in the main process when thread-max=1. I've resisted this change because it adds complexity, but I have to accept that threads are not stable on all platforms. Or maybe any platform.
2015-02-28 10:23:33 -05:00
David Steele
d6205d9501
Looks like all unit tests pass - now for a long test run to see if that is really true. And to see if the old lockup is gone.
2015-02-27 23:31:39 -05:00
David Steele
25442655c8
Hash of compressed file is working.
...
Something still broken in binary_xfer because some 0 length archive files are showing up. Investigating.
2015-02-27 18:42:28 -05:00
David Steele
53f783d3fe
binary_xfer compress/decompression working without threads. All unit tests passing. Hooray.
2015-02-27 16:36:40 -05:00
David Steele
c18c629878
Compress looks good, back to decompress.
2015-02-27 14:11:59 -05:00
David Steele
bd44b2c471
Making binary xfer more modular.
2015-02-27 13:48:29 -05:00
David Steele
2506bbb21a
Working on decompression.
2015-02-26 19:12:22 -05:00
David Steele
64e1b1cea7
Simple compression case is working.
...
Still need to implement decompress, handle flags, and do checksum decompression.
2015-02-26 14:16:12 -05:00
David Steele
b9378d94a2
Working on removing threads from instream compress/decompression.
2015-02-26 09:22:05 -05:00
David Steele
d2602a5c07
Tracking down a lockup in the restore threads. It doesn't happen in backup - they are the same except that restore uses the ThreadGroup object. I'm beginning to think that threads and objects don't play together very nicely. Objects in threads seems OK, but threads in objects, not so much.
2015-02-03 20:33:33 -05:00
David Steele
d4aae88bec
Try non-blocking dequeue in backup.
2015-02-02 20:11:32 -05:00
David Steele
d93b246a69
Empty restore queues in a non-blocking way.
2015-02-02 19:34:34 -05:00
David Steele
7f38461c68
Remove ThreadQueue->end(). Not supported on all platforms.
2015-02-02 18:48:33 -05:00
David Steele
bde8943517
Fixes to restore compare unit tests.
2015-02-02 18:33:11 -05:00
David Steele
a6d3b7e1a9
Working on checking restores against the manifest. Current issue is that the manifest does not always record the final size of the file - it may change while the file is being copied. This is fine in principal but makes testing a pain.
2015-01-31 23:04:24 -05:00
David Steele
018a2afaca
Moved bNoStartStop tablespace mapping to Manifest object.
2015-01-31 18:23:37 -05:00
David Steele
d7b669d560
Moved manifest build to manifest object.
2015-01-31 18:15:08 -05:00
David Steele
267efbd71d
Fixed restore::thread-max
2015-01-31 15:37:59 -05:00
David Steele
0c9da6a5ab
Removed version file - redundant to the version in backup.manifest.
2015-01-31 15:06:53 -05:00