Unfortunately, this is not an efficient/acceptable way especially on huge file. As this will incur bandwidth to download the object to perform such checksum calculation.
Please advise is there a way to perform this checksum calculation at EMC storage end without download it back locally?
Unfortunately, there's no way to request Atmos to compute a checksum for existing objects. However, you can use the checksum feature when uploading objects and that checksum will be validated by Atmos and can be viewed at a later time through the object's metadata.
By the way, are you able to give some pointer at which section/function/script of Atmos-php that I could provide a checksum value to Atmos for validation? Is there checksum mechanism to follow? Such as must be MD5 or SHA1 etc.
Understand at Atmos end the MD5 checksum values are stored in Berkeley DB which is not exposing to external application.
Then, when you read the object back, you should get the x-emc-wschecksum to validate. You can also get it by reading the system metadata for the object.
We are suffering upload performance issue with turning on the checksum feature for SHA0 (due to Atmos version) as follow:
EsuHelpers.php (at Line 77)
private $computeChecksums = true;
Upload result for a 116MB file took 14 minutes.
private $computeChecksums = false;
Upload result for a 235MB file took less than a minute.
As you can see from above, there are a huge different in both with and without SHA0 checksum feature.
Are you able to extend your insight how we could achieve both upload performance and at the same time able to validate the checksum value at both local and online object without re-download it back for calculation?
Is other API language able to achieve that, please advice, in case is the limitation of Atmos-php in handling the checksum feaure?
Are you on Atmos 2.1? If so, please try "SHA1" or "MD5". The problem is that SHA0 is not widely available as a native algorithm so it needs to be implemented in software. PHP has some limitations with its integer math that compounds this issue. Using the other algorithms should help since native implementations can be used. If you're not yet on 2.1, using a different language should provide better checksumming performance even with SHA0.
Managed to use other language for the checksumming operation and saw significant improvement over the native PHP code handling of the checksum operation.
Also, managed to replay the file and make resume operation fully functional.
JasonCwik
281 Posts
9016
1
Posted May 17th, 2013 10:00
Unfortunately, there's no way to request Atmos to compute a checksum for existing objects. However, you can use the checksum feature when uploading objects and that checksum will be validated by Atmos and can be viewed at a later time through the object's metadata.