キムラデービーブログ

オープンソースデータベースを加速する「キムラデービー」のブログです。カレー日記を兼ねてます。なお著者は2010-06-01より日本オラクルに在籍していますが、本サイト(ブログ、またはウェブサイト)において示されている見解は、私自身の見解であって、オラクルの見解を必ずしも反映したものではありません。
Firebird 4.0のレプリケーション(6) 非同期
0
    Firebird 4.0のレプリケーション(6) 非同期

    Replication in Firebird 4:concepts and usageの続きを。

    Asynchronous replication: 同期レプリケーション
    ・Journal — contiguous sequence of segments: ジャーナル - セグメントの連続したシーケンス
    ・Linked to its corresponding database via UUID: UUID経由で、対応するDBにリンク
    ・Segments are uniquely (and sequentially) numbered: セグメントは一意に(そしてシーケンシャルに)番号付けされる
    ・Change blocks are written one after another,every block has an associated flush timestamp: 変更したブロックは次から次に書き込まれる。すべてのブロックが関連するフラッシュタイムスタンプを持つ
    ・Operational and archive journals: オペレーションとアーカイブのジャーナル

    JUGEMテーマ:コンピュータ



    | meijik | Firebird/InterBase | 21:39 | comments(0) | - | - | - |
    Firebird 4.0のレプリケーション(5)
    0
      Replication in Firebird 4:concepts and usageの続きを。

      Synchronous replication: 同期レプリケーション
      ・Every primary database keeps active connections to all the synchronous replica databases: すべてのプライマリDBはアクティブな接続をすべての同期レプリカDBに保持します。
      ・Replication packets are transferred via native remote protocol and Firebird API: レプリケーションパケットはネイティブのリモートプロトコルとFirebird APIを介して転送されます。
      ・Failed synchronous replica is excluded from replication, others remain working: 問題が発生した同期レプリカDBは、レプリケーションから除外されますが、他の残ったレプリカDBは継続稼働します。

      ログベースとなる他のRDBMS(MySQL, PostgreSQL)のレプリケーションとは、この部分は趣が違いますね。。。。

      JUGEMテーマ:コンピュータ



      | meijik | Firebird/InterBase | 17:43 | comments(0) | - | - | - |
      Firebird 4.0のレプリケーション(4)
      0
        Replication in Firebird 4:concepts and usageの続きを。

        Error handling: エラーハンドリング
        ・Every error is written to replication.log,: すべてのエラーはreplication.logに書かれます。
        prefixed with (primary | replica) side and database pathname: (primary | replica)サイドのプリフィックスと、データベースパスネームとあわせて。
        ・For synchronous replication, errors may be duplicated on the both sides: 同期レプリケーションの場合、エラーは両サイドに重複します。
        ・If error is persistent and affects user operations, : エラーが永続化され、ユーザオペレーションに影響するものの場合、
        replication is automatically disabled (at least partially): レプリケーションは自動的に無効化されます。(少なくとも部分的には)
        ・replication.log may also contain warnings,: replication.logは警告エラーをも含むかもしれません。
        they do not affect the replication flow: それらはレプリケーションフローには影響しません。

        JUGEMテーマ:コンピュータ



        | meijik | Firebird/InterBase | 17:24 | comments(0) | - | - | - |
        Firebird 4.0のレプリケーション(3)
        0
          Replication in Firebird 4:concepts and usageの続きを。

          Architecture:
          Never replicated(レプリケートしないもの)
          ・«De facto» read-only transactions: (デファクトで)読み取り専用トランザクション
          ・ External tables: 外部テーブル
          ・ Virtual tables: 仮想テーブル
          ・ Temporary tables: 一次テーブル
          ・ Any garbage collection activity: GC(ガベージコレクション)活動のすべて
          ・ System sequences, except RDB$BACKUP_HISTORY: RDB$BACKUP_HISTORY以外のシステムシーケンス
          ・ Some DDL commands:いくつかのDDLコマンド
          ALTER DATABASE, DROP DATABASE
          CREATE SHADOW, DROP SHADOW
          CREATE USER, ALTER USER, DROP USER

          JUGEMテーマ:コンピュータ



          | meijik | Firebird/InterBase | 07:08 | comments(0) | - | - | - |
          2020年のFirebird
          0
            本エントリはFirebird Advent Calendar 2019の25日目です。

            さて、2020年のFirebird ! といえば、まずは次版のFirebird 4.0の話になります。
            ....と書いて、この話はもう三年くらいしてますねorz

            2017年のFirebird

            2018年のFirebird

            2019年のFirebird

            去年のクリスマスにでるか、といわれたBetaはBeta1が2019-02-20にリリースされました。

            Firebird 4.0 Beta 1 release is available for testing

            「しばしばリリース」を掲げましたが、やはり歩みはスローなままです(笑)
            まずは、レプリケーションを実装した4.0が2020年中にリリースされることを期待します。

            メリークリスマス&ハッピーニューイヤー!

            JUGEMテーマ:コンピュータ



            | meijik | Firebird/InterBase | 07:00 | comments(0) | - | - | - |
            Firebird 4.0のレプリケーション(2)
            0
              Firebird 4.0のレプリケーション(2)

              本エントリはFirebird Advent Calendar 2019の24日目です。

              "Replication in Firebird 4:concepts and usage" のArchtecture : Specifics,Optimization (仕様と最適化)を見ます。

              Specifics: 仕様
              ・Both «changes» and «undos» are replicated : 変更とアンドゥの両方がレプリケートされます
              ・Savepoint stack is preserved : セーブポイントのスタックは保存されます。
              ・«Undos» are frame-based (using savepoints): アンドゥはフレームベースです。(セーブポイントに使われます)
              Optimization : 最適化
              ・Small rolled back transactions are not flushed,just discarded : 小さなロールバックトランザクションはフラッシュされず、捨てられます

              コミットされたトランザクション以外が反映される仕組みが珍しいです。(というかはじめてみた)

              さて、この調子では、レプリケーションは終わりません。また、来年以降続けたいと思います。

              JUGEMテーマ:コンピュータ



              | meijik | Firebird/InterBase | 07:08 | comments(0) | - | - | - |
              Firebird 4.0のレプリケーション(1)
              0
                Firebird 4.0のレプリケーション(1)

                本エントリはFirebird Advent Calendar 2019の23日目です。

                "Replication in Firebird 4:concepts and usage" のArchtecture : Under the hood (内部構造)を見ます。

                ・Replication is transaction-aware : レプリケーションはトランザクションを意識したものです。
                ・Every transaction has internal replication buffer: すべてのトランザクションは内部レプリケーションバッファを持ちます。
                (size is configurable, should be balanced) : サイズは調整可能で、バランスをとるべきです。
                ・Buffer is flushed upon either: バッファーは以下のタイミングで「フラッシュ」されます。
                o Size overflow : サイズを超えた場合
                o Transaction commit / rollback: トランザクションがコミット/ロールバックされた場合
                o Savepoint rollback: セーブポイントにロールバックされた場合
                ・Every «flush» produces a replication packet (aka «change block»): すべての「フラッシュ」はレプリケーションパケット(いわゆる「チェンジ・ブロック」)を生成します。
                ・Blocks are transferred to replica database(s) or written to the journal: 「ブロック」はレプリカデータベースに転送されるか、ジャーナルに書かれます。

                ・Buffers are not always flushed synchronously: バッファーはいつも同期してフラッシュされるわけではありません。
                ・Replication background thread per database: データベースごとにレプリケーション用バックグラウンドスレッド
                ・Queue of «overflow» blocks to be flushed: オーバーフローしたブロックのキューはフラッシュされます
                ・Lagging is limited to keep the throughput stable: スループットの安定を保持するために、ラグは制限されます

                JUGEMテーマ:コンピュータ



                | meijik | Firebird/InterBase | 06:30 | comments(0) | - | - | - |
                Firebird 5.0のプラン:投票結果が多い機能(5)
                0
                  Firebird 5.0のプラン:投票結果が多い機能(5)

                  本エントリはFirebird Advent Calendar 2019の20日目です。

                  "Top-voted tickets from the tracker" として十個とりあげられていますが、昨日の続きで9)10)を見ます。

                  9) CORE-738 Add support for SQL Schemas
                  10) CORE-670 New database object - Constants

                  9) CORE-738 SQLスキーマ(Schema)のサポート
                   SQL標準では四層構造で構成されますが、FirebirdとSQLiteは1ファイルでスキーマ=データベースの、二層構造です。
                  そのためスキーマをサポートするとなると、現在のデータベース(1ファイル)内に複数のスキーマをおけるようにするか、SQLiteのように他のデータベースファイルに名前をつけてアタッチするか、にする必要があります。
                  Firebird, SQLIte : 二層

                   私としては、SQLite方式が手軽で分かりやすいんじゃないかなー、と思います。
                  SQLite : Attachで他のDBファイル参照

                  10) CORE-670 新しいデータベースオブジェクトConstants(コンスタンス: 定数)のサポート
                   最初、Constraints(制約)かと思っていたら、コンスタント(定数)なんですよね。

                   とりあえず、これはいらないかなー。

                  さて、今週はこれでおわり。来週はレプリケーションを試してみます
                  | meijik | Firebird/InterBase | 14:43 | comments(0) | trackbacks(0) | - | - |
                  Firebird 5.0のプラン:投票結果が多い機能(4)
                  0
                    Firebird 5.0のプラン:投票結果が多い機能(4)

                    本エントリはFirebird Advent Calendar 2019の19日目です。

                    "Top-voted tickets from the tracker" として十個とりあげられていますが、昨日の続きで7)8)を見ます。

                    7) CORE-734 Full-Text indexing
                    8) CORE-5148 Support native JSON datatype for columns as MySQL / PostgreSql
                    #PostgreSqlは原文ママです。

                    7) CORE-734 フルテキストインデックス
                    一般的には転置インデックスを作成した全文検索の機能の実現に利用します。他RDBMSでのサポート状況は次のとおり。

                    Oracle DB: Oracle Text
                    SQL Server: フルテキスト検索
                    IBM Db2: Db2 Text Search
                    # ここらへんは古い?? -> テキスト・エクステンダー、ネット・サーチ・エクステンダー、およびテキスト情報エクステンダー

                    PostgreSQL: pg_bigm, PGroonga
                    MySQL: fulltext index(本体組み込み), Mroonga

                    FirebirdもGroongaベースでやるとよさそうな気がします。。。。

                    8) CORE-5148 ネイティブな JSON データタイプ(MySQL / PostgreSQLのような)のサポート
                    見出しのように、MySQL, PostgreSQLのようなネイティブのデータ型がもとめられています。
                    PostgreSQLとMySQLのJSON型サポートはそれぞれマニュアルをご参照ください。

                    ・PostgreSQL
                    9.15. JSON関数と演算子
                    8.14. JSONデータ型

                    ・MySQL
                    [5.7] 11.5 The JSON Data Type
                    [8.0] 11.5 The JSON Data Type

                    JUGEMテーマ:コンピュータ



                    | meijik | Firebird/InterBase | 08:44 | comments(0) | trackbacks(0) | - | - |
                    Firebird 5.0のプラン:投票結果が多い機能(3)
                    0
                      Firebird 5.0のプラン:投票結果が多い機能(3)

                      本エントリはFirebird Advent Calendar 2019の18日目です。

                      "Top-voted tickets from the tracker" として十個とりあげられていますが、昨日の続きで5)6)を見ます。

                      5) CORE-796 Create Table as Select .…
                      6) CORE-659 GIS implementation (opengis)

                      5) CORE-796 SELECT結果でのテーブル作成(Create Table as Select .…)
                      俗にCTAS(Create Table As Select)と呼ばれるこの操作は「テーブルのコピー」に使われます。「テーブルのコピー」という概念は以下の操作が含まれます。

                      (1) テーブル定義のコピー((2)を除く)
                      (2) インデックスや各種制約のコピー
                      (3) データのコピー

                      RDBMSの実装により、以下の方法があります。残念ながらFirebirdには方法がありません

                      (a) CREATE TABLE new_table AS SELECT ... FROM old_table
                      Oracle, MySQL, SQLite, PostgreSQL, Db2(WITH NO DATA)
                      (b) SELECT ... INTO new_table FROM old_table
                      SQL Server, PostgreSQL
                      (c) CREATE TABLE new_table LIKE old_table
                      Oracle, MySQL, PostgreSQL, Db2
                      (d) CREATE TABLE new_table(LIKE old_table[,new_col_def,...])
                      SQL標準

                      (a),(b)は、(1),(3)のみがコピーされます。通常「SELECT * FROM」を利用して、テーブルの
                      すべてをコピーしますが、古いテーブルへのSELECT文で指定カラムだけを新しいテーブルに反映したり、
                      WHERE句に条件をつけて、選択されたデータだけ新しいテーブルに反映する、ということもできます。

                      (c)は(1),(2)のみがコピーされます。そのため、(1),(2),(3)すべてを満たすため
                      には、作業の後、欠損した情報を補完するか、SQL以外の独自コマンド、ツールを利用
                      する必要があります。(テーブル単位のバックアップ・リストアツールがあれば、それ
                      を利用するのが簡単でしょう)

                      [MySQLの例](c)にINSERT ... SELECTで欠損を補う
                      CREATE TABLE new_table LIKE old_table;
                      INSERT INTO new_table SELECT * FROM old_table;

                      (d)はSQL標準で定められているもので、(c)に似ていますが、以下の点が違います。
                      ・(1)のみがコピーされ、(2)はコピーされない
                      ・カラムを追加定義できる。

                      (a)で使われているCREATE TABLE new_table AS SELECTは、デフォルトではDb2ではMQT(マテビュー相当
                      の実体化したビュー)の作成になります。WITH NO DATAを追加して結果を表として作成することを明記してください。

                      Firebirdには(a),(c)の組でサポートしてほしいですね。Oracle DB, MySQL, PostgreSQL, Db2と同様に。
                      (a)はローカルなテンポラリテーブル作成にも使われるので、必須です。

                      6) CORE-659 GIS 実装 (opengis)
                       PostGIS, MySQL 5.7の本体への実装、Oracle DBの拡張無償化など、いまホットなGIS実装が要望されています。
                      盛り上がりは去年の以下のアドベントカレンダーをご参照ください。

                      RDBMS-GIS(MySQL,PostgreSQLなど) Advent Calendar 2018

                      今年もやっていますが、ちょっと告知が遅くまだ埋まっていません。ぜひみなさんもチャレンジしてみませんか?

                      RDBMS-GIS(MySQL,PostgreSQLなど) Advent Calendar 2019

                      明日は7)8)の予定です。

                      JUGEMテーマ:コンピュータ



                      | meijik | Firebird/InterBase | 09:03 | comments(0) | trackbacks(0) | - | - |
                         1234
                      567891011
                      12131415161718
                      19202122232425
                      2627282930  
                      << April 2020 >>
                      + RECOMMEND
                      100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊
                      100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊 (JUGEMレビュー »)

                      100人のうちの一人としてミックさんの本を推薦しています。
                      + RECOMMEND
                      MySQL 5.1 Plugin Development
                      MySQL 5.1 Plugin Development (JUGEMレビュー »)
                      Andrew Hutchings,Sergei Golubchik
                      MySQL 5.1 のプラグインを作るならこれ!
                      + RECOMMEND
                      AWKを256倍使うための本 (Ascii 256倍)
                      AWKを256倍使うための本 (Ascii 256倍) (JUGEMレビュー »)
                      志村 拓,鷲北 賢,西村 克信
                      ここにきてまさかの復刊。15〜16年前の本ですが、いまでも十分役立ちますよ!!
                      + RECOMMEND
                      Linux-DB システム構築/運用入門 (DB Magazine SELECTION)
                      Linux-DB システム構築/運用入門 (DB Magazine SELECTION) (JUGEMレビュー »)
                      松信 嘉範
                      Linux-DB システム構築の新スタンダード。DB Magazine人気連載、待望の書籍化です!!
                      + RECOMMEND
                      + RECOMMEND
                      超・極める!MySQL
                      超・極める!MySQL (JUGEMレビュー »)
                      坂井 恵,志村 和彦,ひろせ まさあき,松信 嘉範
                      内容は少々古くなりましたが、内部説明があり、いろいろ面白いです。
                      + RECOMMEND
                      The Root of .NET Framework
                      The Root of .NET Framework (JUGEMレビュー »)
                      荒井 省三
                      .NETの根っこをつかむ、か?
                      + RECOMMEND
                      エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド
                      エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド (JUGEMレビュー »)
                      奥野 幹也
                      これまでにない構築、そして構築後のMySQLのための本。
                      + RECOMMEND
                      Database Management Systems
                      Database Management Systems (JUGEMレビュー »)
                      Raghu Ramakrishnan,Johannes Gehrke
                      ミックさん連載の参考書籍です。
                      + RECOMMEND
                      Advanced Programming in the UNIX Environment: Paperback Edition (2nd Edition) (Addison-Wesley Professional Computing Series)
                      Advanced Programming in the UNIX Environment: Paperback Edition (2nd Edition) (Addison-Wesley Professional Computing Series) (JUGEMレビュー »)
                      W. Richard Stevens,Stephen A. Rago
                      必読! といいつつ私が読んだのは初版の日本語訳です。差分はチェックしないといけませんね。
                      + RECOMMEND
                      + RECOMMEND
                      + RECOMMEND
                      Western Digital Scorpio Blue 2.5inch 5400rpm 320GB 8MB PATA WD3200BEVE
                      Western Digital Scorpio Blue 2.5inch 5400rpm 320GB 8MB PATA WD3200BEVE (JUGEMレビュー »)

                      DELL SX260の換装用に購入。今はコチラのほうが安いですね。
                      + RECOMMEND
                      情熱プログラマー ソフトウェア開発者の幸せな生き方
                      情熱プログラマー ソフトウェア開発者の幸せな生き方 (JUGEMレビュー »)
                      Chad Fowler
                      OSC2010神戸に出展されたジュンク堂で買いました。
                      + RECOMMEND
                      Software Design 総集編 【2000~2009】(DVD付)
                      Software Design 総集編 【2000~2009】(DVD付) (JUGEMレビュー »)

                      メガトン級の過去記事。売り切れる前にお店に急げ!
                      + RECOMMEND
                      + RECOMMEND
                      玄人志向 2.5型HDDケース SATA対応USB2.0接続 GW2.5AI-SU2
                      玄人志向 2.5型HDDケース SATA対応USB2.0接続 GW2.5AI-SU2 (JUGEMレビュー »)

                      Aspire 1410 HDD換装後、昔のHDDはこれにいれます。
                      + RECOMMEND
                      + RECOMMEND
                      acer Aspire Timeline AS1410 11.6型ノートPC Windows7搭載 250GB ブラック AS1410-KK22
                      acer Aspire Timeline AS1410 11.6型ノートPC Windows7搭載 250GB ブラック AS1410-KK22 (JUGEMレビュー »)

                      色違い黒(他に青と白があります): メモリは最大4GBとあるが、がんばれば8GBいけるらしい。
                      + RECOMMEND
                      Firebird 徹底入門
                      Firebird 徹底入門 (JUGEMレビュー »)
                      木村 明治,はやし つとむ,坂井 恵
                      Firebird日本ユーザ会のはやしさん、そしてMyNAから拝借(?) してきた坂井さんとともに書きました。まだ誰も知らないFirebird 2.5や、いままでドキュメントのなかったツール類についてもソースを確認してとりあげた本です。是非ご活用ください。
                      + SELECTED ENTRIES
                      + RECENT COMMENTS
                      • たまたま「プリントヘッドの種類が違います」エラーから復活@MG6230
                        meijik (11/20)
                      • [ミュージシャンに聴かせたい・弾かせたい!] (4) 山田元気様
                        meijik (07/27)
                      • 毎月日経SYSTEMSが届くたびに?が増え続ける: 日経SYSTEMSのコラム「ITアーキテクチャーの真髄」と「第7正規化」
                        meijik (03/03)
                      • 2019年の木村明治
                        田中尚 (01/08)
                      • 使い慣れたSQLに潜む実装依存: Firebirdの場合(6) 文字列との結合演算子
                        noname (12/10)
                      • 毎月日経SYSTEMSが届くたびに?が増え続ける: 日経SYSTEMSのコラム「ITアーキテクチャーの真髄」と「第7正規化」
                        Moriaki_ (01/05)
                      • 毎月日経SYSTEMSが届くたびに?が増え続ける: 日経SYSTEMSのコラム「ITアーキテクチャーの真髄」と「第7正規化」
                        Moriaki_ (01/05)
                      • 2015年版 InterBaseの歩み
                        nakagami (12/06)
                      • 毎月日経SYSTEMSが届くたびに?が増え続ける: 日経SYSTEMSのコラム「ITアーキテクチャーの真髄」と「第7正規化」
                        meijik (11/22)
                      • 分散DB本読書会第46回メモ「STOP AFTER 10」
                        masudahidehiko (09/01)
                      + RECENT TRACKBACK
                      + CATEGORIES
                      + ARCHIVES
                      + MOBILE
                      qrcode
                      + LINKS
                      + PROFILE