最近(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を使用するいくつかのCypherクエリのエラーチェックを改善
  • REST APIリクエストのレスポンスのシリアライズのパフォーマンス改善
  • HAクラスタのスレーブインスタンスでバックアップが使用できなくなることがある問題の解決(Neo4j Enterprise)
  • HAクラスタのエラーハンドリングの改善(Neo4j Enterprise)

Neo4j 2.2.0(2015/03/25)


  • Neo4jブラウザ機能の大規模改修。データを表示するための多くの方法、新しいグラフの凡例、Cypherクエリの中断機能、カーブ矢印、パンニング、ビジュアルクエリプランその他多数
  • Cypherの新しいコストベースのクエリプランナー。クエリを計画するのにより賢く、実行内容がより透過的になる。このコンパイラは既存のルールベースのコンパイラに加えて利用可能であり、Neo4jはそれぞれのクエリ実行時にどちらを使用するか自動的に選択する(この挙動は、Cypherクエリチューニングのドキュメントで記述されているように、コンパイラディレクティブを使って調整することができる)
  • Cypherクエリプランのプロファイリングと説明をフルサポート。Neo4jブラウザ機能のクエリプランビジュアライザを含む。
  • ユーザ名とパスワードによる認証の適用。Neo4jブラウザ機能とRESP API全てのアクセスは適切な認証情報を必要とされる。詳細は、server authentication and authorization in the documentationを参照のこと。
  • 新しいページキャッシュ。より高速に、同時オペレーションのハンドリングがかなり改善され、以前のNeo4jのメモリマッピングと比較して設定しやすくなった。一つの設定のみで設定可能(the configuration documentationを参照)
  • 設定変更なしで、多くの書き込みワークロードのスループットを劇的に改善する高速書き込みバッファリングの採用
  • グラフとインデクスのトランザクションログの分離。XAシステムによる協調機能は、単一のトランザクション管理と統一されたログで置き換えられた。これは、実質上リソースオーバーヘッドの減少とスケーラビリティの改善を意味する。この結果、以前公開されたXAとJTA機能は削除された。
  • 安定性、パフォーマンスおよびユーザビリティにおける非常に多くの改善

Neo4j 2.1.8(2015/04/01)


  • 制約作成時の失敗によりインデクスファイルが失われることがある問題の解決
  • 書き込みを受け入れられない状態でインデクスが再作成されることにより、再作成されたインデクスに影響を与えていた問題の修正
  • バッチインサーターが結果としてストア内のラベルとソートの一貫性に影響を与える問題を解決
  • 非常に長い値の整数が誤って複製と認識される一貫性チェックでレポートされる問題の修正
  • ストアのコピーで時々失敗する問題の修正(Neo4j Enterprise)

Neo4j 2.2.1(2015/04/14)


  • 2.2 Cypherコンパイラにより多数の致命的問題が解決された。これは、クエリの妥当性と結果の正確性に影響を与える(#4315,#4331#4332#4341#4342
  • 2.0と2.1のCypherコンパイラが非推奨となった。これは2.3で削除される予定
  • ディスクに対するデータのフラッシュと読み込みのパフォーマンス改善
  • インポートツールを利用して異なるエンコーディングのデータのインポートが可能になった
  • 入力行にプロパティの値が存在しない場合、インポートツールが空の配列を生成しないようになった
  • インポートツールがArrayIndexOutOfBoundsExceptionで失敗することがある問題を解決
  • REST APIにおけるクライアントエラーが常にレスポンスに正しく識別されたスタックトレースに加えて適切なClientErrorを含むようになった(#4145
  • HAロール切り替え中に過度にメモリを使用することがあるレアケースの解決(Neo4j Enterprise)
  • Internet ExplorerでNeo4jブラウズ機能を使用した際に発生していた問題の解決(Cypherクエリプランビジュアライゼーションで誤った結果を表示していた)
  • Neo4jブラウズ機能で空の結果のレンダリングの改善。データを含んでいないことを明確に識別するようになった。
  • 制約の作成中に複製された値が追加されるにも関わらず、ユニーク制約の生成が成功してしまう事があるまれな競合状態の解決


とりあえず、性能改善、機能改善、不具合の修正がもりもり入ってることがわかりました。

コメント

このブログの人気の投稿

Joinノードを使う(その1)

Execノードを使う

Joinノードを使う(その4)