Merge pull request #1068 from daaku/c-purge-old-backups

rocksdb_backup_engine_purge_old_backups for C libraries
This commit is contained in:
Naitik Shah 2016-04-22 22:49:59 +02:00 committed by Andrew Kryczka
parent b54c347424
commit 99a3bf8f62
3 changed files with 27 additions and 0 deletions

View File

@ -446,6 +446,12 @@ void rocksdb_backup_engine_create_new_backup(rocksdb_backup_engine_t* be,
SaveError(errptr, be->rep->CreateNewBackup(db->rep)); SaveError(errptr, be->rep->CreateNewBackup(db->rep));
} }
void rocksdb_backup_engine_purge_old_backups(rocksdb_backup_engine_t* be,
uint32_t num_backups_to_keep,
char** errptr) {
SaveError(errptr, be->rep->PurgeOldBackups(num_backups_to_keep));
}
rocksdb_restore_options_t* rocksdb_restore_options_create() { rocksdb_restore_options_t* rocksdb_restore_options_create() {
return new rocksdb_restore_options_t; return new rocksdb_restore_options_t;
} }

View File

@ -365,6 +365,24 @@ int main(int argc, char** argv) {
rocksdb_backup_engine_create_new_backup(be, db, &err); rocksdb_backup_engine_create_new_backup(be, db, &err);
CheckNoError(err); CheckNoError(err);
// need a change to trigger a new backup
rocksdb_delete(db, woptions, "does-not-exist", 14, &err);
CheckNoError(err);
rocksdb_backup_engine_create_new_backup(be, db, &err);
CheckNoError(err);
const rocksdb_backup_engine_info_t* bei = rocksdb_backup_engine_get_backup_info(be);
CheckCondition(rocksdb_backup_engine_info_count(bei) > 1);
rocksdb_backup_engine_info_destroy(bei);
rocksdb_backup_engine_purge_old_backups(be, 1, &err);
CheckNoError(err);
bei = rocksdb_backup_engine_get_backup_info(be);
CheckCondition(rocksdb_backup_engine_info_count(bei) == 1);
rocksdb_backup_engine_info_destroy(bei);
rocksdb_delete(db, woptions, "foo", 3, &err); rocksdb_delete(db, woptions, "foo", 3, &err);
CheckNoError(err); CheckNoError(err);

View File

@ -121,6 +121,9 @@ extern ROCKSDB_LIBRARY_API rocksdb_backup_engine_t* rocksdb_backup_engine_open(
extern ROCKSDB_LIBRARY_API void rocksdb_backup_engine_create_new_backup( extern ROCKSDB_LIBRARY_API void rocksdb_backup_engine_create_new_backup(
rocksdb_backup_engine_t* be, rocksdb_t* db, char** errptr); rocksdb_backup_engine_t* be, rocksdb_t* db, char** errptr);
extern ROCKSDB_LIBRARY_API void rocksdb_backup_engine_purge_old_backups(
rocksdb_backup_engine_t* be, uint32_t num_backups_to_keep, char** errptr);
extern ROCKSDB_LIBRARY_API rocksdb_restore_options_t* extern ROCKSDB_LIBRARY_API rocksdb_restore_options_t*
rocksdb_restore_options_create(); rocksdb_restore_options_create();
extern ROCKSDB_LIBRARY_API void rocksdb_restore_options_destroy( extern ROCKSDB_LIBRARY_API void rocksdb_restore_options_destroy(