ChallengeClub / tetris_score_server

tetris_score_server for https://github.com/seigot/tetris
MIT License
2 stars 6 forks source link

サーバ側にて毎回実行しているログを何らかの形で残しておきたい(計算量多すぎてテトリミノが 180 から減ることがないかチェックしたいきっかけ) #29

Open seigot opened 2 years ago

seigot commented 2 years ago

以下のやつ

スコアサーバーの項目のうち「BLOCK_NO」って何の数字でしょうか。計算量多すぎてテトリミノが 180 から減ることがないかチェックしたいのですが、10回中何回こうなったのか知りたいもので... サーバーで一回登録すると10回試行するので動作するので何回目なのか気になってたりします…,

なるほどです、サーバ側にて毎回実行しているログを何らかの形で残しておけば分かりそうですが、どうすれば本当に欲しい情報を残せるのか分かりきれずにいます。

seigot commented 2 years ago

result.log よくみたら1KBほどだったのでサイズ問題は起きにくそうです。 参考:githubのデータサイズ上限は1〜5GB推奨(https://docs.github.com/ja/repositories/working-with-files/managing-large-files/about-large-files-on-github) 1〜5GB/1KB = 1M〜5M(100万〜500万ファイル)なので、score_attack_serverが100万回ほど動くと上限を超えそうだが、その場合は別リポジトリに移動するなどにより回避していきたい。(むしろそれくらい動かしてみたい)

EndoNrak commented 2 years ago

たしかに10回の実行の統計値だけでは心もとないなーとは思ってました とはいっても、サーバー実行時には出力させるログをもう少し、見たいであろう情報だけに絞るなどしたいなとは思います。 将来的にテトリス実行をaws リソース上でやるようになった時には、ログデータを保存しておくデータベースのサイズもですしそもそもサーバからのデータのIOにもコストがかかってしまいます、、、

seigot commented 2 years ago

以下は確かにその通りで、登録するデータはできる限り最小限に限定したいです。 (データは多くなる方向にしか向かわない。不足データがあると追加要望がある一方で、不要データの削除依頼はこないので、、サイズ制限は管理側でしっかり考える必要がある。。)

将来的にテトリス実行をaws リソース上でやるようになった時には、ログデータを保存しておくデータベースのサイズもですしそもそもサーバからのデータのIOにもコストがかかってしまいます、、、

EndoNrak commented 2 years ago

どんなログをとるかはtetris側の話ですかね?? それとも吐き出されたlogファイルからscore_server側で抽出させる感じですかね??

私の意見としては、tetris側はユーザーに寄り添って今のまま残す score_server側はtetrisの実行で吐かれたログファイルから抽出して、ログとして吐き出すのがいいんじゃないかと思ってます!

atcoderもREとかWAしか教えてくれないし笑

seigot commented 2 years ago

こちらのつもりでした!(score_server側)

それとも吐き出されたlogファイルからscore_server側で抽出させる感じですかね??

以下に賛成です

score_server側はtetrisの実行で吐かれたログファイルから抽出して、ログとして吐き出すのがいいんじゃないかと思ってます!

EndoNrak commented 2 years ago

抽出後ログファイルはS3とかのファイルサーバに上げて、データベースにはログファイルのurlを文字列として持たせておくがベストプラクティスな気がします! データベースはコスト高いので肥大化は避けたいところ、、、