先日リリースされた2.0以降、Riakでは認証と認可の機能が利用できるようになりました。
2.0.0では誤ったクライアント証明書が受け付けられていましたが、 この問題は2.0.1で修正されました。
- bitcask/186: Bugfix/key transform crash
- bitcask/189: Refresh efile port if gone
- bitcask/190: Fix scan error deadlock
- bitcask/192: Fix remove expired on read race
- bitcask/197: Fix extra tombstones on update
- bitcask/198: Fix race listing readable files
- riak_kv/1008: Use SC bucket types and buckets to know ensembles
- riak_kv/1026: Update to use new breadth-first AAE exchange
- riak_core/626: Allow handoff sender to abort handoff by throw'ing from fold fun
- riak_core/627: Handoff sender sends sync periodically
- riak_core/629: Add breadth-first AAE exchange
- riak_api/66: Do not treat errors as success
- riak_repl/618: Added a worker pool for fullsync sinks.
- riak_repl/619: Small user experience fixes.
- riak_repl/620: Improved AAE fullsync integration/2.0 pull request
バージョン 2.0 での新機能の一覧と説明は 公式ドキュメント をご覧ください。関連するドキュメントへのリンクも含まれています。 また、Upgrading to 2.0 Guide もあります。以下は、その技術的な詳細になります。
Riakの以前のバージョンではキーを論理的にグループ化する仕組みとしてバケッ トを利用し、特定データの種類とその設定を関連付けていました。Riak 2.0で はバケットタイプの追加により、設定とバケットのグループを関連付けます。 それにより、これはもうひとつの名前空間として振る舞います。
バケットタイプは、その情報をクラスタ内に適切に行き渡らせるため、使用前
に明示的な作成と有効化が必要であります。この点はバケットと異なります。
また consistent
および datatype
プロパティは作成後の変更ができない
ので注意して下さい。これらはそれぞれ Strong Consistency と Riak データ
型に関わる設定で、以下に説明があります。その他のプロパティは変更が可能
です。バケットタイプでグループ化されたバケットはバケットタイプの全プロ
パティを継承します。各バケットはプロパティを個別に上書きできますが、上
書きできないプロパティもいくつか存在します。
バケットタイプは riak-admin bucket-type
コマンドだけから管理できます。
このコマンドの形式は今後のパッチリリースで変更される可能性があります。
本リリースではコマンドの操作に対応する API は含まれません。しかし、
Bucket Properties HTTP API および Protocol Buffers メッセージ、そして
サポートされたクライアントにはバケットタイプ配下のバケットに対する
Bucket Propertiesの設定、参照ができるよう更新されています。
バケットタイプに関する詳細は 公式ドキュメント をご覧ください。
Riak 1.4 では結果整合カウンター(eventually consistent conunter)が Riakへ追加されました。バージョン 2.0 ではこの成果を踏まえ、更なる収束デー タ型(Riak データ型と呼びます)を提供します。これらのデータ型はCRDT[1]で あり、豊富でさらに増加しつつある理論的な研究を基にしています。これまで の Riak は保存された値を不透明なものとしてだけ扱っていましたが、データ 型により、その振る舞いから脱却します。Riakはこれらのデータ型について 「知って」いるのです。具体的には、レプリカの衝突に際して、それを収束さ せる規則を知っています。
データ型を使うには、まず counter
、set
、map
のいずれかが
datatype
プロパティに設定されたバケットタイプが必要です。そして、その
バケットタイプに紐付くバケットへ保存する必要があります。注意点として、
そのバケットは allow_mult
プロパティとして true
を持つことが必要で
す。詳細は
データ型と
バケットタイプ
のドキュメントをご覧ください。
これらのデータ型は通常のriak_object
に含まれ、
Riakの値に関するサイズ制限はデータ型に対しても適用されます。
以下のデータ型が現状で利用可能です。
Counterは、型の衝突を起こさないために Riakの新しい bucket type
機能を
利用できることを除いて、1.4 の時と同様に振る舞います。
ドキュメントは
ここ.
にあります。
キーに対して複数の区別できる不透明なバイナリ値の保存ができます。 使用方法と用語に関しては ドキュメント をご覧ください。
Mapはネストされた再帰的な構造体、もしくは連想配列です。これらを複数のデー タタイプから構成されるアドホックなデータ構造のコンテナとみなします。 Mapの内部にはSet、Counter、フラグ(booleanの類似物)、レジスタ(Last Write Winsによりバイナリを保存するもの)や他の Map さえ保存できます。使 用方法と用語に関しては ドキュメント をご覧ください。
データ型はこれまでのRiakの操作からのさらなる脱却をもたらします。 それは operation based な API を持っているのです。 これまでは、データ構造を取得し衝突を解消したうえで、その結果を変更し書き戻していましたが、 Riak に対してデータ型へ適用される操作を伝えることになります。
操作の例をいくつか紹介します:
- "counterを10だけ増やす"
- "setへ'joe'を追加する",
- "Mapから 'friends' と呼ばれるSetのフィールドを削除する"
- "Mapの内にある
prepay
フラグをtrue
へセットする"
データ型を正確に動かすには read によって得た不透明な context を次の場合に 返さなければなりません。
- フラグを
false
へ設定した - Mapからフィールドを削除した
- Setから要素を削除した
この基本ルールは「あなたが見ていないものは削除できない」、そして context はRiakにあなたが実際に見たものを伝えます。Javaクライアントを除 き、全ての公式Riakクライアントは不透明contextを扱えます。詳細は ドキュメント をご覧ください。
Mapに関する既知の不具合が2つあります。 後述する 既知の不具合 に目 を通してください。
以前のバージョンのRiakでは行儀の良いクライアントでさえ、"sibling explosion"と呼ばれる問題を引き起こすことが普通でした。本質的には、リト ライや入れ子になった書き込みは、クライアントが書き込む前にsiblingsを解 決したとしても、際限の無いsibling増加をもたらす可能性がありました。 vector clockは各書き込みに付与され、クロックは正確に進みますが、各 siblings値に対する因果関係の情報が失われることにより、この問題が発生し ていました。同じ書き込みを起源とする値が重複する可能性があったのです。
Riak 2.0ではこの問題に関する Preguiça、Baquero らの 研究 と プロトタイプ の 成果を活かし、これに対処しました。各 sibling の書き込みイベントを表すマー カー("dot" と呼びます)を付与することにより、siblingsは **実際の並列数 ** までしか上昇しません。つまり、オブジェクトの書き込み回数や、マージ回 数、他のクラスタへの複製回数には関係しなくなりました。さらなる情報は Dotted Version Vectors のドキュメント参照ください。
Riak Search は、設計から完全に仕切りなおされました。 それは Yokozuna というコードネームで、開発中にメンテナンスされていた個別の リリースノート があります。Riak 2.0の新しい検索機能に関連する情報はこちらでご覧ください。 さらに3つの公式ドキュメントがあります。
Riak の新しい Strong Consistency 機能はオープンソースとなっており、 Riak Enterprise ではサポートされていません。 公式ドキュメントは次のとおりです。
さらに深い技術的な情報はインターナルなドキュメントを参照ください。 ここ と ここ. にあります。
また、既知の問題 に目を通すことを強く推奨します。
Riak 2.0 で認証、認可機能を追加されました。これは異なる環境への誤接続防 止(例:開発中のアプリケーションを本番のクラスタに繋いでしまう)や、悪 意のある攻撃への防衛策に役立ちます。無論、依然としてRiakをセキュアでな いネットワークへ直接公開すべきではありません。
Bashoのドキュメントサイトには この新機能の詳細な説明 があります。またsecurity機能を有効化する際にいくつかの重要な注意点があ ります:
- まだ監査機能はサポートされていません。これは今後のロードマップに含ま れます。
- 2つの廃止予定の機能はsecurityを有効化すると動作しません。(link walking、および旧riak search)
- securityが有効な際に、MapReduceジョブに対して公開されるErlangモジュー ルに制限があります。 その制限は、 ここ で説明されています。
- securityを有効化する場合はアプリケーション側の対応が必要です。対応の選択肢は、 設定変更中のサーバ応答の違いに対し適切に振る舞よう設計するか、 もしくは セキュリティ有効化前にアプリケーションを一旦停止させ、有効化 後にセキュリティ機能をサポートしたアプリケーションのバージョンをオン ラインに戻すことです。
2.0 のサポートリストへ多くのプラットフォームが追加されました。
- FreeBSD 10, with new pkgng format
- SUSE SLES 11.2
- Ubuntu 14.04 ('trusty')
- CentOS/RHEL 7
その他、1.4 から既にサポートされていたプラットフォームで更新されたものがあります。
- Fedora packages went from a Fedora 17, to Fedora 19 base
- SmartOS continued to support 1.8 and 13.1 datasets, but dropped 1.6
我々はaptとyumリポジトリを2.0のユーザーへ提供していますが、パッケージを 提供するサービスへの移行をお願いしています。
Packagecloud はapt/yumリポジトリのホス ティングに関わる多くのの苦痛を取り払うことはもちろん、ユーザーのみなさ んに多くの機能を提供する素晴らしいサービスです。みなさんにとって最も重 要な機能はユニバーサルインストーラです。これは対象のOSとバージョンを検 知し、適切なリポジトリとセキュリティキーの自動インストールを提供します。
2.0 パッケージは Packagecloud にホストされる一方で、いまのところ 1.4 パッ ケージは[apt|yum].basho.comに残ります。我々は追加機能によるメリットが、 みなさんのツール内のURL更新に伴うあらゆる苦痛を補うことを願っています。 このような変更をして申し訳ありませんが、これは今後への良き投資であると 考えています。
ほぼすべての Basho サポートのクライアントライブラリ は、2.0 用に更新されています。
PHP ライブラリはまだ更新が終わっていません。予定は決まっていません。
- 今回データ走査に使うイテレータの複数稼働が可能になりました。以前、 Bitcaskのデータ走査イテレータは一つだけで、これはAAEやfullsyncの処理 をブロックする可能性がありました。また本リリースでは、インメモリのキー ディレクトリは複数のスナップショットが共存し、1つのエントリに複数の 値を持つように修正されました。これはイテレータが頻繁に使われる際に、 メモリを以前より消費することを意味します。
- リスタート後に削除済みの値が復活する問題を修正。新しいtombstoneフォー マットと削除アルゴリズムに対応するため、ヒントファイルとデータファイ ルのフォーマットが変更されました。マージアルゴリズムの削除マークが付 与されたファイルは、今回setuidビットの代わりにexecutionビットがセット されます。フォーマット変更により、ダウングレードする場合は旧バージョ ンのRiakは新フォーマットのファイル読み込みに失敗するため、ヒントファ イルを削除する必要があります。Riakは新フォーマットファイルを再生成す るため、全てのBitcaskファイルの段階的なマージを実施します。このマージ はmerge window設定に従い、ノードが高負荷にならないように分割して実行 されます。マージは完全にスキップもしくは調整する設定項目がいくつか用 意されています。Bitcaskはマージしてもしなくても正常に動作します。以前 の旧フォーマットファイルの領域解放よりも、Bitcaskが多くの時間を必要と するようになるため、できるだけ早くディスクスペースを解放することがこ の設定の狙いです。
- 起動中のマージに関する問題を修正。マージは
riak_kv
サービスの起動ま で延期されます。
歴史的に、Basho のライブラリは Riak アクセスのための HTTP とプロトコルバッファ をどちらもサポートしてきました。 最近まで、HTTP はすべての Riak の機能をサポートしている強みがありました。
今ではプロトコルバッファが機能的に同等となり、またプロトコルバッファが 一般にはより速いことから、Basho は クライアントライブラリだけからは HTTP サポートを取り除きつつあります。 データベースとしての HTTP API を削除する予定はありません。
Python クライアントは HTTP サポートを残していますが、Java、Ruby、 Erlang は HTTP をサポートしません。
Riak 2.0 はいくつかの機能を廃止予定とします。 後述する 廃止される機能 もご覧ください。
- Link Walking は廃止予定となり、security が有効化されると動作しません。
- Key Filters は廃止予定です。key listing は、その負荷のため、プロダクション環境で 使うべきではありません。たとえば、キーインデックスを Riak のバリューとして 保存するほうが良い選択肢です。 (このようなインデックスには、新しい set data type が有用です)
- JavaScript MapReduce は廃止予定です。移行を手助けするため、 Erlang MapReduce ドキュメントはすでに拡充済みです。
- Riak Search 1.0 は新しい Solr ベースの Riak Search 2.0 を選択したため、段階的に廃止されます。 バージョン 1.0 は security が有効化されると動作しません。
- v2 レプリケーション (Riak Enterprise の機能です)は v3 に置き換えられ、 将来削除予定です。
- レガシーゴシップ(Riak の最初のゴシップ機構でしたが、1.0 で置き換えられました) は将来削除予定です。 その時点で 1.0 以前の Riak ノードはクラスタに join 出来なくなります。
- レガシー vnode ルーティング (サーバ間のリクエスト管理のための初期の仕
組み)は廃止予定です。もし
vnode_routing
が Riak capability システム によりlegacy
に設定されている場合、将来のアップグレードでの問題を 防ぐため、それを取り除くべきです。 - 過去に Riak の内部 API (例
riak:local_client/1
) を使っているユーザ がいましたが、この API はいつでも変更される可能性があります。代わりに Erlang client library (もしくは いずれかのクライアントライブラリ) を利用することを強く推奨します。
riak-admin backup
は廃止されました。バックアップとリストアについて の詳細な手順は ドキュメント をご覧ください。- Client ID-based vector clocks
は削除されました。
ノードベースの vector clock がより好ましいことから、
vnode_vclocks
設定により この機能は以前からデフォルトで停止されていました。 - LevelDB の設定から
cache_size
とmax_open_files
が廃止されました。 代わりにleveldb.maximum_memory.percent
を使ってください。詳細は Configuring eLevelDB をご覧ください。
バージョン 2.0 での既知の問題は この Riak wiki ページ. で 完全なリストを見ることが出来ます。
2.0 へアップグレードする完全なドキュメントは 公式のページ にあります。 以下の情報はそれを補完するものです。
重要: 2.0 は主要な新機能を導入します。そのうちのいくつかは Riak 1.x と互換ではありません。 そのような機能は bucket types に依存しています。 バケットタイプが ひとつでも 作成され有効化された後には、ダウングレードは できません。
Riak 1.x へダウングレードする前には、必要な手順についての情報のため 2.0 downgrade notes を参照してください。
1.4 および以前の設定ファイル (app.config
and vm.args
) から2.0の
新しい設定ファイルへの変換は自動でできません。以前
の設定ファイル app.config
と vm.args
は、設定ファイルのディレクトリ
内にあれば動作しますが、設定のカスタマイズ内容を riak.conf
と
advanced.config
へ反映させ、今後の設定を簡単にすることをお勧めします。
追加の情報は
configuration files documentation
にあります。
下記のリストは1.4.x 2.0間でマージされた全てのPRです。2.0 で追加された次 のリポジトリはこれに含みません。リストに加えてこれらのリポジトリからの 全てのPRにも注意して下さい。
- Canola - PAM driver for Erlang
- Cuttlefish - Riak's new configuration tool
- pbkdf2 - PBKDF2 implementation for Erlang
- riak_auth_mods - Security authentication modules for Riak
- riak_dt - Convergent replicated datatypes (CRDTs) in Erlang
- riak_ensemble - Multi-Paxos framework in Erlang
- Yokozuna - Riak Search 2, Riak + Solr
- bitcask/103: add optional key transformer to support new key formats
- bitcask/104: Improve bitcask iteration concurrency.
- bitcask/106: Refactor of Evan's multifold
- bitcask/110: remove unused header
- bitcask/112: moved in bitcask schema bits from riak.schema
- bitcask/115: lazily create merge files to avoid creation of empty files
- bitcask/116: Fix fstat struct leak.
- bitcask/118: avoid file server
- bitcask/119: added erlang file header.
- bitcask/123: Refactor bitcask_fileops:fold_keys function
- bitcask/124: Add a Makefile target for pulse tests
- bitcask/125: Updated schema for new cuttlefish api
- bitcask/127: Rename/refactor a bunch of cuttlefish settings.
- bitcask/130: fix bitcask.schema for multi_backend
- bitcask/132: Use tools.mk for dialyzer support
- bitcask/133: Add xref target
- bitcask/135: Changed bitcask.data_root to directory datatype
- bitcask/138: Cuttlefish schema RHS sub for platform_bin_dir
- bitcask/139: Dialyzer fixes and turn on warn_untyped_record & warnings_as_errors
- bitcask/140: move from timestamps to epochs for folding and siblings
- bitcask/141: Changed cuttlefish rhs subs to use $ syntax
- bitcask/143: Simplify find entry snapshot use
- bitcask/144: Add sibling->regular entry conversion sweeper
- bitcask/145: Ensure licensure for long pulse tests.
- bitcask/147: Fix potential keyfolders count leak
- bitcask/148: Fix race with concurrent merges and deletes
- bitcask/150: Remove the possibility for merge and open to race.
- bitcask/151: multifold test stabilization
- bitcask/155: Set the hash symbol to dollars
- bitcask/157: Fixed an issue with some multi_backend versions not matching regular versions
- bitcask/158: Restore fix to timestamp test
- bitcask/160: add warnings as errors to the nif build flags
- bitcask/161: Fixes for 'faulterl'-style fault injection
- bitcask/162: Pevm pulse tweaks multifold2
- bitcask/164: Invalid hintfile error message is too severe
- bitcask/170: Deferred delete bug (aka Cd8)
- bitcask/173: forward port of fix for fold_file_loop
- bitcask/175: Bugfix/fold open delete race
- bitcask/177: Fix epoch comparison by find_keydir_entry() when keydir->pending != NULL
- bitcask/179: Update tools.mk to v0.5.5
- cluster_info/13: use lager_format:format/4 if available
- cluster_info/14: Use tools.mk Makefile
- ebloom/10: Use tools.mk Makefile
- eleveldb/103: Change cuttlefish RHS sub to $ syntax
- eleveldb/104: correct prefetch race condition.
- eleveldb/105: Fix dialyzer and xref errors
- eleveldb/109: Mv compress option
- eleveldb/111: Mv tiered options
- eleveldb/113: avoid badarg exception when closing db_refs being closed
- eleveldb/117: Mv iter close fix
- eleveldb/119: Must wait until complete close of iterator finishes.
- eleveldb/69: mv-iterator-prev branch
- eleveldb/70: Specify the Snappy libdir install location
- eleveldb/73: Mv flexcache
- eleveldb/74: add limited_developer_mem option flag (support)
- eleveldb/75: Mv flexcache4
- eleveldb/77: fixed dialyzer errors in async_iterator_move
- eleveldb/80: multibackend part of .schema belongs into riak_kv
- eleveldb/87: Schema updates for new cuttlefish API. unit test.
- eleveldb/88: Mv iterator refresh
- eleveldb/89: Schema Changes
- eleveldb/92: Use tools.mk Makefile
- eleveldb/93: Mv tuning4
- eleveldb/95: Cuttlefish rhs subs for platform_bin_dir
- eleveldb/96: Mv tuning6
- eper/10: Merge pull request #1 from basho/master
- eper/5: Update Makefile so that it automatically pulls the new deps.
- eper/6: R16B01 compatibility changes.
- eper/6: R16B01 compatibility changes.
- eper/7: Additional R16B01 compatibility changes.
- eper/8: Add Dialyzer support via tools.mk Makefile
- eper/9: Merge upstream 0.78
- erlang_js/34: Add port_spec due to rebar not adding a default port_spec any more
- erlang_js/35: Support non-binary error-reasons in define_js/4
- erlang_js/37: Add patch to js-1.8.0 which fixes inline compilation error with gcc 4.7+
- erlang_js/38: Dialyzer
- erlang_js/39: Resolve build problems on Mountain Lion.
- erlang_js/40: Regardless of OTP rel, build Mountain Lion 64-bit.
- erlang_js/43: Permit quotes in anonymous functions
- lager/170: pretty printing of nested records
- lager/179: Fix lager eunit initialization
- lager/185: Fixed formatting.
- lager/186: Allow PLT destination to be specified
- lager/187: Rework how dialyzer PLTs are built and used
- lager/188: Fix dialyzer warnings and make all the records typed
- lager/192: Remove the workaround for the bug when printing empty binaries in W mode
- lager/193: Fix lager_console_backend:is_new_style_console_available() function
- lager/194: Add xref target, with exclusions
- lager/196: Don't use the proplists module when decoding error_logger messages
- lager/197: Add newline to error_msg:error_report lines in crash.log, see #164
- lager/199: Fixed empty tuple bug in lager:pr/2
- lager/200: Fix: correct lager startup in crash_log test
- lager/201: Only discard gen_event notifications on high watermark
- lager/202: Make tests pass on buildbot more of the time
- lager/204: support disable pretty printing records encountered at compile time
- lager_syslog/10: updated readme for clarity
- lager_syslog/9: Improve lager_syslog_backend to support non-atom output log levels.
- leveldb/90: leveldb's mv-clean-overlaps
- leveldb/92: Mv spin locks
- leveldb/93: Mv throttle 4
- leveldb/95: Mv flexcache
- leveldb/96: Fix version_set compilation bug
- leveldb/98: Mv counters update
- leveldb/99: Mv async close
- leveldb/100: Mv flexcache2
- leveldb/101: Mv hot threads1
- leveldb/102: revert to original, fixed 20 percent for internal databasses
- leveldb/103: install additional performance counters
- leveldb/104: change build_detect_platform to check for OS X Mavericks
- leveldb/105: Mv flexcache5
- leveldb/106: Mv hot threads2
- leveldb/108: Mv aggressive delete
- leveldb/111: Mv dynamic block size
- leveldb/113: Mv fadvise control 2.0
- leveldb/114: mv-iterator-refresh (part 2)
- leveldb/117: mv-tuning4
- leveldb/119: mv tuning5
- leveldb/120: Mv tuning6
- leveldb/125: activate the AssertHeld() logic of Mutex and Spin classes. And address issue #100
- leveldb/129: Two fail case fixes from failure injection tests
- leveldb/130: Mv tiered options
- leveldb/131: code to isolate Log() file flushes from happening within mutex...
- leveldb/132: Mv write sizing
- leveldb/137: Mv delete mutex fix
- leveldb/139: Mv tuning9
- leveldb/140: Give Read and Iterator calls more consistent disk access on moderately loaded systems.
- merge_index/27: Cv 3717 patch
- node_package/100: Explicitly set a destination dir for generated files by cuttlefish
- node_package/102: Add optional support for specifying a NUMA policy
- node_package/103: added extra -vm_args to CONFIG_ARGS for easy access by erlang vm
- node_package/106: added support for extra cuttlefish commands
- node_package/108: Ensure word-splitting does not happen when re-running as other user.
- node_package/109: Fix patch for smartos to add quotes
- node_package/112: Add chkconfig to install and uninstall scripts for RPMs
- node_package/113: Add support for -kernel net_ticktime
- node_package/116: Read /etc/sysconfig/ file in RHEL/Fedora init script
- node_package/119: force nodetool's encoding to be unicode
- node_package/121: Change prctl calls from
-t basic
to-t system
for SmartOS - node_package/123: Further support for cuttlefish configuration files in SmartOS
- node_package/126: Replace sudo in runner scripts with su for greater compatibility
- node_package/128: Add packaging for FreeBSD pkg-ng
- node_package/129: Escape quotes passed on runner command line
- node_package/132: Remove reboot from runner script
- node_package/134: Escape '{' and '}' in env.sh before calling su
- node_package/137: Set HOME env var and proper perms on nodetool in Ubuntu
- node_package/140: Add basic support for SuSE Linux
- node_package/143: Restart the old-fashioned way
- node_package/146: Require root or runner privs to run
ping
command - node_package/148: Cleanup usage documentation for chkconfig
- node_package/149: Source default config files in env.sh
- node_package/78: node_package cuttlefish integration
- node_package/80: Added 'help' section
- node_package/81: Fixed issues with whitespace for non-cuttlefish configs
- node_package/85: make chkconfig output path to config file
- node_package/86: vm.args support for node_package
- node_package/87: Fixes 'attach' in runner script
- node_package/88: Remove the output of ping from the console command
- node_package/89: Fix return code of service stop in the RPM init script
- node_package/92: fixed node and cookie regex to be more inclusive, more whitespace
- node_package/96: Use shell globing instead of unnecessary and dangerous ls construct.
- riak_api/31: Add swap/3 API
- riak_api/33: Fix case where the registrar is not the table owner but a swap message is sent.
- riak_api/34: Move webmachine from riak_core.
- riak_api/35: Add security to Riak
- riak_api/36: pb_service_test no longer runs
- riak_api/38: Moved riak_api bits of riak.schema, and added unit tests
- riak_api/39: Add CRL checking for client certificate
- riak_api/40: Reformatting.
- riak_api/43: Added protobuf.nagle to the riak_api.schema
- riak_api/44: Fix late registrations: riak_api_pb_server is no longer a gen_server
- riak_api/46: Honor configured cipher suites and add an option to honor the order
- riak_api/47: Changes for new cuttlefish API
- riak_api/48: Remove references to ranch_tcp and ranch_ssl.
- riak_api/49: Remove reset functionality from bucket-type service.
- riak_api/51: Confbal/schema review and tests
- riak_api/52: Add tools.mk
- riak_api/53: Refactor riak_api_pb_service to use callback mod attributes
- riak_api/54: HAproxy health-check causes node shutdown
- riak_api/55: Add xref target and fix uncovered bug
- riak_api/56: {level, advanced} -> hidden
- riak_api/57: No longer call deprecated function
- riak_api/58: Change error message returned when no module reg.
- riak_api/59: Fix dialyzer warnings
- riak_api/60: Make HTTPS consistent with PB
- riak_api/62: Handle the {error, no_type} return from riak_core_bucket.
- riak_control/112: Fix redirect logic.
- riak_control/114: Add the ability to select all available n_vals in cluster.
- riak_control/126: Handle incompatible record in Riak 1.4.0.
- riak_control/136: Incompatible is less serious (master)
- riak_control/138: Merge 1.4 into master and reconcile changes.
- riak_control/142: Fix cherry-pick conflict in templates.js
- riak_control/143: Upgrade to ember-1.0.0 and the latest ember-data beta
- riak_control/146: Fix bad function call.
- riak_control/147: Bring templates up-to-date.
- riak_control/150: Remove generated files.
- riak_control/154: Fix bad paths and ignore generated files.
- riak_control/155: Use webmachine develop branch.
- riak_control/159: Use promises to engage loadingRoute on all application states.
- riak_control/160: Fix rebar.config to use {branch, "name"}
- riak_control/161: Add testing harness.
- riak_control/164: Add force_ssl flag to Riak Control.
- riak_control/165: riak_control cuttlefish schema and tests
- riak_control/166: No longer build for R14.
- riak_control/167: Address regression introduced by basho/riak#403.
- riak_control/168: Deprecate unused, failing, tests.
- riak_control/169: Replace README.
- riak_control/171: Fix dropdown for replace not not populating correctly
- riak_control/174: Provide some basic tests around the RiakControl Main Pages
- riak_control/176: Changes for new cuttlefish api
- riak_control/177: Simplified riak_control's cuttlefish schema. CONFBAL STYLE!
- riak_control/178: Sensible defaults for riak_control
- riak_control/180: Fix for Issue 179
- riak_control/181: try/catch for rex error
- riak_control/91: Add new ring availability page.
- riak_control/93: Add doc; general cleanup.
- riak_control/94: Add additional specs.
- riak_core/285: Remove unnecessary function call.
- riak_core/348: R16B01 compatibility changes.
- riak_core/363: Cluster Metadata (Part 1/2)
- riak_core/367: Fix meck related unit test problems
- riak_core/368: Merge 1.4.2 to develop
- riak_core/369: Use raw ring when setting bucket props (develop branch)
- riak_core/381: Remove webmachine dependency
- riak_core/382: Remove protobuffs dependency from riak_core.
- riak_core/386: Add security to Riak
- riak_core/387: Expose the resolution of capabilities for general use in protocol negotiations
- riak_core/393: update hashtree_eqc. get it passing on eqc 1.29.1
- riak_core/394: Fix rebar.config to use {branch, "name"}
- riak_core/396: address some metadata hashtree issues
- riak_core/397: dialyzer fixes for cluster metadata
- riak_core/398: Remove merkle
- riak_core/400: Fixes #189 -- include socket peer info in lager messages
- riak_core/402: Proper Bucket Type Creation
- riak_core/408: mark AAE vnodes as internal databases for leveldb flexcache accounting
- riak_core/410: export vsn of riak_core_ring:future_index that doesn't take ring
- riak_core/411: Sort AAE differences before acting upon them via read-repair
- riak_core/413: Fix eunit test failures
- riak_core/414: Increase disterl buffer sizes.
- riak_core/415: Add infrastructure to change the OTP net_kernel's net_ticktime
- riak_core/416: move ebin/riak_core.app to src/riak_core.app.src
- riak_core/417: refactored riak_core bits of the schema in here, with tests
- riak_core/421: Update otp_release list in .travis.yml
- riak_core/423: fill in missing props in riak_core_bucket_type:defaults/0
- riak_core/424: moved default bucket props from riak_kv
- riak_core/425: GET ON THIS LEVEL
- riak_core/430: Fix bad type specifications.
- riak_core/431: do not serialize through gen_server on metadata get
- riak_core/432: Make load_certs function exported and more useful (works on a single file, too)
- riak_core/433: share segment store accross all nodes in hashtree_tree
- riak_core/435: Rework table formatting to be better and output better info
- riak_core/436: 2.0 version of handoff backwards compatability
- riak_core/437: Implement riak security enable/disable/status
- riak_core/441: Support for strongly consistent Riak
- riak_core/445: initial add of riak_core_bucket_types.hrl
- riak_core/446: cleanup conn_mgr/service_mgr eunit output
- riak_core/447: Removed webmachine from applications that should be started.
- riak_core/451: Implement alter-user, del-user and del-source
- riak_core/453: add missing apps to src/riak_kv.app.src
- riak_core/454: Added handoff concurrency setting to schema.
- riak_core/457: Yet Another Round of Cluster Metadata Improvements (YAROCMI #1)
- riak_core/460: Validate Bucket Type Properties Required by Core
- riak_core/462: Add EQC statem property for vclock. [rebased]
- riak_core/463: Add get dot and dot type for dvv style causality
- riak_core/467: Bound the time that stats calculation can take
- riak_core/468: Changing how pathing is determined:
- riak_core/469: Make cipher suites configurable via the command line
- riak_core/471: Provide a synchronous registration and unregistration of services.
- riak_core/478: New cuttlefish api functions
- riak_core/480: Port 1.4 changes to the 2.0 branch.
- riak_core/482: Ensure stats progress and tag individual stale stats
- riak_core/483: Numerous AAE improvements
- riak_core/484: Background Manager Integration with Handoff
- riak_core/486: riak_core support for kv#734
- riak_core/488: Wildcard security sources overlapping with regular user sources causes issues
- riak_core/490: Fix mailing list link in README
- riak_core/491: remove legacy forwarding code that snuck in as part of 632af2b3ce9
- riak_core/495: Filter Typed Bucket Tombstones in riak_core_ring:get_buckets/1
- riak_core/497: Cuttlefish schema for background manager global kill/enable switch
- riak_core/498: Fix a Couple Mixed Cluster Issues w/ Bucket Types
- riak_core/499: properly handle default bucket type in get/1
- riak_core/500: Allow PLT destination to be specified
- riak_core/502: Peer Reviewed Schema Changes
- riak_core/503: Don't discard config options that are not validated
- riak_core/504: fix make test
- riak_core/506: Handle tombstones when accumulating sources
- riak_core/507: Use tools.mk Makefile
- riak_core/508: Made platform_*_dir {level, advanced}
- riak_core/510: Dominates should take timestamp into account.
- riak_core/511: address unmatched_returns in cluster metadata code
- riak_core/512: Add xref target, with exclusions
- riak_core/513: plumb through coverage queries during overload
- riak_core/514: Re-order Resize Transfers so Partitions Not Changing Ownership Go First
- riak_core/515: Made tcpmon aware of ssl sockets for stats.
- riak_core/518: Include directories in generated .conf file.
- riak_core/519: If the security capability is unknown, consider security off
- riak_core/520: add {refresh_iterator, true} for backend folds during handoff send
- riak_core/521: "candidate" misspelled in node replacement error messages
- riak_core/523: Missing whitespace in error message
- riak_core/524: Stop doing implicit role manipulation
- riak_core/526: Cuttlefish RHS Substitutions
- riak_core/531: Removed table manager.
- riak_core/534: Treat users and groups as distinct concepts (extended)
- riak_core/536: Cleanup for permissions assigned to 'all'
- riak_core/540: Fix dialyzer warnings
- riak_core/542: Minor cleanups
- riak_core/543: Add callback annotations to riak_core_vnode
- riak_core/544: Remove those obnoxious debug statements from bucket_fixup_test
- riak_core/545: Update tools.mk to 0.5.3 and add dialyzer ignore file
- riak_core/546: Improve output from (primarily) security commands
- riak_core/547: Switched cuttlefish RHS subs to $ syntax
- riak_core/548: Drop console support for 'all' keyword for global permissions, fix typo
- riak_core/549: Add dialyzer files to gitignore
- riak_core/550: Only wait for the finished message in the updown test
- riak_core/551: Make print-user/group look like print-users/groups
- riak_core/555: Fix overload test
- riak_core/562: Be more rigorous with security command-line arguments
- riak_core/566: Improve riak_ensemble integration
- riak_core/567: Do not allow a bucket type named 'any'
- riak_core/568: Add
dvv_enabled=true
to default props for typed buckets - riak_core/573: Refactor: rename entry for dot (cos that's what it is)
- riak_core/577: Update core:security:bucket() spec
- riak_core/578: Ensure ensembles reconfigure before nodes exit
- riak_core/581: Correct return type information on riak_core_bucket:set_bucket/2
- riak_core/586: Made many rpc:call/4,5 calls safer if rex is down.
- riak_core/587: Fix hashtree:sha_test_ from timing out
- riak_core/589: Extend hashtree eqc test timeouts
- riak_core/591: Fix minor display bug with security sources
- riak_core/592: change bucket_fixup_test:fixup_test_/0 to wait for ring manager death
- riak_core/595: plug bg_manager_eqc into eunit and address potential race
- riak_core/596: timeout in riak_core_tcp_mon nodeupdown_test_
- riak_core/598: Make riak_core_util:safe_rpc catch exit correctly
- riak_core/599: disable bg manager globally
- riak_core/600: attempt to isolate hashtree tests more by using a reference
- riak_core/601: Add logic to automatically enable consensus system
- riak_core/602: Fix riak_core_util:pmap/2 infinite stall
- riak_core/603: Bugfix/reip update claimant
- riak_core/605: call Mod:handle_overload_info/2 for unknown msgs in vnode_proxy during o...
- riak_core/606: Silence output from core_vnode_eqc and log to file instead
- riak_core/609: Use a proxy process in claimant when joining/removing SC nodes
- riak_core/611: Update tools.mk to v0.5.4
- riak_core/612: Update tools.mk to v0.5.5
- riak_jmx/18: Added cuttlefish schema for riak_jmx
- riak_jmx/19: Using newer cuttlefish datatypes
- riak_jmx/20: Fix riak_core regression.
- riak_jmx/21: Updated JMX schema with newer cuttlefeatures
- riak_jmx/22: Add tools.mk and make xref work
- riak_jmx/23: {level, advanced} -> hidden
- riak_jmx/24: remove useless script
- riak_jmx/25: Resolve all outstanding dialyzer warnings.
- riak_kv/1000: Update tools.mk to v0.5.5
- riak_kv/1002: Update to latest riak_ensemble integrity approach
- riak_kv/383: Add disk stats to
/stats
output to make consistent - riak_kv/561: Handle worker errors and timeout on 2i reformat
- riak_kv/601: Move json encoding out of riak_object
- riak_kv/602: R16B01 compatibility changes.
- riak_kv/603: Remove -author attributes
- riak_kv/606: Make the memory backend config behave as documented
- riak_kv/607: Don't return the timestamp information when folding objects
- riak_kv/608: fix riak_kv_backend standard tests
- riak_kv/613: Fix counter protobuf message codes
- riak_kv/639: Fix HTTP MR error reporting
- riak_kv/643: Add option for smaller bitcask keys
- riak_kv/647: Remove duplicate make targets.
- riak_kv/648: Add dialyzer targets.
- riak_kv/649: Fix keys fsm EQC test
- riak_kv/651: Merging 1.4.2 to develop branch
- riak_kv/652: remove hashtree code and docs
- riak_kv/653: Add Yokozuna index hook
- riak_kv/654: Generic AAE Status
- riak_kv/659: Move riak_core.proto from riak_core.
- riak_kv/661: Added Mutators to support changing object on read/write
- riak_kv/662: Add security to Riak
- riak_kv/663: Modify the version 1 format to support bucket types
- riak_kv/664: Use yokozuna or riak_search for "search" MapReduce inputs
- riak_kv/668: Fix rebar.config to use {branch, "name"}
- riak_kv/669: Add permissions to crdt requests.
- riak_kv/672: Bump rebar; fix makefile.
- riak_kv/673: update bucket validator for changes in core
- riak_kv/675: Set text/plain as content-type for permission errors
- riak_kv/677: bucket type console functions
- riak_kv/678: Error reason for put is not propagated back to client
- riak_kv/680: Add warning/max object limits
- riak_kv/681: Improve logging so we can tell which vnode failed to start up.
- riak_kv/685: add option to filter keys that are no longer in preflist during fold
- riak_kv/692: Fixed call to undefined function in kv_mutator
- riak_kv/694: Add bucket types support to HTTP.
- riak_kv/695: refactored in riak_kv bits from riak.schema with tests
- riak_kv/697: Re-introduce the 1.4 counters API
- riak_kv/698: Coerce the datatype property into an atom.
- riak_kv/702: moved default bucket props to riak_core
- riak_kv/703: Fix MR/bucket types incompatibility
- riak_kv/704: Adjust guard to tolerate bucket types
- riak_kv/705: Fix include path.
- riak_kv/707: Re-add security to the wm_counters endpoint
- riak_kv/708: Add validator support for data types
- riak_kv/710: Support for strongly consistent Riak
- riak_kv/711: Add hook to Yokozuna for handoff
- riak_kv/712: Use the deep equality check for riak_objects.
- riak_kv/714: Correctly enocde the update response when return_body is true
- riak_kv/718: Key-specific changes for FS2 testing
- riak_kv/719: Avoid mutator code path when necessary.
- riak_kv/720: added secure_referer_check to riak_kv schema
- riak_kv/722: Improve the documentation for the storage_backend setting.
- riak_kv/723: Fix merge to properly operate over dict.
- riak_kv/725: Fix type specification.
- riak_kv/727: moved some schema bits in from riak.schema
- riak_kv/728: Transform an empty context to a
undefined
for the PB protocol - riak_kv/729: Fix consistent_object mixed-mode failure.
- riak_kv/730: add riak_pb to apps in src/riak_kv.app.src
- riak_kv/731: remove ebloom from rebar.config
- riak_kv/732: Add HTTP API for datatypes.
- riak_kv/733: make riak_kv_test_util app startup less brittle
- riak_kv/734: Refactor FSMs to do less work
- riak_kv/742: Pass crdt_op to vnode on read-repair.
- riak_kv/745: Add CRDT stats
- riak_kv/746: Use a DVV like approach to stop sibling explosion
- riak_kv/751: documentation for memory_backend.max_memory
- riak_kv/756: Clean up two security holes: link walking and arbitrary erlang MR
- riak_kv/757: New cuttlefish api changes for schemas
- riak_kv/758: Merge CRDTs inside riak_object merge
- riak_kv/760: make it possible to disable overload protection
- riak_kv/761: Change the way we handle removes with a context
- riak_kv/763: Make vnode_status overload safe
- riak_kv/769: Integrate Background Manager with Handoff And AAE Tree Rebuilds
- riak_kv/770: Strong Consistency and Other Riak KV Bucket Validators
- riak_kv/771: Add support for conditional postcommit hooks
- riak_kv/773: Remove reset functionality from bucket-type API.
- riak_kv/776: 2i improvements added in 1.4.4-1.4.6
- riak_kv/778: Fix bug with stats for legacy counters.
- riak_kv/782: Don't encode object dot for JS map-reduce
- riak_kv/785: Add timer:sleep()-based throttle to riak_kv_exchange_fsm:read_repair_keydiff()
- riak_kv/787: Fix test-compile target, skipping forced recompile if EQC is not present.
- riak_kv/788: fix put fsm's use of random:uniform_s when choosing forwarding node
- riak_kv/789: Fix logging call
- riak_kv/792: Unfold the put options at the start
- riak_kv/793: Cuttlefish schema for background manager subsystem (aae and handoff) kill/enable switch
- riak_kv/794: Allow PLT destination to be specified
- riak_kv/796: peer reviewed schema changes... and more
- riak_kv/808: Use tools.mk in Makefile
- riak_kv/810: Add "never" atom to options for anti_entropy_expire config.
- riak_kv/814: Fix DVV merge to handle "skewed dots"
- riak_kv/817: Bring 1.4.7 2i AAE fixes to 2.0
- riak_kv/820: Remved mutator system.
- riak_kv/821: Add xref target, with exclusions
- riak_kv/822: Ajs overload plumbing
- riak_kv/824: display default type properties in console status output
- riak_kv/825: revert allow_mult default only for untyped (default type) buckets
- riak_kv/826: Made anti_entropy.data_dir appear in default .conf file
- riak_kv/827: warn about inability to downgrade after activating bucket type
- riak_kv/828: Add riak_core stats to riak-admin status
- riak_kv/829: Make sure background and table manager are started for tests that need t.hem
- riak_kv/832: Replaced mustache template in schema with RHS sub for platform_bin_dir
- riak_kv/833: Move metadata settings to advanced level.
- riak_kv/835: Rebased push of riak_kv#807 (put_merge refactor + EQC)
- riak_kv/840: Export riak_kv_vnode:get/4
- riak_kv/841: Backwards compat for users running map reduce jobs that use riak_kv_counter
- riak_kv/843: Remove table manager from tests, as it has been removed from riak core
- riak_kv/848: Fix incorrect specification.
- riak_kv/849: Add config entry for riak_dt.binary_compression.
- riak_kv/850: deprecate riak_kv_backup:backup/3
- riak_kv/851: Update sysctl checks
- riak_kv/852: Use iterator_refresh backend option for some folds
- riak_kv/853: handle iterator_refresh option checking inside riak_kv_vnode only
- riak_kv/855: Add Yokozuna stats so they appear in console and http /stats
- riak_kv/857: Make get_put_monitor_eqc pass deterministically
- riak_kv/860: Fix use of fsm timeouts in 2i AAE
- riak_kv/861: Object limit changes done in 1.4.8
- riak_kv/862: Changed cuttlefish rhs sub to $ syntax
- riak_kv/867: Make get_put_monitor_eqc pass during
make test
- riak_kv/868: a couple bucket type console command improvements
- riak_kv/869: Send reply in event of a premature exit (via throw) from fold.
- riak_kv/871: Remove full object as context code and use DT's built in contexts
- riak_kv/874: Fix list_to_binary invocations on permissions errors
- riak_kv/879: Export AAE format functions for reuse
- riak_kv/881: Export riak_client type.
- riak_kv/882: Provide a minimal type for query_def.
- riak_kv/883: multi_backend.schema doesn't handle error cases of cuttlefish_generator:map/2
- riak_kv/885: First round of Dialyzer fixes.
- riak_kv/886: Add yz_stat exception to xref analysis
- riak_kv/887: Update to work with latest riak_ensemble API
- riak_kv/888: Fix handling of bucket+type with MR keyfilters
- riak_kv/891: Make
dvv_enabled
a bucket property - riak_kv/892: comapring -> comparing
- riak_kv/896: Implement AAE-based ensemble syncing
- riak_kv/898: Bound testing time for riak_object_dvv_statem
- riak_kv/899: keys_fsm_eqc intermittently fails
- riak_kv/904: Some small dialyzer progress
- riak_kv/907: Feature/riak kv pb index dialyzer
- riak_kv/910: Use vclock encapsulation of dot/pure_dot
- riak_kv/911: Ignore all current dialyzer errors
- riak_kv/913: Ignore {ack,_,now_executing} that arrive late
- riak_kv/914: Clean up webmachine resource specs
- riak_kv/916: Add sys_monitor_count and sys_port_count to stats.
- riak_kv/920: riak_core_security:check_permission/2 usage
- riak_kv/923: kv_vnode calling coverage_filter with 'all'
- riak_kv/924: Fix some AAE dialyzer errors
- riak_kv/925: Add Bitcask tombstone2 upgrade procedure
- riak_kv/926: Ensure nodes don't transition to exiting too soon
- riak_kv/931: Specified return code for riak_kv_console:bucket_type_status
- riak_kv/932: fix #929: wait for riak_kv_stat to unregister
- riak_kv/933: Use binary_to_atom/2 instead of binary_to_existing_atom/2.
- riak_kv/935: Fix limit checks in riak_kv_env for R16B02-basho5
- riak_kv/938: fix #936: handle slow metrics for get_put_monitor_eqc
- riak_kv/939: fix #937: spawn tests to avoid unrelated messages
- riak_kv/941: Fix dialyzer error in kv_mrc_map
- riak_kv/942: Better error handling from basho/riak_kv#935
- riak_kv/943: Optimize riak_kv_entropy_info:exchanges/2
- riak_kv/945: Comment out get_put_monitor_eqc property
- riak_kv/946: Bound eqc testing time
- riak_kv/947: Update repair count type specs in riak_kv_entropy_info
- riak_kv/950: Fix two places where the bucket-type was hard-coded "default" in securit...
- riak_kv/951: Use the embedded counter inside the map
- riak_kv/952: Fix security-enabled delete handling for nonexistent resources.
- riak_kv/953: Add basic Erlang-VM-style tracing utilities
- riak_kv/956: Cleaner output for bucket type creation errors
- riak_kv/963: forward port membackend fixes
- riak_kv/964: disable bg manager integration w/ handoff & AAE
- riak_kv/968: Expose a 2-arity from_mod function for embedded mod map
- riak_kv/970: Verify bucket type existence for list keys and buckets operations
- riak_kv/971: Improve on 5 min AAE+ownership change stall
- riak_kv/972: Rename security permission from riak_search.query to search.query
- riak_kv/973: Resolves GH #859 by setting tmpdir for sorting AAE disk logs.
- riak_kv/974: Fix 'undefined' bucket type issue.
- riak_kv/976: Fake Bitcask version for tests
- riak_kv/977: Fix reip loading of riak_core
- riak_kv/978: Verify strong consistency configuration on startup
- riak_kv/979: Add console commands to inspect ensemble system
- riak_kv/980: Make ensemble trust/paranoia configurable
- riak_kv/981: Add basic stats for strongly consistent operations
- riak_kv/987: Fix MOD_MAP when datatype update request includes return_body=true
- riak_kv/989: SC ensemble peers should wait for riak_kv service
- riak_kv/990: Add riak_kv_ensemble_backend:handle_down/4
- riak_kv/992: Correct discrepancy between do_get_term and case clause in do_delete
- riak_kv/993: Fix AAE on/off detection
- riak_kv/994: add riak_kv_vnode:handle_overload_info/2
- riak_kv/997: Ignore all warnings in generated riak_core_pb
- riak_kv/999: Update tools.mk to v0.5.4
- riak_pb/53: Add yokozuna index and schema admin messages
- riak_pb/54: Bucket type support
- riak_pb/55: Add security to Riak
- riak_pb/56: Add yokozuna messages to python
- riak_pb/58: Add term_regex to 2i query
- riak_pb/59: Remove bucket type field from counter messages, unsupported.
- riak_pb/61: Add datatype bucket property (read-only)
- riak_pb/63: Generate an Erlang module from a CSV of message/code mappings.
- riak_pb/64: An empty LWW register has the value
undefined
which is not binary() - riak_pb/65: Fix bug when decoding map values in an update response that had return_body=true.
- riak_pb/67: Renaming yz_index to search_index
- riak_pb/69: Upgrade java protobuf version from 2.4.1 to 2.5.0
- riak_pb/70: Inital pass at generating Protocol Buffer headers/source for C
- riak_pb/74: Remove reset functionality from bucket-type API.
- riak_pb/75: Fix typo in riak_pb_messages.csv
- riak_pb/77: Generate Python from message code mappings.
- riak_pb/79: Require GPG/PGP signing of the python release.
- riak_pb/80: Add n_val to Yokozuna Index
- riak_pb/82: Maven will autogenerate RiakMessageCodes
- riak_pb/84: Resolves issue with maven >= 3.1.x
- riak_pb/85: Relax the protobuf version restriction, allowing 2.5.0.
- riak_pb/86: Add missing 'consistent' bucket(-type) property.
- riak_pb/87: Convert Erlang build steps to tools.mk.
- riak_pb/89: compile in 17.0: clients are compiles with various OTP versions
- riak_pb/91: Clean up dialyzer specs for context/values
- riak_pb/93: Remove the 'add field' operation from riak_dt maps
- riak_pb/94: Fix dialyzer and xref warnings
- riak_pipe/80: catch and upgrade riak_core_fold_req_v1
- riak_pipe/83: Use tools.mk in Makefile
- riak_pipe/84: Add xref target, with exclusions
- riak_pipe/86: rpc:call try/catch rex
- riak_pipe/87: Resolve dialyzer warnings.
- riak_repl/318: fixed typo in debug message, not urgent
- riak_repl/324: removed delayed_write option to file:open
- riak_repl/326: Cache the inet:peername for better error condition logging.
- riak_repl/332: Make the interval the rtsink rechecks the active flag configurable.
- riak_repl/356: Use {active, once} for the rt_sink socket.
- riak_repl/357: don't blow up on stat errors
- riak_repl/371: Catch errors on connect in the RT source connection
- riak_repl/372: Add overload check and recovery to realtime queue
- riak_repl/388: merge 1.4 changes to develop
- riak_repl/391: Fix for heartbeat timeout bug discovered in riak_test repl_rt_heartbeat
- riak_repl/396: Repl schema for cuttlefish
- riak_repl/399: Handle decommissioned clusterid for replicated CS manifests
- riak_repl/400: Fixed realtime protocol version check
- riak_repl/402: Reduced Replication
- riak_repl/407: Add makefile with dialyzer targets.
- riak_repl/408: Fixed repl mutator registration
- riak_repl/412: Fix for Issue 384: Repl stats errors
- riak_repl/413: Merge 1.4 changes into develop, part 2
- riak_repl/418: merge repl hook fix from 1.4
- riak_repl/422: Fix for RTQ EQC prop_main and prop_parallel
- riak_repl/435: Handle race by treating cluster as disconnected.
- riak_repl/437: fixed misleading typo in connection msg
- riak_repl/438: Feature/mw/rtq percentage used
- riak_repl/439: add rebar.config dep for ebloom
- riak_repl/453: Use loopback interface flag rather than interface name.
- riak_repl/455: Remove undeliverables from the real time queue.
- riak_repl/456: Switch fail_on_warning to warnings_as_errors.
- riak_repl/457: Compilation changes
- riak_repl/463: Bugfix/dp/pg proxy leader changes develop
- riak_repl/465: Resolve race condition when joining a node.
- riak_repl/467: Prevent potential race condition.
- riak_repl/478: Port connection manager changes from 1.4 to 2.0
- riak_repl/479: Add nicer error message for service manager bind error.
- riak_repl/480: bring additional 1.4 changes to develop for 2.0
- riak_repl/481: Fix compilation errors in EQC tests.
- riak_repl/482: Avoid arithmetic on folsom error tuples
- riak_repl/484: Cuttlefish api changes and new unit test
- riak_repl/487: added a v2 deprecation lager:warning
- riak_repl/488: Integrate fullsync with the background manager
- riak_repl/491: official deprecation notice from prod mgmt
- riak_repl/501: Port of 1.4 AAE replication fixes to 2.0.
- riak_repl/503: Don't write empty clusters to the ring, ever
- riak_repl/505: Fix and refactor EQC, Eunit tests
- riak_repl/506: fixes for riak_ee #159
- riak_repl/509: Use tools.mk in Makefile
- riak_repl/511: Ensure we update the bloom for object differences.
- riak_repl/514: Prevent deadlock in hashtree compare.
- riak_repl/516: Removed reduced repl
- riak_repl/517: Add xref and remove ancient couchDB cruft
- riak_repl/520: Add protocol version checks in typed-bucket handling to fullsync for backward compatibility
- riak_repl/521: Use iterator_refresh option during vnode folds
- riak_repl/535: Make the heartbeat times in seconds, like it says in the docs
- riak_repl/536: Use riak_core_vnode_master:command_return_vnode when doing vnode folds
- riak_repl/538: Normalize representation.
- riak_repl/539: Remove some more couch_merkle holdovers
- riak_repl/541: Minor dialyzer fixes.
- riak_repl/546: fixing casacding/cascading and realtime_recv_kgbps typos
- riak_repl/550: Couple of simple bugs noticed while reading code
- riak_repl/551: Dialyzer fixes.
- riak_repl/552: More dialyzer fixes.
- riak_repl/554: Add fullsync stat caching on a configurable interval.
- riak_repl/558: Fixes wm stats for multiple client connections
- riak_repl/559: Bloom serialization.
- riak_repl/562: Bug/mw/correctly jsonify mutiple fs source sink
- riak_repl/563: Logging cleanup.
- riak_repl/564: Another round of Dialyzer work.
- riak_repl/566: Finish him.
- riak_repl/567: Use valid API for starting strategy modules in riak_repl_tcp_server
- riak_repl/568: Ignore unknown functions.
- riak_repl/569: Add callback annotations to gen_leader.
- riak_repl/571: Fix source/sink typo.
- riak_repl/578: Fixes monitor leak for realtime objects (#204).
- riak_repl/584: Fix JSONifying datetimes in the webmachine stats
- riak_repl/587: Bugfix/mw/safer rpc
- riak_repl/589: Update strip_postcommit to remove all possible repl hooks.
- riak_repl/590: Allow retries when location_down.
- riak_repl/591: Ensure that cancel_fullsync works.
- riak_repl/592: No longer use sync_send_event.
- riak_repl/595: Disable background manager by default.
- riak_repl/596: Don't attempt to send heartbeat when invalid.
- riak_repl/598: Add logic to clear cancelled connection requests
- riak_repl/599: Race condition causes fullsync replication to never complete
- riak_repl/601: Handle synchronous events for rolling upgrades.
- riak_repl/604: Change lager:notice in trim_q_entries/4 to lager:debug
- riak_repl_pb_api/10: Makefile and repo cleanup
- riak_repl_pb_api/11: Don't crash when {error, disconnected}.
- riak_repl_pb_api/4: be dialyzer friendly at riakc_pb_socket:tunnel/4
- riak_repl_pb_api/5: Switch back to develop branch.
- riak_repl_pb_api/9: bumped riak_pb to 2.0.0.11
- riak_search/138: use tuple modules instead of parameterized modules
- riak_search/150: Update riak_search to support some new core apis
- riak_search/151: don't forward folds in handle_handoff_command; do upgrade properly in ha.ndle_command
- riak_search/153: added {enabled, false} to app.src
- riak_search/154: Fix search tests
- riak_search/156: Don't start riak_search is security is enabled
- riak_search/158: Allow search to start if security is enabled, just disable its APIs
- riak_search/160: Add deprecation notice on Riak Search startup
- riak_snmp/10: fix unit tests for Erlang R16B01
- riak_snmp/11: look for mib_dir in riak_snmp not riak
- riak_snmp/12: fix "make clean" and .gitignore
- riak_snmp/13: fix error due to missing SNMP directory
- riak_snmp/14: fix unit test failures caused by missing module
- riak_snmp/15: Changes for new cuttlefish api
- riak_snmp/16: Confbal changes to cuttlefish schema.
- riak_snmp/17: Add tools.mk and xref
- riak_snmp/18: {level, advanced} -> hidden
- riak_snmp/8: Add try/catch around poll_stats() call, fix riak_test intermittent failures...
- riak_snmp/9: added cuttlefish schema for snmp
- riak_sysmon/10: moved riak_sysmon bits of cuttlefish schema here, with tests
- riak_sysmon/12: Added erlang emacs mode comment
- riak_sysmon/13: Update cuttlefish schema.
- riak_sysmon/14: {level, advanced} -> hidden
- riaknostic/74: pull app.config and vm.args from init:get_arguments
- riaknostic/75: added extra -vm_args to CONFIG_ARGS for easy access by erlang vm
- sidejob/5: Add tools.mk and a Makefile that uses it
- sidejob/6: Fix tests
- sidejob/7: Update tools.mk, add xref
- sidejob/9: Fix dialyzer warnings.
- webmachine/166: fix unit tests for Erlang/OTP R16
[1] http://doi.acm.org/10.1145/2332432.2332497 Nuno Preguiça, Carlos Bauqero, Paulo Sérgio Almeida, Victor Fonte, and Ricardo Gonçalves. 2012. Brief announcement: efficient causality tracking in distributed storage systems with dotted version vectors. In Proceedings of the 2012 ACM symposium on Principles of distributed computing (PODC '12).