先週、第11回インターネットと運用技術シンポジウム (IOTS2018)にて、投稿した論文の発表をしてきました。 IOTSは査読付の国内の研究会であり、2年前に招待講演をさせていただいた研究会でもあります情報処理学会でウェブオペレーション技術について招待講演した話 - ゆううきブログ。 実は、そのときに、来年論文を投稿するぞと意気込んでいました。 実際にはそこから2年かかりましたが、この度論文を投稿することができました。 予稿 HeteroTSDB: 異種混合キーバリューストアを用いた自動階層化のための時系列データベースアーキテクチャ スライド 実務から研究へ 今回投稿した論文の内容は、Mackerelで開発した時系列データベースに関するものです。 これらはすでにAWS Summit Tokyo 2017、Web System Architecture研究会で発表済みのものになります。 時
はじめに はじめまして。エンジニアのDannyです。 今回は TypeORM という O/Rマッパー で、エンティティを定義する際のガイドラインについて書かせていただきます。 TypeORMとは TypeScript製の O/Rマッパー です。 リポジトリ 公式ドキュメント 弊社ではTyepScriptで実装しているサーバアプリケーションがいくつかあるのですが、その一部で採用しています。 TypeScriptで開発する際の O/Rマッパー としてはデファクトになりつつあると思います。 Node.js/TypeScriptの O/Rマッパー 比較や、TypeORM の使用感に関しては弊社suzukiの資料をご参照ください。 本記事では、最新バージョンである 0.2.7 を使用します。 コンストラクタの定義 さっそくですが、まずはコンストラクタについて考えてみます。 ここでは、MySQLで以下
データベーステーブル設計の基礎の基礎~エンティティの抽出・定義から正規化まで 適切な形でデータベースのテーブルを設計し、運用するには?テーブル設計に必要な初歩を日本MySQLユーザ会副代表の坂井恵さんが丁寧に解説します。 金融系アプリ、ゲーム、人工知能などなど……。どんな種類のシステムを開発する上でも、避けて通れない領域があります。データベースです。データを適切な形式で格納し、取り出す。単純明快ながらも奥深いこの仕組みは、多くのシステムの根幹を支えています。 しかし、適切な形でデータベースのテーブルを設計し、運用するのは簡単なことではありません。「良いテーブル設計」のためには知識と経験が不可欠です。今回は日本MySQLユーザ会の副代表である坂井恵さんに、これからテーブル設計に着手する方に向け、設計に必要な技術と、良い設計を作るための考え方を教えていただきました。 坂井恵(さかい・けい) @
PostgreSQLとMySQL、使うならどっち? データベース専門家が8つの視点で徹底比較! オープンソースのデータベースとしてよく比較されるPostgreSQLとMySQL。どんな長所・短所があるのでしょう? それぞれの専門家による対談で明らかにします。 エンジニアとして働いていると必ず直面する悩み。それは、「どのリレーショナル・データベース(以下、RDB)を選ぶのが最善なのか?」です。 RDBごとに長所と短所は異なっています。そのため自社サービスにマッチしないRDBを選んでしまうと、それがボトルネックとなり開発・運用にトラブルが生じるケースは少なくありません。 なかでもよく比較検討されるのが、PostgreSQLとMySQL。ともにオープンソースRDBのデファクトスタンダードであり、高い性能と数多くの機能を持っています。 では、両者は具体的にどのような長所・短所があるのでしょうか。そ
言い訳から始めます。この記事を(途中まででも)読んだ人は、次のように言いたくなるでしょう。 『理論から学ぶデータベース実践入門』は良い本なのか悪い本なのか、いったいどっちなんだよ?! この本は間違いや説明不足があり、誤読されやすい表現も多く、その点では残念な本です。しかし、面白いアイディア、するどい観察も含まれていて、行間を補い深読みすれば、多くの示唆を得られる本でもあります。 よって、「良い/悪い」の二択では答えられません。良い点と悪い点の両方を、できるだけ客観的に記述するしかないのです。それをした結果、長い記事となりました。 内容: ことの発端: zhanponさんの批判 奥野本擁護と奥野本批判 僕の擁護・批判の方針 zhanponさんの指摘の再検討 1. 論理的な矛盾とデータの不整合を混同している 2. 命題論理の限界についての説明がおかしい 3. 古典論理の定義を間違えている 4.
PublickeyというIT界隈でわりと影響力のあるサイトで分散型NoSQLデータベースの「Basho」をギャンブルサイトの「Bet365」が買収。全製品のオープンソース化を表明という記事が公開された。しかしながらこの記事は若干の誤りを含みつつミスリードが多かったのでここで指摘していきたいと思う(この記事の公開後に修正あり)。今北産業の方々は末尾のまとめをご覧いただきたい。 www.publickey1.jp なお私は 2016年3月までBashoの日本法人の被雇用者であり機密情報を一部知る立場であったが、ここでは公開情報だけをもとに解説する。また現在は一連の関係者との公的な関係は一切なく利害関係にないことを明記しておく。つまり外野で野次馬です。 基本的な指摘事項 Bet365を表現するのに「ギャンブルサイト」という言葉は一般的ではない、きちんとした会社である(対応済み) はてブでブックメ
2017年07月24日23:55 カテゴリLisp Common Lisp用コネクションプール「CL-DBI-Connection-Pool」を作りました tamuraです。 最近、CL-DBIでデータベースをコネコネしていたのですが、本格的なWebアプリを作ろうとしたらコネクションプールが必要なのではないかと思い、コネクションプールを作りました。 https://github.com/tamurashingo/cl-dbi-connection-pool コネクションプーリングとは、データベースにアクセスする時、アクセスのたびに接続(コネクション)を確立するのではなく、あらかじめ一定数のコネクションを確立しておき、それを使い回す手法。データベースアクセスの負荷を減らすために用いられる。 http://e-words.jp/w/%E3%82%B3%E3%83%8D%E3%82%AF%E3%
僕の Datastore の記事は Cloud Datastore/AppEngine Datastore 時代のものなので、現在の Firestore の Datastore mode だと一部の内容が正しくないと思うので注意してください。(´・ω・`)— pospome (@pospome) March 24, 2021 Datastoreを使っていて、 ある程度コツとか注意点みたいなものが分かってきたので、 まとめてみました。 継続的に追記していく予定です。 間違っているところがあれば コメント or twitter で教えてください。 Datastoreの entity, kind などの用語は理解している前提です。 ParentKeyに気をつける Go では Filter による OR, IN 検索ができない 文字列に対する LIKE 検索がない 結局どんなクエリが発行できるのか
ご報告が遅れましたが、6月30日付で新卒の2003年から14年あまり勤務したNECを退職しました。 また、本日、東京法務局品川出張所においてヘテロDB株式会社の登記申請を行い、また、併せて新会社のチーフアーキテクト兼代表取締役社長に就任しました。 今後は、前職では実現できなかった、GPUやSSDなどヘテロジニアスな計算機資源を活用する事で、高性能、低価格、使いやすさを両立するデータベース製品の事業化を目指していく事になります。 どうぞよろしくお願いいたします。 web: http://heterodb.com/ 弊社が入居する西大井創業支援センター(品川区) 10年以上も勤務した会社を辞めてスタートアップを立ち上げるというのは、おそらく人生の中でも上位に食い込むビッグイベントの一つだと思うので、今の決意や創業に至る一連の流れについて記録を残しておこうと思います。 (書き下してみたら意外と長
概要 インデックスに対してMongoDBはB Treeを採用し、MySQLのInnoDBはB+ Treeを採用しています。 どうして採用しているアルゴリズムが違うのだろう?と思って調べてみました。 主な違い B+ TreeはほとんどB Treeと同じですが、以下の点が異なります。 リーフノードとリーフノードを結ぶポインタがある データはリーフノードのみに保持する 具体例 言葉だけだと分かりにくいので、Visualizeするツールを使って具体例を表示します。 [1, 2, 3, 4, 5, 6, 8, 10, 15, 18]という数列に対し、Order: 3で作ってみます。 Orderは1ノードから出る枝の数のことです。 B Tree B-Tree Visualization B+ Tree B+ Tree Visualization 先程のB Treeと違って、データはリーフノードに持つの
気づけば1月末です。 あ! あけましておめでとうございます(遅い) 昨年末の話なのですが、Caveman2でイベント管理システムなるものを作っておりました。 現在はAmazon EC2のUbuntuインスタンスで運用していて、ドメインはお名前.comで一番安いやつを選びました。 現物はこれです。 経緯としましては、大学内で非公式にLT大会を運営していて、それの統合的な管理が出来るものが欲しくて作りました。 connpassのグループ機能を切り出してきたみたいな感じです。 もともとは調整さんで出欠管理してたんですが、情報学部生としてそれは雑魚過ぎるなと思ったので自分で作った流れになります。 Caveman2の情報が少ないので、実装の参考になりそうなことをメモ程度に書いておきます。 目次 データベース連携 スキーマ リモート データベースへの接続 モデルの書き方 <form>のデータ受け渡し
『理論から学ぶデータベース実践入門』という本を読んでいて、2章の論理学の説明に多くの誤りを見つけたので指摘しておく。 この本はデータベースについての技術書であり、数学書ではないのでこれらの誤りがこの本の価値を完全に損なうとは思わない。しかし、述語論理に基いてリレーショナルモデルを説明するという趣旨の本である以上、その基礎である論理学の説明が不正確なのは大きな問題である。また著者が論理学の専門家でないなら、専門家にレビューを頼むか、最低でも適切な論理学の教科書へのリファレンスが必要ではないかと考える。 この文章は特定の本を参考にしたわけではないが、以下に定評のある論理学の入門書をいくつか挙げておく。 戸田山和久『論理学をつくる』(名古屋大学出版会) 小野寛晰『情報科学における論理』(日本評論社) 以下、論理学についての誤りのうち比較的大きなものを指摘する。これはすべての誤りのリストではないし
データベースの歴史は古い。 データベースの黎明期ではメモリの価格は今とは桁違いで、1バイトあたり1円を切るかとかそういうレベルの世界だった。1バイトが1円ということは1MBのメモリが100万円以上するという事である。 また、単純にメモリのサイズも小さく、ハイエンドのメモリフレームでRAMを8MB積んでいるとかそんな世界であった。ちょっと大きな事をやろうとすると8MBを溢れる事は当然想定しなくてはならない。 HDDのランダムIOは非常に遅い。なので1バイト単位でデータを書き換えるよりはメモリで可能な限り書き換えをバッファして、ある程度の大きさでまとめて書き込みを行う事で高速化できる。 PostgreSQLではデータベースの内容をページという(デフォルトでは)8KByteの大きさに切り分けて管理している。 1ページの中にテーブルの中の数行分のデータを入れる事でRDBMSはリレーションを保存して
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く