タグ

2020年12月20日のブックマーク (2件)

  • Apache Calcite + Truffle でクエリエンジンを作ってる話

    自作DBMS Advent Calender 2020 の 20 日目の記事です。 現在、truffle-arrow というクエリエンジンを作っているので、その話を書きます。 『How Query Engines Work』 仕事で Cloudera Impala に触れ、クエリエンジンに興味が湧き、自分で作ってみたいと思うようになって作り始めました。最初はクエリエンジンの作り方が分からなかったので、とりあえず参考書等を探して入り口を探しました。しかしそれらを読んでも実装できる気がしなかったので、まずは Apache Drill のコードを読んでいました。 今年、Apache Arrow の PMC の Andy Groove が『How Query Engines Work』という書籍をリリースしているので、興味のある方は読んでみてください。彼自身も Rust と Apache Arro

    Apache Calcite + Truffle でクエリエンジンを作ってる話
  • 「トランザクション張っておけば大丈夫」と思ってませんか? バグの温床になる、よくある実装パターン

    この記事は DeNA 20 新卒 Advent Calendar 2020 19日目の記事です。 はじめに MySQLやPostgreSQLに代表されるRDBMSではトランザクションと呼ばれる仕組みが提供されています。多くのWebアプリケーションエンジニアはこのトランザクションを駆使してDBとやりとりをするロジックを組み立てることになります。 しかし不整合を起こしたくない処理があるからといって闇雲にトランザクションを張ったり、トランザクションが張られているからと安心してアプリケーション側で闇雲にロジックを組み立ててしまうと思わぬバグを生むことになってしまいます。 このエントリでは、「トランザクションを張っておけば大丈夫」という考え方は危険な場合もあるということを、ありがちな実装例を交えて紹介していきます。 並列に処理されるトランザクション そもそも、トランザクションは全て直列に処理されるわ

    「トランザクション張っておけば大丈夫」と思ってませんか? バグの温床になる、よくある実装パターン