As a follow up to my earlier blog “SyncBlaze On-Premise Architecture: Defined”, this post will focus on the architecture in a more detailed manner. Let’s take a look at the file synchronization process in SyncBlaze:
SyncBlaze uses Windows Directory Monitoring in Windows and FSEvents daemon in Mac for directory monitoring purpose. Whenever there is a change within the SyncBlaze directory (such as file added/modified/deleted/renamed), SyncBlaze client agent will capture the change notifications and trigger it to the SyncBlaze server immediately.
Normally during the initial file upload, SyncBlaze client will send the file name and its meta data information to the server in order to identify whether it’s a fresh/incremental upload. Based on the response from the server, either the entire file or the modified content of the particular file will be uploaded from the client to server.
Adding a new file
When it’s a new file being added, it will be compressed and encrypted before being uploaded to the server, that is, SyncBlaze does client-side encryption. The original file will be cached under OriCache folder only during the initial sync.
Encryption: The files are encrypted using 448-bit Blowfish encryption algorithm and uses a system generated password to encrypt/decrypt the files during synchronization. Blowfish is a commonly used open source encryption technique which provides encryption based on the size of the encryption key length (from 64 bits to 448 bits), higher the number of bits stronger is the encryption.
Compression: The files are compressed using the well known ZLib algorithm which uses streamed compression of the data on the client side. The compression ratio depends on the type of the file/folders configured for synchronization. When its a word document or excel sheet, the compression ratio will be about 80% to 90% depending on the content and already compressed file formats (like gif, jpg or zip) will relatively have lower compression ratio.
Modifying a file
When any file is edited it only takes the incremental file upload. SyncBlaze uses Intelli-delta Technology (using the well known RSync algorithm) during the incremental schedule to identify the changed bytes on a file and will only upload the changed bytes of the modified files to the SyncBlaze server.
Versioning: Whenever there is any modification on a file, it creates a new version in the server. With SyncBlaze, you can store any number of file versions and also any particular version can be downloaded or restored to make it the most recent version. For example, you have a file ‘Company.doc’ with 5 versions and would like to make the second version as the recent version, you can simply achieve it by choosing the ‘Show Versions’ option and select the Restore option on the respective file version.
Deleting a file
When a file is deleted in the client or from the web portal, a delete notification will be immediately sent to the server which will move the file into deleted list. The deleted files can be seen using the ‘Show Deleted Files’ option and it can be permanently deleted from the server or can be restored back to the client.
Renaming a file
When a file is renamed in the client, a rename notification will be sent to the server which will update the old file name with the new updated name in the server database. The content of the file will remain the same which will not require any file upload to the server again.
All these changes in the server will be immediately communicated to all the linked client devices (workstation and mobile devices) to make sure that each of the client device is up-to-date.
By Sajesh Krishnadas, Business Analyst – Product Management for SyncBlaze, Vembu Technologies. SyncBlaze is a comprehensive file sharing and collaboration solution designed for business users and exclusively offered through Managed Service Providers (MSPs) and Value Added Resellers (VARs).