読者です 読者をやめる 読者になる 読者になる

BizStationブログ

ビズステーション株式会社の公式ブログです。

TransactdをDockerで試す(Ruby/2/17 PHP追記)

(2/17 追記)PHP用イメージと、Ruby/PHPのバージョンについて追記しました。 先日、Twitterで以下のツイートを見かけました。transactd の入った docker image ができた。ただ、MySQL のプラグインはマニュアルを見る限り、my.cnf の plugin-load での指定…

PDOより高速なORMライブラリ! Transactd PHP ORM リリース

2016年12月22日にTransactd PHP ORMをリリースしました。 これはTransactdを使用したMySQL/MariaDB用のORMライブラリです。今回はこのTransactd PHP ORMを紹介します。Contents 主な特徴 高速なDBアクセス 省メモリ 高スループット 高可用性 自在なトランザ…

MySQL/MariaDB Transactd 超 高可用運用 (THA)

MySQL/MariaDB用 NoSQLプラグイン Transactdでの高可用運用(Transactd High Availability)ツール「THA」と、対応したプラグイン(Version 3.5)の提供を開始しました。 MySQL/MariaDBのHAツールは既にいくつかありますが、THAはTransactdに合わせて最適化…

MySQL/MariaDB レプリケーション復旧 テーブルロックをせず特定テーブルのみコピーする その2

前回は、レプリケーション復旧においてMySQLのコマンドを使って最もロック時間を短くコピーし直す方法を紹介しました。 今回は、全くテーブルをロックせずに特定のテーブルやデータベースをコピーし直す方法を紹介します。 Nonlocking Replcopy Nonlocking R…

MySQL/MariaDB GTID レプリケーション詳細

今回は、MySQL/MariaDB GTID レプリケーションの詳細を説明します。これは、Transactdによるレプリケーションセットアップ(修復)ツールを構築する際に調べたものです。主に従来のバイナリログとポジションを使ったレプリケーションとGTIDによるレプリケー…

MySQLレプリケーション復旧 テーブルロックをせず特定テーブルのみコピーする その1

レプリケーションの問題発生時の復旧で、マスターの機能を制限してしまうテーブルロックをせずに特定テーブルのみ再コピーする方法について書きたいと思います。

PHP7 ExtensionをSWIGで作る (Building a PHP7 Extension with SWIG)

function googleTranslateElementInit() { new google.translate.TranslateElement({pageLanguage: 'ja', includedLanguages: 'en', layout: google.translate.TranslateElement.InlineLayout.SIMPLE}, 'google_translate_element'); } Transactd 3.0をリリ…

Transactd Plugin PHP Ruby C# C++のチュートリアル

MySQL用NoSQLプラグイン Transactdのチュートリアルで使用するプログラミング言語の種類を拡充しました。 この中に慣れた言語がありましたら、是非試してみてください。SQLに比べてとても高速に処理ができるようになります。Transactd チュートリアル 今まで…

MySQL 5.7 + Transactd スループット117万QPSを記録

function googleTranslateElementInit() { new google.translate.TranslateElement({pageLanguage: 'ja', includedLanguages: 'en', layout: google.translate.TranslateElement.InlineLayout.SIMPLE}, 'google_translate_element'); } ようやく24コアのマシ…

TransactdでInnoDBロックを自在に操る

前回の MySQL/MariaDBとTransactdのInnoDBロック制御詳細 その1 - BizStationブログ では、InnoDBのロックの詳細について説明しました。 今回は、TransactdのトランザクションにおいてInnoDBのロックをどう扱うかを説明します。Transactdは、InnoDBロックを…

Transactd 2.3 リリース!

Transactd 2.3 をリリースしました。 このリリースでは大きな機能追加はありませんが、アプリケーションの機能の実現や運用のために重要な細かな変更がされています。Transactd 2.3 の新機能を紹介します。 readMore 検索 Transactdの検索クエリーは以下のい…

MySQL/MariaDB UPDATEとDELETEの内部ロジック

前回のブログ「MySQL/MariaDBとTransactdのInnoDBロック制御詳細」で、「ロックなし読み取りと更新の混在に注意」と書きましたが、「更新前の値を条件で指定したUPDATEやDELETEは問題ないと思うが心配だ」という質問をいただきました。そこで今回は、UPDATE…

MySQL/MariaDB 知っておきたい REPEATABLE-READ の不思議

昨日のブログ記事のアクセスが想像以上に多く、とても驚いています。 MySQL/MariaDBとTransactdのInnoDBロック制御詳細 その1 - BizStationブログこの中で、REPEATABLE-READのトランザクションで、「ロックなし読み取りした値を元に更新してはいけない」と書…

MySQL/MariaDBとTransactdのInnoDBロック制御詳細 その1

今回から数回にわたり、TransactdのオペレーションとInnoDBにおけるロックについて解説します。 ロックについてはあまり良くわからなくてもとりあえずそれなりに動くアプリケーションは作れてしまいます。ですが、マルチユーザー環境でミッションクリティカ…

Transactd 2.1はさらに高速で低負荷に

まもなくリリースされるTransactd 2.1は、2.0に比べてクエリーの速度が大幅に高速になります。 SQLより高速なクエリー 2.1ではJoinなどに関する処理を徹底的に見直し、SQLを凌ぐクエリーレスポンスを実現しました。TransactdのJoinを含むクエリーは、テーブ…

MySQLからNoSQLへの移行に「ちょっと待った」

Transactdの開発過程でMySQLのパフォーマンス問題を調べてみたところ、ほとんどは「クエリーが遅い」といった問題のようでした。また、NoSQLデータベースへの移行理由としても「MySQLが遅いから」といった意見が結構あります。しかし、そのような理由でMySQL…

Transactd 2.0 その3 データベーススケーリング

ほとんどのNoSQLは、容易なスケーリングと、アクセス頻度の高い処理の高速化を目的として使われます。今回はTransactd 2.0について、スケーリングがどのように実現されるか書きたいと思います。 1. なぜNoSQLか?(SQLの欠点) テーブル間の依存 スケールアウ…

Transactd 2.0 その2 QueryBuilder で簡単NoSQLクエリー

function googleTranslateElementInit() { new google.translate.TranslateElement({pageLanguage: 'ja', includedLanguages: 'en', layout: google.translate.TranslateElement.InlineLayout.SIMPLE}, 'google_translate_element'); } Transactd 2.0 その1…

Transactd 2.0 その1 SQLライクなクエリーと結果セット

いよいよTransactd 2.0をリリースします。Transactd 2.0で新しくなったのは主に、 SQLライクなクエリーと結果セット 分散クエリー O/Rマッピング です。順番に詳しく紹介してゆきます。今回は「SQLライクなクエリーと結果セット」です。Transactdの従来のAPI…

C++ クロスプラットフォーム開発

C++

しばらく日が空いてしまいましたが、相変わらず元気に Transactdに励んでいます。もうすぐTransactd 2.0 がリリースできそうですが、今回はC++コンパイラーのお話しです。 Transactdの基本ライブラリ開発はC++ですが、OSはWindwosとLinuxとMac OS X、コンパ…

第2回 MariaDB/MySQL コミュニティ イベント in Tokyo に行ってきました

2014/02/18に 第2回 MariaDB/MySQL コミュニティ イベント in Tokyo に行ってきました。 懇親会ではMontyさんと写真を撮ったり、色々なプラグインの開発者の方とお会いしたりでとても有意義な会でした。 MariaDBカンファレンスの感想 Montyさんがお見えにな…

MySQL パフォーマンスとtransactd その3

その3は、select * from tablename where fieldname in(a,b,c...)です。 IN句による検索ですが、前回までと同じようにMySQLの処理とtransactdでの処理を見ていきましょう。 使用するインデックス解析 MySQLはまずSQL文を解析し、fieldnameフィールドをキー…

MySQL パフォーマンスとtransactd その2の2

前回はselect * from tablename where fieldname = xxxのfieldnameをキーセグメントの先頭に持つインデックスがない場合を書きました。今回は、インデックスがある場合です。 MySQLでfieldnameフィールドのインデックスがある場合 今回の例は条件式が一つで…

MySQL パフォーマンスとtransactd その2の1

その2はselect * from tablename where fieldname = xxxです。長くなるのでまずは2の1から。 なんとも簡単なSQL文ですが、テーブルの定義やデータの状況によって全くパフォーマンスが異なってきます。 使用するインデックス解析 MySQLはまずSQL文を解析し…

MySQL SQLパフォーマンスとtransactd その1

よく、SQLが遅いといった話を耳にしますが、サーバー側がどう処理して遅いのかまで書いたものがあまり見当たらないので、Transactdの開発経験を生かし、その使い方と合わせて書いてみたいと思います。 MySQLは、プラガブルデータベースエンジンという仕組み…

TokuDB 7.0.1のCommunity EditionをUbuntuでビルド

(以下の記事は、旧ブログの2013/04/26の記事です。) 今回は、開発系の話です。社長に代わり、Kが担当させていただきます。 タイトルの通り、Tokutek社のTokuDB 7.0.1 for MySQL 5.5.30のCommunity EditionをUbuntu 12.10(とUbuntu Server12.04)でビルド…

ブログを開設しました

こんにちは。 本日、ビズステーション株式会社の公式ブログを開設しました。 ソフトウェア開発に関するTipsから開発背景まで、様々な情報をお届けする予定です。 よろしくお願いいたします!