地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

2024-10-01から1ヶ月間の記事一覧

【Linux】net.ipv4.tcp_tw_reuseとTIME-WAITと電話

リアルタイムの音声通信サービスでnet.ipv4.tcp_tw_reuseを有効化するとどういうことが起き得るのかを考えてみる 前提として音声をやりとるする際にTCPを使うケースはほぼないはず。VoIPはIPだしWebRTCはUDP(とTCP)。リアルタイムでやり取りする上でTCPは非…

【データベース】S2PLとは?

S2PL(Strict Two-Phase Locking)は、データベース管理システムなどでトランザクションの直列化可能性(serializability)を保証するために用いられるロック方式の一種です。S2PLは、特に厳密な直列化可能性を確保するために、トランザクションがすべてのロ…

【Envoy】upstream connect error or disconnect/reset before headers. reset reason: connection termination

概要 upstream connect error or disconnect/reset before headers. reset reason: connection termination というエラーメッセージがどこから出てくるのかを追ってみる。 結論としてはUpstreamとEnvoyのTCPコネクションがclose済みな状態(harf closeも含む)…

【データベース】Write SkewとRead Skew

Write Skewとは? Write Skewは、分散トランザクションの一貫性モデルにおいて発生する問題の一つです。これは、複数のトランザクションが独立して検証を行い、その結果が一致していないにもかかわらず、最終的に同じデータに対して矛盾した書き込みを行うこ…

【AWS】複数プロフファイルをfzfで切り替える

function awsp() { PROFILES=$(aws configure list-profiles) SELECTED_PROFILE=$(echo "$PROFILES" | fzf) if [[ -n "$SELECTED_PROFILE" ]]; then export AWS_PROFILE="$SELECTED_PROFILE" echo "Updated profile to $AWS_PROFILE" else echo "No profile …

【PostgreSQL】ユーザー定義関数を登録する

概要 ユーザー定義関数を実装してPostgreSQLで呼び出せるようにします。 準備 $ sudo apt install postgresql-server-dev-all ソース #include "postgres.h" #include "fmgr.h" PG_MODULE_MAGIC; // INT4 (整数) 用関数 PG_FUNCTION_INFO_V1(multiply_by_ten…

【Linux】fioメモ

dd command SeqR: time dd if=/nvme/testfile of=/dev/null bs=1024k iflag=direct SeqW: time dd if=/dev/zero of=/nvme/testfile bs=1024k count=8192 oflag=direct https://developers.cyberagent.co.jp/blog/archives/6623/ https://www.na3.jp/entry/20…

GMOペパボを退職します

2024年10月30日をもって、約3年間勤めたGMOペパボを退職します。 入社したのは2021年7月なのでした。 ryuichi1208.hateblo.jp ペパボでは主にSREとして、サービスの信頼性に関する施策の考案と実践を担当してきました。入社時にはSREの概念は認知されていま…

【登壇】YAPC::Hakodate 2024の前夜祭で登壇してきた

登壇内容 speakerdeck.com 本編はrejectでしたが前夜祭で登壇する機会をいただけたのでバックアップの話をしてきました。ちょうど仕事でもバックアップについて考える必要があったりしたいので良い振り返りとなったりしました。 ↑は同僚に撮ってもらった写真…

【Nginx】reloadではソケットの開き直しは反映されない

すでにopen(2)済みのソケットのソケットオプションをいじることはLinuxでは可能なのでsetsockopt(2)で設定できる内容ならreloadだけでも変更が可能。一方でbindするIPは後から変えれないので一旦ソケットを閉じる必要がある。その場合はreloadだけだと反映さ…