タグ

databaseに関するtomiyanxのブックマーク (5)

  • 大規模データベースを安全にマイグレーションする仕組み - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、Yakumo兼コネクト支援チームの@ueokandeです。 サイボウズには体験入部という制度があり、数週間〜数ヶ月の期間、他チームの業務を体験できます。 自分もこの制度を使い、1ヶ月ほどGaroon開発チームを体験してきました。 自分はこの期間で、Garoonの大規模なデータベースを安全にマイグレーションするための仕組みの設計と、そのプロトタイプを実装しました。 背景 Garoonはサービスのアップデートと同時に、データベースのマイグレーションを実行します。 ここでいうマイグレーションは、主に2つの処理があります。 テーブルスキーマの更新。ALTER TABLEによるカラムの追加、削除など。 データの変換。既存レコードのデータ編集など。 Garoonはメンテナンスウィンドウを設けてバージョンアップを実施します。 このバージョンアップが毎回確実に成功すればいいのですが、実際はそれ

    大規模データベースを安全にマイグレーションする仕組み - Cybozu Inside Out | サイボウズエンジニアのブログ
  • NoSQLデータベース:調査と決定のガイダンス(その3) | POSTD

    追記専用 ストレージ(ログ構造化ストレージとも呼ばれます)は、順次書き込みをすることでスループットの最大化を実現しようとします。ログ構造化ファイルシステムの研究の歴史は長いものの、追記専用入出力がデータベースに関して普及したのは、BigtableでLSM(Log-Structured Merge)ツリーが使用されたからです。このLSMツリーは、インメモリキャッシュ、ハードディスク保存ログ、不揮発性メモリおよび定期的に書き込みされるストレージファイルで構成されています。LSMツリーや変種のSAM(Sorted Array Merge)ツリー、COLA(Cache-Oblivious Look-ahead Arrays)は多くのNoSQLシステムに導入されています(Cassandra, CouchDB, LevelDB, Bitcask, RethinkDB, WiredTiger, Rock

    NoSQLデータベース:調査と決定のガイダンス(その3) | POSTD
  • LevelDB入門 (基本編) - from scratch

    さて、今回は比較的新しいデータストアであるLevelDBについてまとめてみました。 LevelDBは1年ほど前からNode.js界隈ではブームが来ていて、理由がよくわかっていなかったんですが、まとめている内に分かるかなと思ってまとめました。今回はNode.js無関係でLevelDBの基礎的なことだけ調査した結果をまとめてみました。 Node.jsで使ってみる話は後に回します。 LevelDBとは? key-value型のデータストアの一つです。 Googleの研究者である、Jeff DeanとSanjey Ghemawatが開発し、2011年に公表されました。C++で書かれており、多くのプログラミング言語でbindingsが書かれています。もちろん、JavaScript/Node.jsでも書かれています。 LevelDBGoogle のBigTableをベースにしたアーキテクチャを持

    LevelDB入門 (基本編) - from scratch
  • TwitterとDiggがNoSQLの「Cassandra」を選ぶ理由

    スケーラブルなデータベースを実現する手段として「Sharding MySQL plus memcached」がよく知られる方法だとは、1つ前の記事「MySQL+Memcachedの時代は過ぎ、これからはNoSQLなのか、についての議論」で紹介しました。 ちなみに「Sharding」(シャーディング)とは複数のデータベースにデータを分散して運用することで、ざっくりいえばShared Nothing的な分散データベース構成のことです(この記事で紹介する英文中には「Shared MySQL」(共有MySQL)との記述がありますが、これは恐らく「Sharded MySQL」(ShardされたMySQL)のミススペルではないと推測します)。 日で(たぶん)もっともMySQLについて詳しく解説してあるブログ「漢(オトコ)のコンピュータ道」のエントリ「さらにMySQLを高速化する7つの方法」では、Sh

    TwitterとDiggがNoSQLの「Cassandra」を選ぶ理由
  • [ThinkIT] 第2回:拡張部分によって違いがでてくるSQL文 (1/3)

    SQL文はデータベースへアクセスするための言語で、標準化が行われています。しかしRDBMSごとに、標準仕様から拡張されている部分が多く存在します。その拡張部分の影響で、あるRDBMSで使えたSQL文が他のRDBMSで使えないといったことがよくあります。そこで今回は、PostgreSQLMySQLSQL文でどうような部分に違いがあるのかを、具体的な例を用いながら説明していきます。 SQL文は、DDL(Data Difinition Languege:データ定義言語)とDML(Data Manipulation Language:データ操作言語)の2種類に分かれています。今回は、アプリケーションからよく使用されるDML(SELECT、INSERT、UPDATE、DELETE)に絞って説明します。 SELECT文はDMLの中でも非常に言語仕様が複雑で、様々なバリエーションがあります。よって、

  • 1