ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

スーパーフォーミュラでのTsurugiの事例

2024-12-14 08:18:09 | PG(RDBMS)

Tsurugi Advent Calendar 2024の14日目です。

2024/12/12に、スーパーフォーミュラでTsurugiを使ったニュースが出ていました。

このニュースのTsurugiに関する部分は、5ミリ秒間隔でスーパーフォーミュラカーの車載データをUDPで受信してTsurugiに入れ、同時に5~20ミリ秒間隔でAIの推論処理を行った(Tsurugiからデータを取得した)、というところでしょうか。

Tsurugiはwrite heavyな用途に向いていると言われていて、スループット重視なRDBMSです。逆に言うと、レイテンシー(低遅延)が要求される使い方は得意ではないということだと思います。
また、TsurugiはインメモリーDBなのでメモリー上で全てを処理しますが、ローカルディスクへのトランザクションデータの保存(永続化)も行います。
それでも今回のような時間間隔で処理できたということですね。

それと一貫性に関して、Tsurugiのトランザクション分離レベルはシリアライザブルですが、それでも読み書きが同時に処理できたということになります。
(他のRDBMSでシリアライザブルにして同じことを実行したら、アボートしまくりのような気がします^^;)

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Tsubakuro 2024年の変更点

2024-12-10 19:31:13 | PG(RDBMS)

Tsurugi Advent Calendar 2024の10日目です。

Tsubakuroは、JavaでTsurugiにアクセスする基本となるライブラリーです。
今年は以下のような変更がありました。

  • SessionBuilderにwithKeepAlive()が追加された
  • Sessionにshutdown()が追加された
  • SqlClientのexplain(String)が使えるようになった

Tsubakuro内部の作りについては他にも変更がありますが、プログラマーから使えるAPIに関する変更はこんなところですかね。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Tsurugi SQLコンソール 2024年の変更点

2024-12-08 00:00:00 | PG(RDBMS)

Tsurugi Advent Calendar 2024の8日目です。

Tsurugi SQLコンソール(tgsql)は、TsurugiでSQLを実行するCLIツール(REPL)です。
今年は以下のような修正が入りました。

  • プロンプトが変更できるようになった
  • 暗黙にトランザクションを開始したときのトランザクションラベルに日時が入るようになった
  • binary, varbinary型のデータが十六進数で表示されるようになった
  • \show table で __system_suquencesが表示されなくなった

使い勝手に関するところはあまり変わってませんね^^;

使用できるSQLの構文が増えても、それはtgsqlの変更ではないですからねぇ…。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PostgreSQLとTsurugiの関係

2024-12-07 09:04:58 | PG(RDBMS)

Tsurugi Advent Calendar 2024の7日目です。

昨日(2024/12/6)のPostgreSQL Conference Japan 2024で、Tsurugiに関する講演があったようですね。

自分は参加していないのですが、ブログを書いている方がいらっしゃいます。

Tsurugiに関してどんな話があったのか知りませんが、何かすごかったらしい(笑)


ここで、なぜPostgreSQLのカンファレンスでTsurugiの講演があるのか説明しておきましょう。

Tsurugiの開発当初は、PostgreSQLをフロントエンドにして、バックエンドとしてTsurugiを使うという構想がありました。
ユーザーからはPostgreSQLを触っているように見えるので、PostgreSQLカンファレンスでTsurugiの講演がされていたのです。「TsurugiはPostgreSQLの皮を被ったRDBMS」のような言われ方をしていましたね。

フロントエンドをPostgreSQLに任せると、ユーザー認証(パスワードの管理)やテーブルのメタデータの管理(create文やalster文)にはPostgreSQLの仕組みが使えるので、Tsurugiでは実装しなくて済むということになります。

しかし開発中に方針が変わり、Tsurugiは単独で(フロントエンドが無くても)動作するようになりました。
そんなわけで、ユーザー認証やalter文は後回しになっているわけです…。(さすがにcreate tableが無いと何も出来ないので作られたようですが^^;)

ただ、JDBCに関しては、PostgreSQLのJDBCを使用するという方針から変わっていません。
TsurugiにJavaでアクセスするライブラリーであるIceaxeはJDBCではないので(Tsurugiの機能をフルに使えるようにするというのがIceaxeの方針なので、JDBCの形になっていない)、既存のJavaアプリケーションからIceaxeを使ってTsurugiに乗り換えるのはなかなか難しいでしょう。
PostgreSQLのJDBCを使うためには、PostgreSQL FDWの機能を使ってTsurugiにアクセスできるようにする必要があります。Tsurugiの書籍の第7章で紹介されている機能ですが、もっと便利に使えるように改修中らしいので、期待しています!

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Tsurugiにアクセスするクライアントツール・ライブラリー

2024-12-03 00:00:00 | PG(RDBMS)

Tsurugi Advent Calendar 2024の3日目です。

Tsurugiにアクセスするクライアントツールやライブラリーを簡単に紹介します。

  • ライブラリー
    • Tsubakuro(Java通信ライブラリー)
      • JavaでTsurugiにアクセスするときに必ず使用するライブラリーです。ツールを作るなら、これを使うのが良いでしょう。
    • Iceaxe(Javaライブラリー(高レベルAPI))
      • JavaでTsurugiにアクセスする(SQLを実行する)プログラム(アプリケーション)を書くなら、TsubakuroよりもIceaxeの方が便利です。
  • ツール
    • tgctl
      • tsurugidbの起動や停止を行うCLIツールです。
    • tglogutil
      • tsurugidbのトランザクションログを圧縮するツールです。
    • tgsql(Tsurugi SQLコンソール)
      • SQLを実行する対話形式ツール(REPL)です。
    • tgdump
      • テーブルのデータをダンプする(バイナリーファイルを出力する)CLIツールです。
    • Belayer
      • Web APIでテーブルの管理を行います。Web APIを受け付けるサーバー部分はOSSとして公開されていますが、Web APIにアクセスするクライアントツール(UI)は有償だそうです。
    • Altimeter
      • tsurugidbの運用監視ツールです。これはTsurugiの書籍の発売以降に開発されたものなので、書籍には載っていません。有償サポートに入ると使用できるそうです。
    • Embulkプラグイン(embulk-input-tsurugidbembulk-output-tsurugidb
      • Tsurugi公式ではありませんが、自分が個人的に作ったEmblukプラグインです。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする