Doorkeeper

Groongaソースコード読書会2

2015-07-02(木)19:30 - 21:30 JST

株式会社 ビジネスバンクグループ

東京都港区南青山2-26-37 NXB青山7F

詳細

概要

このイベントは、全文検索エンジンの中身に興味がある方を対象に、Groongaの実装を例に、実際にソースコードを読んだり、デバッガで動作を追いかけながら、内部動作の理解を深めることを目的とした勉強会です。

対象者

全文検索エンジンの中身に興味があって、「C言語でプログラムを書いたことがある人」または「書いたことはないけど他の言語ではプログラムを書いた経験はあって、C言語の文法は知っている人」を対象としています。

2回目ですが、1回目に参加していない人でも大丈夫です。理由は、前回の続きからやるとは限らない(その回の参加者の多くが読みたい箇所を読む)というのと、会の最初に処理の概要をヒントとして説明するからです。

場所と時間

  • 場所
    • 株式会社 ビジネスバンクグループ
    • 東京都港区南青山2-26-37 NXB青山7F
  • 時間
    • 受け付けは19:00ごろから始めます
    • 集まった方から順次デバッグ環境の準備などをしつつ、19:30頃から開始します

会場について

  • 入館受付は不要です。エレベータで7Fに上がり、正面の扉からお入りください。
  • 電源使えます。
  • WiFiも利用可能ですが、同時接続数が多くないので、モバイルのWiFiルータをお持ちの方はご持参いただけるとありがたいです。

勉強会の内容

未定。参加申込時に読みたい処理を書いてください。一番多かった箇所を読みます。(「前回の続き」でもOKです。「前回の内容」は後述。)

参加者から集まった読みたい処理一覧:

  • main関数(src/groonga.cなど)から順番に主要な処理を辿ってみたい(SEゼミで聞いた「アルゼンチン的ソースコードリーディング 」のような方式)
  • 前回の続き(データインサート時の転置インデックス作成まわりの処理)か、まだGroongaを使いこなしていないので、ソースコードにおける機能の分割単位の把握を行いたいと考えています。
  • インデックス周りの構造について
  • selectコマンド発行からの流れ(基本的すぎますかね?)
  • ...

勉強会ではGroonga 5.0.4リリース版のソースを参照します。事前に以下のURLからダウンロードしておいてください。

http://packages.groonga.org/source/groonga/groonga-5.0.4.zip

参考:前回の勉強会の内容。

今回の勉強会では、データインサート時に転置インデックスを作成する部分のコードを読みながら、データ構造や、転置インデックスがどのように作られているかという部分を中心に見ていきます。
勉強会終了時には、転置インデックスの作られ方、データの持ち方がわかってきた!と思えるようになることを目標とします。

参加者のレポート:

タイムテーブル

↓の「理解したい処理」は参加者の多くが申込時に読みたいと言った処理になります。

  1. 手元でビルドできるようにする。
  2. ビルドしたGroongaで「理解したい処理」を実行するGroongaコマンドを実行できることを確認してみる
  3. デバッガーまたはコードを読んで「理解したい処理」を実行している部分を探す
  4. 「理解したい処理」を実行している部分にブレークポイントを張る
  5. コードを読んでこうなってそうと予想を立てる→実際にステップ実行で予想が正しいかを確認を繰り返す
  6. 「理解したい処理」を理解できる!

参考:前回の勉強会のタイムテーブル

  1. 手元でビルドできる状態にする
  2. ビルドしたGroongaで転置インデックスを作るGroongaコマンドを実行できることを確認してみる
  3. デバッガーまたはコードを読んで「インサート時に転置インデックスを作る部分」を探す
  4. 「インサート時に転置インデックスを作る部分」にブレークポイントを張る
  5. コードを読んでこうなってそうと予想を立てる→実際にステップ実行で予想が正しいかを確認を繰り返す
  6. 「インサート時に転置インデックスを作る部分」を理解できる!

ご準備いただきたいもの

  1. 使い慣れたノートパソコン(Linux、OS X、Windowsいずれでも大丈夫です)
  2. 各環境に対応した、C言語のデバッグ環境
    • Linuxの場合はGCC+GDB
    • OS Xの場合はClang+LLDB
    • Windowsの場合はVisual Studio 2013 express(無料)

Windowsの場合はインストールに時間がかかるので、以下のページから事前に「Visual Studio Express 2013 with Update 4 for Windows Desktop」のダウンロード&インストールをお願いいたします。

https://www.visualstudio.com/ja-jp/downloads/download-visual-studio-vs

1回目のGroongaソースコード読書会に参加した@t2hndさんがWindowsでのGroongaのビルド方法にまとめてくれています。Windowsを使う人は参考にしてください。

groonga ソースコード読書会に参加してきた(Windows編)

参考URL

全文検索エンジンの仕組み、Groongaについてあまりご存じない方は、事前に以下のページを読んでおくとスムーズに話が理解できると思います。

参考:前回の参考URL

コミュニティについて

Groonga

Groonga

国産の高速全文検索エンジンGroongaに関する情報を交換するための場を提供します。 Groongaだけでなく、Groonga関連プロダクトについても扱います。例えば、次のようなプロダクトです。 Mroonga: MySQLからGroongaを使うためのストレージエンジン PGroonga: PostgreSQLからGroongaを使うための拡張機能 Droonga: 分散Groong...

メンバーになる