-
Notifications
You must be signed in to change notification settings - Fork 58
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
[EXPORTER] Add support for gzip compression #1826
[EXPORTER] Add support for gzip compression #1826
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
感謝新增此功能,不過我們在議題有提到說要寫入檔案的 metadata 這件事情有想法嗎?會在這個PR完成嗎
好的,那我接著在這 pr 處理寫入檔案 metadata 的部分。 |
我覺得既然要新增 metadata 在檔案結尾了,可以順便思考一下還有哪些資訊可以一併放進去?例如:
|
我目前預計在 metadata 放入以下資料
感覺以上資料應該可以讓 exporter 備份出來的檔案可以更自由的處理,並且如古有要在 importer 端增加功能應該也可以靠 metadata 資訊先行處理。 如果上述資料可以的話,我應該會透過 protocol buffer 序列化後 放在檔案尾部,估計會透過 int 的 -1 來區分 data 跟 metadata |
不好意思,這句話我看不太懂?如果是要定位 metadata 的範圍,可以在檔案結尾保留一個整數長度來描述 metadata 的大小 |
因為有 topic partition,如果依照最大範圍給定的話 topic 需要給到 255Bytes,在想說固定會不會有點大。 再來現在有個問題是如果 metadata 放到尾部的話,有的 filesystem 不能使 inputstream 有 seek 的功能,這樣可能會有點難處理,不知是否可以將 metadata 放在檔案的頭部,這樣一開始先透過 protocol buffer parse metadata 後,接著都是 record 應該也就沒有這問題了。 |
放在頭部的話,有些統計資訊就無法事先得知了? |
看起來好像是的,那就維持寫在檔案尾部,固定大小。 |
可否確認一下 ftp protocol 是否有支援 seek ? |
依目前使用 retrieveFileStream 建立的 inputStream 可以透過 skipNBytes 來跳過前面的資料,目前幾次測試在200MB的資料中,可以跳到正確的位置上面。 |
我比較擔心是只有特定的 ftp server 才支援這個功能,可否查一下 ftp 這個協定是否有明確說要支持 seek |
我剛剛看了一下 這方法需要在支援 REST command 的 ftp server 才行,有在 rfc959 中列出此命令,並在 rfc5797 中要求要有的基本指令中有包含 REST,從這邊判斷應該大部分的 ftp server 應該都支援 rest 功能的。 |
ok 感謝確認 這樣應該就沒問題 |
目前測試下來,感覺 metadata 寫入的部分可能發另外一個 pr 處理會比較好。 |
聽起來不錯,麻煩先開好議題 另外這隻PR就鎖定在一個壓縮上嗎? |
是的,這隻 pr 就針對一個任務中可以設定為透過 gzip 壓縮 |
connector/src/main/java/org/astraea/connector/backup/Exporter.java
Outdated
Show resolved
Hide resolved
LGTM |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
#1822
目前增加參數
compression.type
使的 exporter 支援 gzip 壓縮方法,未來支援其他的壓縮演算法可以透過這個參數設定。目前在建立 gzip 壓縮檔按時,有發現文件內容開頭會是
1f 8b
,因此沒有在針對寫出的檔案附加上 gzip 結尾。