shutdownを伴うTiDBクラスター操作ではリソース不足にご注意を
ざっくりまとめ 1. 【前提】 shutdownを伴うTiDBクラスター操作には、TiDB Serverのスケールアップ/ダウン/イン、TiDB Clusterのアップグレードなどがある TiDBではshutdownを伴う操作に対して、1ノードずつローリングアップデートする方式を取ることで、無停止で
All posts
ざっくりまとめ 1. 【前提】 shutdownを伴うTiDBクラスター操作には、TiDB Serverのスケールアップ/ダウン/イン、TiDB Clusterのアップグレードなどがある TiDBではshutdownを伴う操作に対して、1ノードずつローリングアップデートする方式を取ることで、無停止で
本記事は「TiDB Cloud Dedicated v8.5.5」を対象とした記事です。 サーバレスタイプやSelf hostedタイプのTiDBとは仕様が異なる場合があります。 TiDB Cloudの最大コネクション数の制限はunlimited TiDB Cloudには様々な制限がありますが、最大
本スライド資料はTiDB・NewSQLの導入を検討しており、ステークホルダーにメリットデメリットを説明する必要がある人向けの資料になります。 https://speakerdeck.com/yukiodesuyo/akitekutiyakaraxuebufensansqltidbnoqiangmir
はじめに 今回は無停止でのクラスター操作が可能と言われているTiDBにおいて、SpringBatchの使い方の誤りにより、クラスター操作中にtxがkillされてしまう事例についてご紹介します。 前提となるTiDBクラスター構成 前提となるクラスター構成は以下の通りです。 ポイントはTiProxyを挟
はじめに これまで自身のブログでは、自分がやってきたことの中でも成果が上がったことだったり、ポジティブな内容を投稿することが多かったです。 ただ、その成果に繋げる上で、過去の渋い失敗経験が生きているなと感じましたので、棚卸してブログ投稿しようと思います。 新卒エンジニア1年目のある日 金融系のシステ
DBのコストが高い 「インフラをAzureからAWSへ移行したことでシステムは安定するようになったがインフラコストが高い、、、特にDBがRDS ON SQL SERVERを使っており、高い、、、」 これは私が所属する部署内で何年も言われてきた課題ですが、実際OSSの安いデーターベースに移行をしようと
はじめに スケーラブルかつ高可用性・強整合性という特徴を持った分散DBであるTiDBにはユーザごとに論理的にリソース上限を設けることが可能である。 今回はリソース上限を設ける仕組みであるResource Groupの構成例について示す。 想定するシステム 想定しているシステムは以下のようにテナントご
元々のdotfilesのツラミ 元々私は.bashrc、.tmux.confなどをgit管理してシンボリックリンクを貼るというdotfiles運用をしていました。 ただこの運用だと色々つらいことが出てきました。 シンボリックリンクを貼るのが面倒。シンボリックリンクを貼るためのシェルスクリプトをちょこ
はじめに TiDBのLONGTEXT型の最大列長は 4,294,967,295 ですが、実はデフォルト設定では6MiB以上のデータはエラーで保存できなくなっています。 今回はその回避方法について1つずつ検証しながら解説します。 結論 先に結論を書いておくと、以下の通り設定をいじって保存できるデータサ
v8.5のTiDBで利用できるLONGTEXTは型は最大長では4GB格納できますが、txnentrysizelimitという設定により6MiB以下のデータしか保存できないようになっています。 https://docs.pingcap.com/ja/tidb/stable/datatypestring
はじめに TiDBはクラスタ化された分散ノードが協調動作することでスケーラビリティを実現しています。 一方でスケーラビリティを重視してノードを分散させるようにしたことで、デフォルトのAUTOINCREMENTの動作ではIDは1, 30001, 2, 30002のように値が飛び飛びで採番されます。 本
はじめに 前回でKafkaのチュートリアルを一通りやることができたので次はSpringアプリケーションとKafkaをDocker上で動かして簡単なサンプルアプリを作成してみようかと思います。 https://yukiotechblog.com/learningkafkawirhai2/ 作成するアプ
はじめに https://yukiotechblog.com/learningkafkawirhai1/ それでは前回で基礎概念をざっくり理解できたので、Docker上でKafkaを動かしてみましょう まずは公式チュートリアルからやっていきたいと思います。 https://kafka.apache.
業務でKafkaを使いそうだったのでAIと一緒に勉強してみようかなと思います 学習計画の作成 以下プロンプト gemini回答 作成した学習計画リスト この計画を元に各フェーズで作成するアウトプットを考えて、Kafkaの学習ToDoリストを作っていきましょう フェーズ1: 基礎概念の理解 基礎概念を
それではgemini2.5ProのDeep Research機能で概要を調べてみましょう 以下Research結果 Apache Kafkaのアーキテクチャ詳説:コアコンセプトとメカニズム 第1章 Apache Kafka:イベントストリーミングプラットフォームとしての概論 Apache Kafka
TiFlashの利用方法 TiDB Cloud DedicatedではTiFlashを簡単に利用することができます。 利用方法は以下のとおりです。 1. TiDB Cloud DedicatedのConsole画面からクラスターを変更し、TiFlashを追加する 3. ALTER TABLE tab
はじめに polimoneyという政治資金の見える化ツールがあります。 https://github.com/digitaldemocracy2030/polimoneyhttps://github.com/digitaldemocracy2030/polimoney このツールはPythonとNe
はじめに code craftersというサイトでミドルウェアや低レイヤーな技術についてコードを作成しながら学べるということで試しにやってみました。 今回はSQLiteをKotlinで実装するコースをやってみようかなと思います。 Repository Setup まずはリポジトリのセットアップからや
はじめに polimoneyというお金を見える化するためのOSSがあります。 https://github.com/digitaldemocracy2030/polimoneyhttps://github.com/digitaldemocracy2030/polimoney そこでユーザ登録ロジック
はじめに 「作って壊して直して学ぶNewSQL入門」というTiDBの書籍が出ており、その中で様々なハンズオンがあったので実際にやってみました。 https://amzn.to/3HB8dtmhttps://amzn.to/3HB8dtm Localで実施できるものは皆やってそうだなーと思ったのでさく
https://github.com/pingcap/tidb/issues/60109https://github.com/pingcap/tidb/issues/60109 どんなissueか? このissueはintegration test実行時に権限に関するテストがflakyであるというイ
本記事ではTiDBの開発者ガイドの「add a function」を参考に新しい関数を追加してみようと思います。 https://github.com/pingcap/tidbdevguide/blob/master/src/extendingtidb/addafunction.mdhttps://
本記事ではTiDBのOSSのコードを読みつつ、メモをしていきます。 サーバー起動 まずTiDBではサーバ起動時にtidbserver/main.goが実行されます。 https://github.com/pingcap/tidb/blob/master/cmd/tidbserver/main.goh
https://pingcap.github.io/tidbdevguidehttps://pingcap.github.io/tidbdevguide TiDBで利用されているバージョンのGoをインストールする まずTiDBで使われているGoのバージョンを以下のコマンドで取得して、そのバージョンの
https://pingcap.github.io/tidbdevguide/getstarted/setupanide.htmlhttps://pingcap.github.io/tidbdevguide/getstarted/setupanide.html IDEの準備 まずVsCodeをインス
現状のテナント分離構造「インスタンスレベル分離」 私が関わっているプロダクトでは図のような「インスタンスレベル分離」というテナント分離構造になっています。 具体的にはテナント毎にアプリケーションが別れており、DBクラスタSQL Serverも同様にテナント毎に別れている状況です。 DBからテナントの
miseというミドルウェアのバージョンを切り替えるツールを使って特定のGo言語のバージョンをインストールしたいと思います。 イメージはrenvとかと同じですが、rubyだけでなくGo言語やterraformやnode.jsをはじめとして色々な言語やツールに対応しているっぽいです。便利。 https:
この記事は以下のサイトの翻訳記事です。 https://buildyourown.org/database/03btreeintrohttps://buildyourown.org/database/03btreeintro Btree は平衡 n 分木である 平衡木(Heightbalanced
この記事は以下のサイトの翻訳です。 https://buildyourown.org/database/02indexinghttps://buildyourown.org/database/02indexing クエリの種類 ほとんどのSQLクエリは、次の3種類に分類できます: データ全体のスキャ
やりたかったこと「外部キー制約のチェックをオフにしたい」 TiDB Cloudでの性能試験時にインサートのクエリが遅くなっており、実行計画を見ると外部キー制約のチェックで4秒ほど時間を使っていることがわかりました。 TiDBにおいて外部キー制約によってインサートが遅くなる理由については以下の記事で紹
以下のサイト「Build Your Own Database From Scrach In Go」の翻訳です。 https://buildyourown.org/database/tableofcontentshttps://buildyourown.org/database/tableofcont
この記事は以下のサイトの翻訳です。 https://buildyourown.org/database/01fileshttps://buildyourown.org/database/01files まずは一見単純な問題から始めましょう。データをファイルに保存し、それをアトミックかつ永続的、すなわ
やりたかったこと「AuroraのSnapShotをTiDB Cloudのインポート画面から読み込んでTiDBにデータ作成する」 AuroraMySQLのデータをTiDBに移行するために、まず、以下の記事を参考にDumplingでAuroraのDDLをエクスポートし、それをTiDBにインポートしました
NewSQLの代表的な欠点「レイテンシー」 NewSQLの欠点としてよく上がるのが「レイテンシー」です。 これは分散DBである程度強いデータ整合性を達成しようと思うと、仕方ない話なのかなと思います。 構造的にも納得できます。 意外な欠点「外部キー制約で性能劣化する」「外部キー制約が使えない」 多少レ
What I did I executed Llightning for importing Aurora MySQL SnapShot into TiDB Cloud Dedicatedv8.1.2. Encountered Error lightening.go Workaround: Fix
What I do: やろうとしていたこと Aurora MySQLのスナップショットをTiDB Cloud Dedicatedに復元する Encountered Error: 発生したエラー toml for lightning: ライトニング実行時のtomlファイル Command: 実行したコ
技術負債が与えるビジネスインパクトに関する研究 「Code Red: The Business Impact of Code Quality– A Quantitative Study of 39 Proprietary Production Codebases」という研究で内部品質の低いコードがビ
omakubとは omakubとはUbuntu Desktop環境を良い感じにしてくれるプラグインです。 https://omakub.orghttps://omakub.org 具体的には以下の表にあるアプリをインストールしてくれたり、良い感じのデスクトップテーマやホットキーなどを設定してくれます
twadaさんの名講演「質とスピード」 twadaさんの名講演として「質とスピード」というプレゼンがあります。。 https://speakerdeck.com/twada/qualityandspeedawsdevday2023tokyoedition?slide=48 このプレゼンで主張されてい
https://github.com/donnemartin/systemdesignprimer/blob/master/READMEja.mdhttps://github.com/donnemartin/systemdesignprimer/blob/master/READMEja.md どんな
はじめに「Done is better than nothingは正しいのか?」 「Done is better than nothing」というネットミームがあります。 このミームはマークザッカーバーグの画像と共に用いられることが多く、日本語では「まず完成させろ」「しょぼくてもいいから完成させろ」
benchmark result: https://gist.github.com/c4pt0r/4c29c9cd387dd89fd51a84be7c6e9586https://gist.github.com/c4pt0r/4c29c9cd387dd89fd51a84be7c6e9586 This
はじめに こんにちは、Yukiです。現在情報系の大学院生をやっています2025年現在はWebエンジニアをしています。。 本日は、私がMARCHレベルの文系学部から国立の情報系の大学院に進学した際に得た情報を元に、文系からでも進学しやすい情報系の大学についてまとめてみました JAIST 北陸先端科学技
課題「パーティションテーブルではテーブル内でidがユニークであることを保障できない」 パーティションを導入したテーブルはパーティションキーとidの複合キーが主キーになる そのため、原理上、テーブル内でidがユニークであることを保障できないと言う懸念点が存在する また、idにidentity列を指定し
環境 実施日: 2025/03/18 TiDB: TiDB Cloud Dedicated v8.1.2 Mac OS: Sequoia 15.3.2 24D81 tiup: 1.16.1 v1.16.1nightly20 go: go1.21.13 dumpling: v8.5.1 やろうとしてい
やっていたこと 以下の記事を参考にAuroraMySQLのデータをTiDBに積み直していました。 前段としてAuroraMySQLのDDLをTiDBにインポートする必要があったので、dumplingというTiDBのツールでAuroraMySQLのDDLをダンプして、そのデータをTiDB Cloudの
環境情報 MySQLの環境: AuroraMySQL MySQL 8系 TiDB Cloud: v8.1.2 MySQLの挙動「datetime型のカラムとデフォルト値のNOWメソッドの精度が合っていなくてもエラーにならない」 MySQLには日付型の中にTIMESTAMPと言う型があるようですが、こ
はじめに 2024年の年の瀬にシュッと読んだ本がなかなか面白く、テーマも生成AIと皆さんのお仕事にも少し役立ちそうな気がしたので、せっかくなのでブログで共有します。 概要 この小説は新卒で生成AIスタートアップを立ち上げるSF小説です。 日本有数の大企業・リクディード社のインターン生だった女子大生の
環境 Mac OS: sonoma 14.0.1 Chip: Apple Silicon M2 lima: 1.0.1 前提知識 Qemu Quick Emulatorの略で、『コンピュータhttps://ewords.jp/w/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A
はじめに 今回は、7億行ものデータ行を持つテーブルの日付カラムにパーティションを導入することで、delete文が高速になるかどうかを検証しました。 また、検証対象テーブルのファイルグループを、デフォルトでデータが格納されるPRIMARY以外にすることで、さらに高速化の効果が得られるかについても調査し
事例: 4億行のテーブルに対してselectクエリ実行した場合 4億行で比較したところ、7秒かかるクエリが1秒まで短縮された https://www.youtube.com/watch?v=fN4Qa8g 事例: 20億行のテーブルに対して、selectを実行した場合 20億行のテーブルに対して、s
Amazon Aurora DSQLというポスグレ互換のNewSQLが2024年末に発表されたが、サポートされていないポスグレの機能もあるとのこと。 https://docs.aws.amazon.com/auroradsql/latest/userguide/workingwithpostgres
はじめに 私はfintech企業でプログラマーをしており、工場の生産技術者とは全くの関係がありません。 しかし、YouTuberの「生産技術の馬さん」が出版した「生産技術あるある」がプログラマーにとってもあるあるな内容を含んでいたので、書評のような形でプログラマーにとってもあるあるな部分と、生産技術
関数従属 概要…ある属性xの値が決めると他の属性yの値が一意に決まる関係のことを関数従属と呼ぶ。属性xのことを独立属性決定項といい、属性yを従属属性従属項という。関数従属に着目することで、正規化することが重要。 表記 x y xならばyと読む : xに対して単一のyが決まる場合の表記 x y : x
はじめに 本記事では名著Effective Java第3版https://amzn.to/4hwNdQhで言及されているtipsをより深掘りするために、さまざまなコード例を交えて考えるというものになります。 今回は第2章 オブジェクトの生成と消滅の中の項目1「コンストラクタの代わりにstaticファ
はじめに みなさん、「キャッシュレス決済したこと」はありますか? おそらく、多くの人が「1回はある」と答えると思います。 一方で、「オフラインでキャッシュレス決済したこと」がある人はどれほどいるでしょうか? おそらく、Yesと答える人はさほどいないのではないでしょうか? 本記事では、オフライン電子決
この記事について この記事はTutorial: Developing a RESTful API with Go and Ginを翻訳したものになります2022/07/29最終更新。ソースコード以外は意訳が含まれている可能性があるので、気になる箇所は原文https://go.dev/doc/tuto
目次 1. はじめに 3. jOOQとは 5. 1万件のレコードをjOOQでアップデートする際の性能 7. おわりに 1. はじめに みなさんDBのデータ更新をする際になんとなくupdateしてませんか? 実は数万件単位のupdateをする際に、愚直にupdateするのとbulk updateするの
はじめに 「Effective Java 第3版」の第2章の項目6に「不必要なオブジェクトの生成を避ける」という内容のものがあり、そこで正規表現のコンパイルはクラス変数にキャッシングした方がパフォーマンスを大幅に改善できるとのことが書いてあったので、実際に試して確認してみました。 検証環境 条件は以
はじめに 今回はGOFのデザインパターンであるStrategyパターンを利用して、外部メールサービスを簡単に切り替えられるようにしました。 背景 仕事先では外部メールサービスとしてSendGridというサービスを利用していました。 このサービスはtwilloが提供するグローバルなサービスで非常に使い
クリップボードマネージャーのCopyQをインストールした ubuntuでもMac OSのCrippyのようにコピーした履歴を簡単に呼び出せるようにしたく、CopyQというアプリをDesktopのApp Centerからインストールした。 https://hluk.github.io/CopyQhtt
ロックエスカレーションとは SQL Serverには注意すべき挙動として、ロックエスカレーションというものがあります。 ロックエスカレーションとは、あるテーブルに対して行ロックを取得しすぎた場合に、代わりにテーブルロックを取得する挙動です。 ロックエスカレーションの発生条件 具体的には、以下のいずれ
近年ACID特性を持ちながらread/writeの両方を水平スケールさせることが可能なDB「NewSQL」が注目されています。 本記事ではNewSQL・NoSQL・RDBの特性やメリットデメリットについて解説します。 RDBの特性・メリット・デメリット RDBRelational Databaseと