DB

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 ...
DB

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

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

[日本語訳] 03. Bツリーと障害からの回復 “Go言語でゼロから独自のDBを構築しよう” – Build Your Own Database From Scrach In Go –

この記事は以下のサイトの翻訳記事です。B-tree は平衡 n 分木である平衡木(Height-balanced tree)実用的な二分木の多く、たとえば AVL木 や 赤黒木(RB木) は「平衡木(height-balanced tree...
DB

TiDB Cloudで外部キー制約のチェックをGLOBALスコープでオフにしても、引き続きチェックが走る [TiDB Cloud Dedicated]

やりたかったこと「外部キー制約のチェックをオフにしたい」TiDB Cloudでの性能試験時にインサートのクエリが遅くなっており、実行計画を見ると外部キー制約のチェックで4秒ほど時間を使っていることがわかりました。TiDBにおいて外部キー制約...
DB

[日本語訳] 02. 索引化されたデータ構造 “Go言語でゼロから独自のDBを構築しよう” – Build Your Own Database From Scrach In Go –

この記事は以下のサイトの翻訳です。クエリの種類ほとんどのSQLクエリは、次の3種類に分類できます:データ全体のスキャン(インデックスは使われない)ポイントクエリ:特定のキーでインデックスを検索範囲クエリ:範囲でインデックスを検索(インデック...
DB

[日本語訳] 01. ファイルからデータベースへ “Go言語でゼロから独自のDBを構築しよう” – Build Your Own Database From Scrach In Go –

この記事は以下のサイトの翻訳です。まずは一見単純な問題から始めましょう。データをファイルに保存し、それをアトミックかつ永続的、すなわちクラッシュに耐性のあるものにしようとしてみましょう。Let’s start with a seemingl...