Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug/error: Backup inkremental memberatkan #5390

Closed
eddieridwan opened this issue Jul 16, 2022 · 3 comments
Closed

Bug/error: Backup inkremental memberatkan #5390

eddieridwan opened this issue Jul 16, 2022 · 3 comments

Comments

@eddieridwan
Copy link
Collaborator

eddieridwan commented Jul 16, 2022

Jelaskan error yg dialami

Backup inkremental memberatkan karena menggunakan memori banyak baik pada waktu membuat archive maupun pada waktu download.

Cara untuk mereplikasi errornya

Lakukan backup inkremental pada folder desa besar pertama kali.

Hasil yg diharapkan

@apidong @vickyrolanda
Solusi saat ini untuk backup inkremental memberatkan karena menggunakan cara yg langsung proses seluruh isi file menggunakan memori, dan juga tidak menggunakan sys_get_temp_dir sehingga harus mengelola file. Jadi akan gagal jika memori tidak memadai pada waktu membuat zip maupun pada waktu download.
Harap lihat cara yg dilakukan untuk method database/desa_backup yang menggunakan class FlxZipArchive.

incr-1
incr-2

Di class FlzZipArchive, menggunakan temp file, disediakan cara untuk mengumpulkan isi directory secara recursive tidak menggunakan memori dan download file zip besar secara sepotong-sepotong.

incr-3

Lihat cara penggunaannya di method desa_backup

image

Tangkapan layar dan log error

s

Rilis Versi OpenSID

Rilis Premium

Versi OpenSID

v22.07-premium-beta01

Tema Yang Digunakan

No response

Informasi tambahan

No response

@eddieridwan
Copy link
Collaborator Author

eddieridwan commented Jul 16, 2022

@apidong @vickyrolanda , mungkin solusi sederhana adalah menambah parameter tanggal/waktu pada waktu memanggil FlxZipArchive.read_dir. Kemudian di method addDirDo gunakan tanggal/waktu tsb hanya menambahkan file yang waktu dibuat/diubah sesudah waktu tersebut.

Kalau anda lakukan itu, membuat archive backup inkremental akan sederhana sekali:

        $za = new FlxZipArchive();
        $za->read_dir(DESAPATH, $waktu_backup_terakhir);

@eddieridwan
Copy link
Collaborator Author

eddieridwan commented Jul 16, 2022

@apidong @vickyrolanda karena menggunakan background job, waktu antara pembuatan archive dan proses download mungkin bisa lama. Jadi ada kemungkinan file di temporary direktori akan dibersihkan oleh sistem (bisa saja sehabis session). Karena itu memang perlu menggunakan file khusus untuk menyimpan archive secara pasti. Untuk itu, yg bisa dilakukan adalah membuat constructor di class FlxZipArchive, dan kemudian mengirim path ke file yg akan digunakan pada waktu membuat FlxZipArchive baru.

        $za = new FlxZipArchive($path_ke_file_archive);

Yaitu, gunakan file tersebut jika dikirim sebagai parameter. Jika tidak, gunakan temporary file.

@vickyrolanda
Copy link
Contributor

Sudah diselesaikan di PR https://github.com/OpenSID/premium/pull/1137

@andifahruddinakas andifahruddinakas added this to the OpenSID 22.08 M4 milestone Aug 2, 2022
@devrakapriyo devrakapriyo mentioned this issue Aug 3, 2022
@andifahruddinakas andifahruddinakas mentioned this issue Jan 4, 2023
65 tasks
@agungsugiarto agungsugiarto mentioned this issue Feb 23, 2023
82 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants