iT邦幫忙

2021 iThome 鐵人賽

DAY 19
0
自我挑戰組

淺入淺出分散式儲存系列 第 19

Day19 Lab 2 - Object storage 數據校驗和去重

本篇我們會分兩部分 - 校驗和去重

前面講到的Metadata,如果有了Metadata,我們可以做到上述兩個部分,這能為儲存系統節省許多空間

校驗

我們的校驗做在API層

if hash == obj_hash:
   if produce_object({'name': obj_name, 'version': version, 'hash': hash, 'obj': open(os.path.join(DIR_PATH, hash), 'rb').read()}):
      return Response(json.dumps({}), status=200, mimetype='application/json')
   else:
      return Response(json.dumps({}), status=400, mimetype='application/json')

python-simple-object-storage/run.py at master · kaichiachen/python-simple-object-storage

可以看到,前端也必須傳hash做為參數以保證安全

去重

對於同一個object,他的hash是一樣的,因為他們的內容一樣,所以去重我們簡單的把要消費的資料的名字設定為hash,如下所示

res = Producer.getInstance().send(server, value={f"{content['hash']}-{i}": comp})

https://github.com/kaichiachen/python-simple-object-storage/blob/master/distributed_obj_system/backend/api/obj.py#L46

這樣在data層,看到的就是一個個hash過的object,對於重複的hash就會自動覆蓋


上一篇
Day18 Lab 2 - Object storage metadata
下一篇
Day20 資料冗余和Partition
系列文
淺入淺出分散式儲存30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言