投稿

ラベル(Neo4j)が付いた投稿を表示しています

最近(2.1.6〜2.2.1)のNeo4jのリリースノートを翻訳してみた

2014年末から2015年頭くらいにかけてNeo4jで 遊んでいました 。当時のバージョンが2.1.6くらいだったと思うのですが、それから数ヶ月経って、気付いたら最新版は2.3.0-M01ということで、意外とリリースのペースが速いことに気付きました。 というわけで、キャッチアップのために最近(2.1.6〜2.2.1)の リリースノート を日本語訳して理解した気になろうと思います。 言うまでもありませんが、この翻訳は私自身のメモのために作成したものです。校正、確認などを行なっていないのと、そもそも意味がわからず訳している部分も多数あるので、誤っている可能性が十二分にあります。というか、むしろ全部誤っているものと考えて、必ず原文で確認を取るようにしてください。 Neo4j 2.1.6 (2014/11/25) IOエラーが常に正しく扱われておらず、発生した変更のフラッシュに失敗することでデータベース内での矛盾が発生することによる致命的な異常終了の問題の解決 Luceneベースのインデクスが要求するファイルハンドルをかなり小さくした ストアの矛盾を報告しない可能性のある矛盾チェックの問題の解決 ノードの次数を簡単に得ることを可能にするJava API拡張(タイプと方向によるリレーションシップのカウント) ノードをトラバーサルするリレーションシップのロードに影響を与える重大なパフォーマンス劣化の解決 クラスタ環境においてバックアップストアを正常に読み込めないことがある問題の解決(Neo4j Enterprise) スレーブの機能停止後、マスターに切戻しする際に失敗することがある問題の解決(Neo4j Enterprise) Neo4j 2.1.7 (2015/02/03) リレーションシップグループストアメモリマッピング(neostore.relationshipgroupstore.db.mapped_memory)の標準設定を10Mから0に変更。これにより、かなりパフォーマンスが改善される。 予期しない異常終了後のリカバリ中に過度のメモリを使用する問題の解決 スキーマ制約の強制を改善。いくつかのレアケースの競合状態を解消 バッチインポーターがスキーマ制約を正しく適用することを確認 shortestPathを使用するい...

メールリレーをNeo4jで可視化する

イメージ
はじめに メール関連の仕事をしていると、自分が受け取ったメールがどのサーバ(もしくはサービス)を経由して送られてきたのかがとても気になります。新しいメールが届く度、ヘッダを見ては「あーSESかー」とか「へーMandrillかー」とか「おっSendGrid!」といった感じで本文よりよっぽど楽しい場合もあったりします。でも、毎回生のヘッダを見るのはいい加減面倒になってきたので、もうちょっとマシな方法を考えてみました。 メールヘッダ SMTPというプロトコルはヘッダに経由情報が付加されていくという妙な性質を持っています。こういった振る舞いをするプロトコルって他にあるんですかね?あまり思い当たりません。元々、経由情報は正常にリレーされなかった場合のトラッキングが目的だったりするわけですが、様々な情報が得られるので意外と興味深いものだったりします。 経由情報を可視化する こうした経由情報ですが、正直見やすいものではありません。 Received: from [127.0.0.1] (localhost [54.64.73.243]) by ismtpd-047 (SG) with ESMTP id  14abd28c69e . 67a6 . 2d8d  for @yyyy.jp >; Tue, 06 Jan 2015 02:52:54 +0000 (UTC) この場合、ismtpd-047というホストがlocalhost [54.64.73.243]というホストからESMTP経由でメッセージを受け取ったよ、ということを表しています。 ルール を知っていれば読めるわけですが、実はフォーマットの自由度が高くて、この仕様決めた奴を一発ぶん殴りたくなるくらいフリーダムです。 せっかくこういった情報が公開されているわけなので可視化したら何か見えてこないかなー、と思っていたところ、以前から使ってみたかった Neo4j のことを思いつきました。Neo4jはグラフDBという類のDBで、Webベースの可視化機能も利用できるのでお手軽そうです。 システム構成っぽいやつ 受信したメールのヘッダを解析してNeo4jに突っ込む方法ですが、今回は、メールを受けるのにSendGridのParse Webhookを利用してみました。 普段使って...