2020-09-01から1ヶ月間の記事一覧

LSP 実装メモ(gopls cache `Snapshot` 編)

前回 tennashi.hatenablog.com 先週はやる気が消失したためお休みした。 前回のまとめ ひたすらに (*Session).NewView() からの呼び出しを追っていった。 今回は残った (*snapshot).load() メソッドの処理を読む。 が、全て詳細に読むと長くなりすぎてしまう…

LSP 実装メモ(gopls cache `View` 生成詳解編)

前回 tennashi.hatenablog.com 引き続き、gopls の cache 実装を読む。 前回のまとめ View 実装のフィールドとその生成タイミングを見ることで、ディレクトリ単位で何かしらの cache をしていることが分かった。 View の初期化処理をもう少し詳しく追ってい…

LSP 実装メモ(gopls cache `View` 生成編)

前回 tennashi.hatenablog.com 引き続き、gopls の cache 実装を読む。 前回のまとめ gopls で採用されている cache は 3 層で前回読んだのは Cache/Session の 2 層だ。 Cache 素朴な OS ファイルシステム上のファイルの cache cache 自体の実体は source.F…

facebook/ent を使ってみた

Go

最近 GraphQL の素振りのため、シンプルな Web アプリケーションを作ることを考えていた。 で、どうせなら最低限の機能はシングルバイナリ + いくつかのファイルを用意するだけで動作させようと思い、以下のような構成だけなんとなく考えた。 フロントアプリ…

k8s 上での Redis の永続化戦略

Redis を起動すると次のようなログが出力されることがある。 1:M 31 Aug 2020 12:36:07.554 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sy…