タグ

DBに関するshozzyのブックマーク (87)

  • Ruby on RailsでDB マイグレーションする際にシステム障害を回避するための工夫 - LCL Engineers' Blog

    Webエンジニアの森脇です。 LCLでは、DB設計変更で、DBマイグレーションをする際にシステム障害を回避するためのいくつか工夫をしています。今回は、その内容を簡単にご紹介いたします。 migration作成時の注意 ブランチ戦略 原則、migrationのブランチは独立させるようにしています。 migrationとコードのデプロイはタイミングを分けたほうが安全であり、さらに他のコード修正と混ぜると、切り戻し等がやりづらいくなるため 新規JOBなど既存コードに影響しない場合は、独立させなくても可 既存コードに影響を与えない migration実行後も既存コードで正常稼働するように、migrationを作成します。 以下にケース別の手順を紹介します。 テーブルの新規作成 テーブルの新規作成は特に意識することはありません。 ただし、既存テーブルへ外部キーを貼る場合は、後述の手順に従い注意が必要

    Ruby on RailsでDB マイグレーションする際にシステム障害を回避するための工夫 - LCL Engineers' Blog
  • CentOSで gem install sqlite3 ができない時の対処 - 僕とrubyと苦悩

    環境 ruby2.4.1 CentOS rails5.1.3 sqlite3-1.3.13  をインストールしようとすると下記のようなものがでたので解決していきたいと思います。 ./siteconf20170815-2287-vt7u3p.rb extconf.rb checking for sqlite3.h... no sqlite3.h is missing. Try 'brew install sqlite3', 'yum install sqlite-devel' or 'apt-get install libsqlite3-dev' and check your shared library search path (the location where your sqlite3 shared library is located). *** extconf.rb failed

    shozzy
    shozzy 2018/12/08
    解決できた!助かりました!
  • パフォーマンス比較 Cassandra、Mongodb、SQLite、H2、MySQL、Postgres - cypher256's blog

    下記のようなシステムでパフォーマンスが良さげな SQLite を使用予定ですが、もっと速いものが無いか確認のため他のデータベースのパフォーマンスを計測してみました。SQL 利用前提ですが、NoSQL が圧倒的な性能を出す場合は検討する必要があるので KVS も確認しました。 データ件数は 1 億件程度、JDBC SQL 利用可能 INSERT、UPDATE はバッチ SELECT は主キーアクセス性能を重視 将来スケールアウトのための分散はありえるが、スタンドアロンで遅いのはだめ データベースのパフォーマンス比較 計測したデータベース データベース名 タイプ 形態 評判 計測についての備考 SQLite RDB 組み込み ※2 おもちゃ、Android標準 JDBC操作 ※1 H2 RDB 組み込み ※2 組み込み最速 JDBC操作 ※1 Derby RDB 組み込み ※2 Java標準で

    パフォーマンス比較 Cassandra、Mongodb、SQLite、H2、MySQL、Postgres - cypher256's blog
    shozzy
    shozzy 2018/11/22
    古い情報だが、ある程度の参考として。
  • SQLiteのテストコードは4567万8000行! 本体のコードは6万7000行

    軽量なリレーショナルデータベースとして人気のSQLite。そのWebサイトに掲載されている「How SQLite Is Tested」の内容が、海外のプログラマなどのあいだで話題になっています。 3月に公開された最新バージョンのSQLite 3.6.23。体のソースコードは約6万7200行(67.2KSLOC、Kilo Source Lines of Code:空行やコメントを除いた行数)なのに対し、テストコードはなんと4567万8300行(45678.3KSLOC)だと紹介されているのです! これはテストコードが体の約679倍もの大きさだということになります。 100%のブランチカバレッジ SQLiteコアのライブラリをテストするテストコードとして、以下の3つが紹介されています。 TCL Tests TCL Testsはもっとも古いテストコードで、TCL scripting lang

    SQLiteのテストコードは4567万8000行! 本体のコードは6万7000行
    shozzy
    shozzy 2011/02/03
    これはすごい。TDDでいうところの「品質保証のためのテスト」がものすごく充実している。
  • ウノウラボ Unoh Labs: 今からはじめるCassandra入門

    こんにちわ、7月に入社したばかりの@emorinsです。 題名の通りですが分散データベース『Apache Cassandra』を紹介したいと思います。 少し前はHadoop(とHBase)と比較されることの多かったCassandraですが、最近はHadoopの人気に押されつつあるようにも感じます。 しかし、CassandraとHadoopは特徴が異なり、よく言われるのがCassandraはリアルタイム処理に向き、一貫性のかわりに可用性を重視し、またHadoopとは違って単一障害点もありません。 今日はそんなHadoopとは違った魅力のある分散データベース『Apache Cassandra』をはじめてみましょう。 目次 Cassandraとは アーキテクチャ Cassandraの特徴 コンシステンシレベル データモデル MemtableとSSTable セットアップ storage-conf

  • マイクロソフト萩原正義氏MIJS講演「スケールアウト設計における問題点の考察と分析手法の提案」 : 小野和俊のブログ

    昨年末にMIJSのコンソーシアム内での交流会があり、前回のはてな伊藤さん講演に続き、理事会の方から講演者の選定とコンタクトを依頼されたので、マイクロソフトの萩原さんに「クラウドの時代のデータモデリング」の講演をお願いした。 今回萩原さんに講演をお願いしたのは、以前参加させていただいたマイクロソフト系のイベントでの萩原さんの講演が大変興味深い内容だったからだ。 以下、今回の講演を聞きながら私がメモした内容である。 「スケールアウト設計における問題点の考察と分析手法の提案」 現在マイクロソフトでクラウドの技術のうち、開発の現場に対して、どういうやり方をしなければいけないかを提案する仕事をしている。 今日お話しする内容は、インターネットや書籍で紹介されているものよりも、深いところを話していきたい。とはいえ1時間という短い時間なので、ポイントを絞って話をしていきたい。マイクロソフトはWindows

    マイクロソフト萩原正義氏MIJS講演「スケールアウト設計における問題点の考察と分析手法の提案」 : 小野和俊のブログ
  • MySQL AB :: Managing Hierarchical Data in MySQL

    "The Documents contained within this site may include statements about Oracle's product development plans. Many factors can materially affect Oracle's product development plans and the nature and timing of future product releases. Accordingly, this Information is provided to you solely for information only, is not a commitment to deliver any material, code, or functionality, and should not be reli

    shozzy
    shozzy 2009/12/15
  • NOSQL Patterns、和訳 - @katzchang.contexts

    http://horicky.blogspot.com/2009/11/nosql-patterns.html 11/30時点で、一通り翻訳のうち、正直ベースのざっくり感覚(業界用語)で75%完了です。 人も理解が怪しいながら訳しているので、随所に間違いを仕込んでいます。ご指摘頂ければ幸いです。 NOSQL Patterns ここ数年、大規模データを扱うデータストレージ機構が発展している。これらの機構は従来のRDBMSモデルとは異なっており、NOSQLとも呼ばれている。キープレイヤーとしては: GoogleBigTable, HBase, Hypertable AmazonDynano, Voldemort, Cassendra, Riak Redis CouchDB, MongoDB これらは、次の共通点を持っている。 Key-Valueストア 多数台の一般的なPCで運用可能 複数サー

    NOSQL Patterns、和訳 - @katzchang.contexts
    shozzy
    shozzy 2009/12/06
    GJ
  • 実録、ほぼ無停止なMySQLのフェイルオーバ (動画もあるよ) - (ひ)メモ

    レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン でも掲げたゴールである、「マスタが落ちてもぐーすか寝ていられるようにしたい」がほぼできたので、ほとんどサービスが停止することなく、フェイルオーバする様をスクリーンキャストに収めました。 埋め込みプレイヤーだと、小さくてわからないと思うので、リンク直接でみてください。 http://www.irori.org/pub/mysql-mm.mov 登場するホスト 登場するホストは2台、db901db902です。 最初は、db901が更新系クエリを受けるプライマリでdb900の浮動IPアドレスを持っています。 画面分割 画面は5分割しています。 左上 = 「select sysdate(),@@server_id」をdb900に対して(sleep 1しながら)延々と実行しまくりんぐ 右上 = ping -n

    実録、ほぼ無停止なMySQLのフェイルオーバ (動画もあるよ) - (ひ)メモ
  • 多次元構造をRDBで表現するのって難しいよね - Float on the flow

    こちらからのインスパイア。というか思い出したこと。 「今時の組織はSQL不向き? - Ognacの雑感」 http://blogs.wankuma.com/ognac/archive/2009/09/23/181540.aspx 以前、ワークフローエンジンを自前で組んだことがあったのですが、そのときにも大変苦労しました。 組織図ツリーと、ワークフローのリストと。 それぞれ時系列での変化への対応も必要で。 バージョン1はかなりきたないER図になってしまったことを思い出します。 各々のツリー表現と、相互の関係と、そこに使用開始日・終了日をもたせる構造にしてしまったので。 で、当然のごとく処理も重かったと。 (データがたまるとガンガン重くなった) バージョン2では、楽々ERDレッスンとか読んで勉強した内容を元にER図から見直して、だいぶすっきりした構造にはなったのですが、外的要因によりコードは日

    多次元構造をRDBで表現するのって難しいよね - Float on the flow
    shozzy
    shozzy 2009/09/30
    ですね。多次元構造をそのままストンと永続化しておける仕組みがあるといいんだけども。/むしろKVSで永続化してその上は全部オブジェクト内で処理、な流れ?
  • 日常用語でnullを理解する(2) - 極北データモデリング

    SQLにおけるnullは「値があることは分かっているが、それが何なのかはわからない」という意味だ。 「値がない」という意味ではない、ということに注意しなくてはならない。 nullは「値がない」ではない nullを「値がない」という意味だと考えてしまうと、 'a'と'b'とnullを連結した結果が、nullになる 1 + nullがnullになる といったSQLの挙動の意味が理解できなくなる。 nullが「値がない」という意味なら select 'a' || 'b' || null の結果には少なくとも'ab'が含まれているはずあって、「値なし」になってしまうのはおかしい。 また select 1 + null の結果が「値なし」になってしまうのも何だかよくわからない。 つまりSQLは、nullを「値がない」という意味のものとしては扱わない。 が、「値がない(まだない or あり得ない)」と

    日常用語でnullを理解する(2) - 極北データモデリング
    shozzy
    shozzy 2009/08/26
    これは興味深い!こんな見方したことなかったけど、言われてみればそうだねぇ。
  • mysql と drizzle の負荷テストツール「skyload」が凄い! - kazuhoのメモ置き場

    tmaesakaさんがやってくれました。 ずいぶん前からSQLのベンチマークを測定するのに使いやすいプログラムないかなーと思ってました。個人的にはmysqlslapというのを使ってたのですが、幾らか気に入らない所があったりコマンドラインオプションが複雑で毎回 --help を読んだりしていました。余計な機能なんかなくて、指定したSQLを高速にくりかえしてくれる物が欲しいなぁって思ってたんです。 とあるIRCでこの前、tmaesakaさんから「いま作ってる」という話を聞いて、いろいろ要望を言ってたんですが、ついさっきチュートリアルが公開されました。速いw 名前はskyload。とても小さく、実装コードだと800行程度です。しかもオプションが少ないので使い方が単純です。試しに適当な INSERT の速度を測ってみました。 $ skyload --server=localhost --mysql

    mysql と drizzle の負荷テストツール「skyload」が凄い! - kazuhoのメモ置き場
    shozzy
    shozzy 2009/07/08
  • 奥さんにささげる - ひがやすを技術ブログ

    奥さんっていってものほうじゃなくて、http://developer.cybozu.co.jp/kazuho/のほうね。 昨日のTokyo Cloud Developerで、kazuhoとBigtableの話をしてたんだけど、ちょうど、松尾さんからいい資料があるといわれてみてみたらとてもすばらしかった。松尾さん、ありがとうー。 http://sites.google.com/site/io/under-the-covers-of-the-google-app-engine-datastore もう既に見ているかもしれないけど、一応ご報告。 Google App Engine(Bigtable)の内部のデータのもちかたが詳しく説明されています。 これをみずに、Bigtableは理解できない。 奥さんじゃない人も、App Engineに興味のある方は見るといいよ。

    奥さんにささげる - ひがやすを技術ブログ
  • Kazuho@Cybozu Labs: Pacific という名前の分散ストレージを作り始めた件

    大規模なウェブアプリケーションのボトルネックがデータベースであるという点については、多くの同意が得られるところだと思います。解決策としては、同じ種類のデータを複数の RDBMS に保存する「sharding」 (別名:アプリケーションレベルパーティショニング/レベル2分散注1) が一般的ですが、最近では、分散キーバリューストア (分散 KVS) を使おうとする試みもみられるようになってきています。 分散 KVS が RDBMS sharding に対して優れている要素としては、事前の分割設計が不要で、動的なノード追加(とそれにともなう負荷の再分散)が容易、といった点が挙げられると思います。一方で、Kai や Kumofs のような最近の実装では eventually consistent でこそ無くなってきているものの、ハッシュベースの分散 KVS は、レンジクエリができなかったり (例:

    shozzy
    shozzy 2009/06/12
    これは注目だ
  • [データベース設計編]参照整合性制約機能を多用してはいけない

    参照整合性(Referential Integrity)とは,テーブル間のデータの整合性を保つための仕組みである。例えば,「受注テーブルの商品番号カラムには,商品テーブルの商品番号カラムに同じ値がなければならない」といった制約を維持するための仕組みである(図1)。RDBMSはこの整合性を維持するための機能として,「参照整合性制約」といった機能を持つことが多い。これは,定義された参照整合性をチェックし,整合性を逸脱するような値がテーブル内に存在しないようにする機能である。この機能を使用する場合は,テーブル定義の際に「Constraint句」を用いることが多い。 参照整合性制約機能は,誤ったデータがテーブルに含まれないようにするには効果的な機能である。だが,むやみに使うと問題を引き起こすことがあるので,注意が必要だ。 データ移行時にエラー 最も問題が起こりやすいのは,データを移行する際だ。先の

    [データベース設計編]参照整合性制約機能を多用してはいけない
    shozzy
    shozzy 2009/06/06
    うーん。気持ちはわかるけど、基準が明確じゃないよなぁ。
  • 主キーは必須ではありません

    Ognacの雑感 木漏れ日々 目次 ホーム 連絡をする RSS Login Blog 利用状況 投稿数 - 1487 記事 - 0 コメント - 45628 トラックバック - 143 書庫 2014年5月 (6) 2014年4月 (13) 2014年3月 (14) 2014年2月 (12) 2014年1月 (12) 2013年12月 (13) 2013年11月 (13) 2013年10月 (11) 2013年9月 (13) 2013年8月 (14) 2013年7月 (13) 2013年6月 (14) 2013年5月 (15) 2013年4月 (13) 2013年3月 (14) 2013年2月 (13) 2013年1月 (15) 2012年12月 (14) 2012年11月 (14) 2012年10月 (15) 2012年9月 (14) 2012年8月 (13) 2012年7月 (13)

    shozzy
    shozzy 2009/06/05
    自分は主キーは必須にしたい派だな。理由は、主キーがついてない他人のテーブルを処理するときにいつも「どこまででユニークになるのか?」と頭を悩ませるから。
  • 株式会社マジカジャパンの羽生章洋が書いてるブログ:key-valueはデータディクショナリの夢を見るか - livedoor Blog(ブログ)

    今日はCouchDBの話というよりも、key-valueという形に基づいてのデータ構造設計を考えてみたときの与太話です。 DOA自体の説明はここでは端折ります(ERDレッスンをお読みくださいm(__)m)が、その考え方の中で非常に重要でありながらも実現に際して途轍もなく困難なものがあります。それがデータディクショナリです。 データディクショナリ(以下DD)とは、乱暴に要約するとシステム内で登場する全てのデータ項目に対して意味合い・意図をしっかりと定義して辞書のように統合し、利用者の間でぶれのない状態にしましょうというものです。そしてDDの作成においては、エリアス・ホモニム・シノニムの除去が重要になります。ホモニム・シノニムについてはhttp://www.atmarkit.co.jp/fbiz/cinvest/opinion/qa/qa13_2.htmlをご覧ください。ちなみにエリアスは別名

    shozzy
    shozzy 2009/05/23
    とってもあるある感。前職はDOAバリバリの職場だったし。
  • クラウドにはぐっとこないけど、BASEやCAP定理は面白い - 未来のいつか/hyoshiokの日記

    40代、50代の人たちはなぜ表現しないのかhttp://d.hatena.ne.jp/hyoshiok/20090517#p1 には多数のアクセスをいただいた。日記を書いたおかげで多くの人から様々なコメントやトラックバックをいただいた。これもインターネットの可能性、ポジティブな側面だ。ありがたいことである。御礼を申し上げたい。 反応は大きくわけて二つ。A:40代、50代は表現していいる。お前が知らないだけだ。B:40代、50代は表現していない。 Aのパターンは、嬉しいサプライズである。いろいろな人から、こーゆー面白いブログがあるよとか、こーゆー表現があるよという情報を頂いた。トラックバックもいろいろ拝見した。コメント欄に自分は40代、50代と多くの人が名乗ってくれたのは当に嬉しかった。 IT産業にいるとどもせっかちでいけない。書いているおじさんもいる*1。漫画で教えてもらった。書いている

    クラウドにはぐっとこないけど、BASEやCAP定理は面白い - 未来のいつか/hyoshiokの日記
    shozzy
    shozzy 2009/05/23
    これはよい記事!今まで引っかかっていたなにかが取れた。ACID村にいたからクラウド的な世界がわからなかったんだ。/CAP定理
  • オブジェクト指向設計とRDBの狭間で - Geek Not Found

    ソフトウェア開発SIerで作られる業務アプリケーションでは、オブジェクト指向設計ではなくRDBベースの設計が主流です。一方で、オープンソースのアプリケーションでは積極的にオブジェクト指向設計を取り入れているものは少なくありません。このギャップは一体何でしょうか。データベースへの依存度が高いアプリケーションは、オブジェクト指向設計を適用するのが難しいように思います。オブジェクト指向設計の前身はER設計なのでどちらも考え方は共通していますが、データアクセスの方法がまったく異なります。オブジェクトに対する操作をSQLに置き換えようとすれば、オブジェクトの性質に矛盾するのは明白です。それゆえ、データベースへの依存度が高いアプリケーションはRDBのデータアクセス方法に影響されてしまいます。今時のプログラマにはオブジェクト指向は必須、常識、みたいな言説はよく聞きます。しかし、煽りでもなんでもなく、実の

    shozzy
    shozzy 2009/05/03
    「そろそろKey-Valueデータベースがブレイクしないか期待しています」
  • OPC Diary: “The no spin details on the new SDS features”こいつは波乱の幕開けだ

    « 今年のチューリング賞はバーバラ・リスコフさんに | メイン | 新しいSQL Data Servicesに対するFAQ その1 » 2009年03月11日 “The no spin details on the new SDS features”こいつは波乱の幕開けだ 今までクラウドコンピューティングのデータストアはKVSが命でリレーショナルデータベースなんてスケールアウトできなくて、パフォーマンスも出ないからステステとさんざん言われ続けてきたわけですが。。。 SQL Data Services Team Blog : The no spin details on the new SDS features この記事ではKVS何それ? クラウドだろうとなんだろうと、うちらあくまでもリレーショナルデータベース屋ですから、お客さんに提供するのはリレーショナルデータベースすよ。

    shozzy
    shozzy 2009/03/14
    これはアツい!RDBがスケールすれば今の仕掛けからの移行もスムーズだもんな。