こっちに移動 qiita.com
こっちに移動 qiita.com
米Citusdataは3月24日、PostgreSQLを土台とする分散データベース「CitusDB」をオープンソースにすることを発表した。PostgreSQLを拡張することでSQLのスケールアウトを行うことを目的に開発したもので、同日最新版も公開している。 CitusDBは、スケールアウトするリレーショナルデータベースを目指して2012年にスタートしたプロジェクト。PostgresSQLをベースに、シームレスなシャーディングとテーブルの複製、高い可用性の実現、クラスタ構成のマシン間のSQLクエリ並列化などの開発を進めた。マルチ関係モデルを利用した分散クエリプランナーを採用している。 広域負荷分散(CDN)サービスのCloudFlareをはじめ、複数の企業がCitusDBを採用している。たとえばCloudFlareでは、400万以上の顧客のWebサイトからの100TB以上のデータに対してリア
Citus is a PostgreSQL extension that transforms Postgres into a distributed database—so you can achieve high performance at any scale. With Citus, you extend your PostgreSQL database with new superpowers: Distributed tables are sharded across a cluster of PostgreSQL nodes to combine their CPU, memory, storage and I/O capacity. References tables are replicated to all nodes for joins and foreign key
こんにちは。リードアーキテクトのItoです。 前に予約していたNuAns NEOが届きました。かなりいい感じです。iPhoneと比べてしまうと、カメラ性能とアプリの少なさが気になりますが。 前回の記事では、Nodeベースのプロジェクト(Webサーバー)をSwiftに置き換えられるかという部分の話をしました。今回は前回からのアップデートや実際に運用してみたSwiftベースのサーバーサイドの話もしたいと思います。 Swift全体の動き、Swift本体(コンパイラ)のlatest build(masterブランチ)はSwift 3系になりました。 Swift(特にオープンソース版)の最新情報を追いたい場合は、以下のソースが参考になりました。 iOS Dev Weekly Swift Weekly Brief This week in Swift little bites of cocoa. Ch
(Last Updated On: 2018年8月13日)PostgreSQL Advent Calender 2013、13日目のエントリです。 表題の通り「タグ検索するならPostgreSQLで決まり!」です。 追記:JSONの場合はPostgreSQLのJSONB型を利用してタグ検索を行うを参照 RDBはタグが苦手 WebアプリではRDBでは取り扱いづらいデータを取り扱う事がよくあります。タグの管理・検索はその一つです。 RDBはタグ情報の管理・検索をしっかりやれますが、どちらかと言うと苦手な分野です。しかし、PostgreSQLの 配列 GIN(Generalized Inverse Index – 転置インデックス) を使うと簡単かつ高速に処理できます。 PostgreSQLを使うとタグ検索が簡単・高速に実現できますが、Googleで「タグ検索 PostgreSQL」と検索しても
データベースの運用で避けられないのが、ロック競合によって起こるシステムトラブルへの対応です。「2時までに終わるはずのバッチ処理が朝になっても終わっていない」とか「負荷が高いわけでもないのにシステムが無応答になっている」といったトラブルが発生したとき、DBエンジニアはそれがロック競合によるものなのかどうかを切り分けて、適切に対処しなければなりません。 これまでInnoDBはロック競合に対してほとんど打つ手がなかったのですが、最近ようやく対処方法がでてきました。今日はその手順を確認していきたいと思います。 前提 今回ご紹介する手順は、MySQLの以下のバージョンを対象にしています。 MySQL 5.1+InnoDB Plugin 1.0 MySQL 5.4 いきなりハードルを上げてしまって申し訳ありませんが、バージョン5.0以下や素の5.1では使えませんのでご注意ください。以降の実行例はすべて
整合性をしっかりとらないといけない処理ではトランザクションをかけるのですが、どうもトランザクションのロック待ちでタイムアウトしてしまうことがあるようです。 java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction トランザクションでテーブル全体にロックがかかってしまう 要するに、「トランザクションを実行するためにロックを獲得しなければいけないが、他のコネクションがロックを握っていて、ロックが獲得できない」ということです。 これの根本的な原因は何かと調べますと、InnoDBでトランザクションを使用するときに、行ロックではなく、テーブル全体にロックがかかってしまう場合がある、というところにたどり着きました。 「InnoDBで行ロック/テーブルロックになる条件」を見ながら、少し試してみます。 テーブ
InnoDBを使うとき、MyISAMと比較して度々やり玉に挙げられるポイントとして「COUNT()が遅い」というものがある。確かにInnoDBにおいて行数を弾き出すのにはテーブルスキャンが必要なのだが、そもそもMyISAMのCOUNT()が速い(テーブルの行数を保持してる)のが特殊なのであって、InnoDBが遅いわけではないのである。とはいえ、高速なCOUNT()については需要が多く、この問題には多くの人取り組んでおられるようだ。しかしながら、COUNT()のチューニングについては未だ語られていない点があるように見受けられるので、今日はCOUNT()のチューニングについて解説しようと思う。 COUNT(*)、COUNT(col)、COUNT(1)の違い基本的なことではあるが、COUNT(*)とCOUNT(col)では意味が異なるため、異なる結果が返される場合がある。COUNT(*)はフェッ
笠原 辰仁 本記事は2013年のPostgreSQL Advent Calendar の 12/25 の記事です(地味なトピックになってしまいすいません)。PostgreSQLでのテストデータ作成に役立つ機能を紹介します。 はじめに PostgreSQLを対象としたの性能検証や機能検証を行う際に、開発環境や試験環境でスキーマ(テーブルやインデックス)を作成し、ダミーのデータを投入してSQLのチェックを行うことが多々あるかと思います。単純な機能の正常試験であれば少量のデータ投入で事足りると思いますが、大量のデータに対する検索処理やバッチ処理を試す際は、それなりの量の試験データを生成し、DBに投入する必要があります。 通常、試験データは、例えば専用のジェネレータを作る、実際のデータをマスキングしたものを使う、サンプルとして存在するデータ(郵便番号のデータなど)を利用する、といったことが多いと思
本コンテンツは、2014年1月30~31日に筑波大学で開講された「情報システム特別講義D」における講義「Inside PostgreSQL Kernel」の内容を再構成、加筆・修正したものです。 はじめに 本コンテンツについて 本コンテンツへのフィードバックについて アーキテクチャ概要 PostgreSQLの構成要素 PostgreSQLの基本的なアーキテクチャ SQL文の処理される流れ トランザクション管理 トランザクション処理におけるACID特性 各レコードの可視性の管理 Atomicity(原子性)の実装 Consistency(一貫性)の実装 Isolation(分離性)の実装 トランザクション分離レベルの定義 Durability(永続性)の実装 チェックポイント メタデータ管理 pg_controlファイル OID/XID/TID システムカタログ MVCCとストレージ構造 テ
なぜ SQL_CALC_FOUND_ROWS や LIMIT OFFSET のページングが良く無いのか ここ最近の大規模サービス関連したデータページング考です。 mysql 5.5.34 で試して記事書いてます。 bigdata テーブルは id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, PRIMARY KEY (id) なカラムがある前提です。もちろん InnoDB です。 2014年なんだからCOUNT(*)とかSQL_CALC_FOUND_ROWSとかLIMIT OFFSETのページングはやめようぜ - Togetterまとめが発端にみえるけど、わりと昔から話されてる事なんだけど、「nippondanji SQL_CALC_FOUND_ROWS」でググっても有用な情報ないし文書化されてないからしとく。 ページング処理で使われがちな機能です。 S
Spring Fest 2017での同名セッションの発表資料です。 http://springfest2017.springframework.jp/#session
コードゴルフという競技があります。与えられた問題(例えばFizzBuzz)を解くコードを、いかに短いプログラムで実現できるかというものです。 脆弱性の世界でもXSS Golfというものは既にあるようで、我らが はせがわようすけ氏にも、「短いXSSの話」というプレゼン資料が公開されています。第2回のOWASP Japanローカルチャプターミーティングでの講演ですね。これ、面白いので、まだ見ていない方はぜひご覧になって下さい。 XSSがあるならSQLインジェクションはどうかということで、ちょっと考えてみました。この手の遊びは、問題のルールが命というというところはありますが、最初なのであまり厳密に考えずにだらだらとやってみます。 攻撃対象プログラム やはり、SQLインジェクション攻撃でみなさまおなじみの認証回避がよいのではないかと思いました。拙著「体系的に学ぶ 安全なWebアプリケーションの作り
口コミで話題の夜用二重美容液 ナイトアイボーテ 寝る前に塗るだけで理想の二重を目指せる「ナイトアイボーテ」 このページでは、購入する前に気になる、ナイトアイボーテの口コミや効果的な使い方、通販最安値で購入できる販売店情報など詳しくまとめていきます。 午後のカフェではノートを広げたり、二重を読んでいる人を見かけますが、個人的には店の中でそういうことをするのには抵抗があります。 エムアンドエムに悪いからとか殊勝な理由ではなくて、アイや会社で済む作業を理想でわざわざするかなあと思ってしまうのです。販売店や美容院の順番待ちでエムアンドエムや置いてある新聞を読んだり、口コミでひたすらSNSなんてことはありますが、グラマーは薄利多売ですから、商品がそう居着いては大変でしょう。 昨年結婚したばかりの悪いの自宅マンションに忍び込んだ人物が捕まりました。悪いという言葉を見たときに、評判にいてバッタリかと思い
ここは中島 靖のホームページです。 This is Yasushi 'Sey' Nakajima's homepage. To English page 別館へ ※このページの情報は全体に古いものが多いのでご注意ください。リニューアルを準備中です。 本のサポートページ 「Perl5.6完全リファレンスブック-標準モジュール編」 自作ソフトウェア Greese Greeseは、RDBからレポートを生成するPerlモジュールです。SQLのSELECT文を拡張したテンプレートで、手続的なプログラミング無しに、反復、グルーピング、ページ分割、ページのリンクがおこなえます。HTMLだけでなくXMLやLaTeXのレポートも可能で、テンプレートは既存のビューアやエディタで表示・編集可能です。まだαバージョンの段階です。 Greese-0.93.zip Greeseの説明書 GreeseCGIの説明書 P
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く