2025-04

Golang

TiDBのissueを眺める「flaky test for IMPORT INTO」

どんなissueか?このissueはintegration test実行時に権限に関するテストがflakyであるというイシューです。run test err: sql:IMPORT INTO t FROM '/file.csv';: fai...
Golang

TiDBのコードリーディング「サーバの起動」

本記事ではTiDBのOSSのコードを読みつつ、メモをしていきます。サーバー起動まずTiDBではサーバ起動時にtidb-server/main.goが実行されます。ここでは、種々の初期化やサーバの実行、クリーンアップ処理などの処理が行われてい...
DB

TiDBに組み込み関数を追加実装する

本記事ではTiDBの開発者ガイドの「add a function」を参考に新しい関数を追加してみようと思います。 前提以下の条件で実施しています。OS: Ubuntu24Golang: go1.23.8 linux/amd64TiDB: T...
DB

TiDBのテストをIDE上で実行する

IDEの準備まずVsCodeをインストールし、TiDBのリポジトリのルートで以下のコマンドを実行し、おすすめの設定を反映します。mkdir -p .vscodeecho "{ \"go.testTags\": \"intest,deadlo...
DB

TiDBをソースコードからビルドしてターミナルから実行する

TiDBで利用されているバージョンのGoをインストールするまずTiDBで使われているGoのバージョンを以下のコマンドで取得して、そのバージョンのGoをインストールしてくださいとのことでした。curl -s -S -L | grep -Eo ...
Golang

miseで特定のGo言語のバージョンをインストールして切り替える

miseというミドルウェアのバージョンを切り替えるツールを使って特定のGo言語のバージョンをインストールしたいと思います。イメージはrenvとかと同じですが、rubyだけでなくGo言語やterraformやnode.jsをはじめとして色々な...
DB

マルチテナントのスキーマレベル分離をどのように実装するか?[マルチテナントアーキテクチャ]

現状のテナント分離構造「インスタンスレベル分離」私が関わっているプロダクトでは図のような「インスタンスレベル分離」というテナント分離構造になっています。具体的にはテナント毎にアプリケーションが別れており、DBクラスタ(SQL Server)...