humstack
humstack copied to clipboard
ブランチの違いについて
現状masterブランチとv0ブランチがありますが、この二つはどう違いますか?
V0はトラコンで使用したときのものでmasterは新しく開発しようとした残骸です。
なるほど、masterは未完成という感じでしょうか? v0をベースにするかmasterをベースにするか迷っていますがアドバイスが欲しいです。
そうです。 masterは未完成ですので、動くものだとv0を利用するのが良いと思います。
ただ、リソース数が多くなるとagentのロジックとAPIコールの頻度が多くなりDB書き込みのロック待ちが発生してリクエストがTimeoutしてしまうという問題が当時あったので色々と改修したほうがよいと思います。
以下計測したわけじゃないので全て憶測で書いてます。
- 確か、一気にデプロイすると更新が大量に発生してDBがロックされて待ちの間にTimeoutという感じだったので、デプロイを小分けにして対応したような気もする
- Timeoutに関しては暫定でTimeoutするまでの時間を延ばすと一時しのぎはできるかも
- DB書き込みのロック待ち
- LevelDBを使ったstoreの実装がよろしくない
- LevelDBでTransactionしているのにRWMutexでLockしていたり
- シリアライズにJSONを利用している
- https://github.com/ophum/humstack/blob/v0/pkg/store/leveldb/store.go
- NoSQL(Storeインターフェース)やめてGormとかでRDBMSに対してSQLを直接叩いたほうが効率は良くなると思う
- LevelDBを使ったstoreの実装がよろしくない
- APIコールの頻度
- なんか色々改善しようとした形跡はあるけど、あまり意味はなかったと思われる
個人的には最初から設計・実装するか、k8sのエコシステムを利用して、VMやネットワーク、Diskなどの部分を操作するものを自作するなどのほうがいいんじゃないかと思います。