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

preview-7: データセンターモジュールの実装 #118

Closed
usagi opened this Issue Jun 11, 2018 · 9 comments

Comments

Projects
None yet
1 participant
@usagi
Copy link
Contributor

usagi commented Jun 11, 2018

G4のデータセンターモジュールの概要

  1. 汎用のローカルストレージへのキャッシュ機能を有する
    • http(s) ソースをローカルストレージ(g4fs://var/cache/{service-name}/raw/z/y/x.{ext})へ「そのまま」キャッシュする
    • コンフィグレーションによる expired チェック方針の選択
      • 基本方針として force, every, naver を選択可能
      • サービス名ごとに辞書式で force, every, naver を上書き設定可能
      • force は常にキャッシュの更新を試みる
      • every は http に対して head して更新を確認する
      • naver は更新を確認せずローカルにキャッシュがあれば無条件に採用する
  2. G4専用の特化したデータ出力機能を有する
    • 256x256ソースのタイルから257x257のエッジ補間データを提供する機能
    • 補間済みデータもキャッシュする(g4fs://var/cache/{service-name}/g4/z/y/x.{ext})
      • 画像は webp 標高は blosc/lz4 でいいかな
    • この実装により現行しばしば発生しているタイル境界での補間動作ミスを無くし、またキャッシュ機能とあわせてタイル生成
@usagi

This comment has been minimized.

Copy link
Contributor Author

usagi commented Jun 21, 2018

対応開始: 4.0.7.2 release, 2018-06-28 を予定。

@usagi

This comment has been minimized.

Copy link
Contributor Author

usagi commented Jul 2, 2018

メインスレッドの重い処理を適度な粒度で時間分割可能な実装を施した。これにより動作中に重いタスクが発生した際にもプチフリ的に固まる事がほぼ気にならなくなる。

@usagi

This comment has been minimized.

Copy link
Contributor Author

usagi commented Jul 2, 2018

ついで、地表面での物理シミュレーション機能を別機能に分離する実装を施し、これまで地形の表現に必要だった計算コストをおよそ1/282に低減した。次のリリースはユーザーにとってかなり快適性の向上する嬉しいアップデートとなるだろう。

@usagi

This comment has been minimized.

Copy link
Contributor Author

usagi commented Jul 3, 2018

開発中の 4.0.7.2-dev からウルトラ高速化された起動とプチフリを抑えた動作:

https://vimeo.com/278106843

@usagi

This comment has been minimized.

Copy link
Contributor Author

usagi commented Jul 4, 2018

キャッシュシステムの実装途中だが、デバッグ中にUE4エンジンのアロケーターかどこかのポリモーフィズムが絡んでいそうな難解な不具合の糸口を発見したので、少々そちらにリソースを割いている。そちらも重要度の高いバグ修正のため、状況によっては数日割り込んで対応し、本チケットと合わせて 4.0.7.2 へ修正を結合する可能性がある。

@usagi

This comment has been minimized.

Copy link
Contributor Author

usagi commented Jul 5, 2018

↑の問題を解決した。原因は UE4 のガベージコレクションとオブジェクトの寿命管理に起因したもので、取り扱いにより「気まぐれ」性が現れるものだった。解決、めでたし。

@usagi

This comment has been minimized.

Copy link
Contributor Author

usagi commented Jul 10, 2018

どうも現状になっとくがいかないので徹夜で仕事していた。結果、2つのバグが修正された。

  1. 再現困難だが使っているとたまに落ちてしまう事があるバグ
  2. しばしばタイル間の補完が行われない事があるバグ
@usagi

This comment has been minimized.

Copy link
Contributor Author

usagi commented Jul 11, 2018

ヘテロLOD隣接タイル間の相互補完処理を最適化している。実行中に感じるプチフリ感はだいぶ小さくなったが、まだここが処理速度のボトルネックになっていてる。

@usagi

This comment has been minimized.

Copy link
Contributor Author

usagi commented Jul 12, 2018

幾つか見つかった些細なバグを潰しながら動作試験を続けている。概ねCBTリリースに耐える状態になってきたと思う。大きな問題が発覚しなければ予定通り明日には G4-4.0.7.2 としてリリースできるだろう。

@usagi usagi added the fixed 4.0.7.2 label Jul 23, 2018

@usagi usagi closed this Jul 23, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment