Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

L(-2) Config / Command-line work #622

Closed
wants to merge 45 commits into from

Conversation

seancribbs
Copy link

Tasks:

  • Redesign configuration schema, fill out documentation
  • Update schema tests
  • Move all commands into riak_repl_console, simplifying riak-repl script
  • Print usage output for all commands where possible
  • Incorporate new 2.0.1+ settings

Required PRs:

Related PRs:

@seancribbs
Copy link
Author

Note: this is not quite finished, do not review yet.

@seancribbs
Copy link
Author

Ready for review.

@jonmeredith
Copy link
Contributor

@lordnull is this something you could take?

@lordnull lordnull self-assigned this Oct 3, 2014
[print_ip_and_maybe_port(Int), print_ip_and_maybe_port(Ext)])
|| {Int, Ext} <- riak_repl_ring:get_nat_map(Ring)].
[print_ip_and_maybe_port(Int), print_ip_and_maybe_port(Ext)])
|| {Int, Ext} <- riak_repl_ring:get_nat_map(Ring)].
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Everywhere else the remainder of a list comprehension is indented farther than the start, yet here it's the opposite. It's rather jarring.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's aligned with the opening paren of io:format(). Honestly this is probably just what indent-buffer gave me.

@lordnull
Copy link
Contributor

lordnull commented Oct 6, 2014

With the cuttlefish and riak_ee pulls, the r_t tests pass, and manual poking of the cli interface is favorable. The eunit tests for repl do not, primarily the 'riak_repl_schema_tests' do not.

@seancribbs
Copy link
Author

@lordnull Fixed the 'riak_repl_schema_tests' in d980e1b, could you have another poke?

@seancribbs
Copy link
Author

Also, @javajolt reviewed basho/cuttlefish#166, so that should no longer cause build errors.

@lordnull
Copy link
Contributor

Eunit tests now pass, so looks good from here.

@seancribbs
Copy link
Author

👍 d980e1b r=lordnull

borshop added a commit that referenced this pull request Oct 14, 2014
L(-2) Config / Command-line work

Reviewed-by: seancribbs
@seancribbs
Copy link
Author

Ugh, failing because cuttlefish is pinned to a tag deep in bitcask. Fixing.

borshop added a commit that referenced this pull request Oct 15, 2014
L(-2) Config / Command-line work

Reviewed-by: seancribbs
@lordnull
Copy link
Contributor

@borshop: retry

@jonmeredith
Copy link
Contributor

@seancribbs anything left to do on cfish/repl integration other than making unit tests pass? release notes?

@jonmeredith
Copy link
Contributor

@borshop: retry

@jonmeredith
Copy link
Contributor

@borshop retry

Without a colon - WHY U SAY IT IS BAD?

@seancribbs
Copy link
Author

@jonmeredith @lordnull Do not merge this yet, I have lots of fixes for CLI inconsistencies.

Problem: transient failures of aae, such as trees not yet built or locks not
being aquired, would cause an aae fullsync process to exit abnormally. This
could happen several times in a row, creating log spam.

Resolution: the concept of soft_exit. A soft_exit is a message sent from a soon
to be exiting process to a soft_linked process. The exiting process would then
exit normally, while any soft_linked processes could handle the soft_exit
message in a similar fashion as an exit message. This would indicate an exit
reason that should be handled, but not bad enough to have the system logger
know about it.

The soft_exit message sent from the aae worker to the fscoordinator is
as simple as `{soft_exit, pid(), term()}'.

The current implementation is not generic. There can only one soft_link to
the aae, and there's no general mechanism to use soft_link's or soft_exits
elsewhere in the code base. Sorry.

Another change rolled into this is consistent use of a #partition_info record
in the fscoordinator, and error tracking the fscoordinator's state. By swapping
to useing a single data structure in the partition queue, whereis waiting list,
and purgatory queues it makes it easier to understand the fscordinator (as
there is less code modify structures).

This is a forward port of the fix done for 1.4. Conflicts favor existing code
where it does not directly effect the fix.

Conflicts:
	Makefile
	rebar.config
	src/riak_repl2_fssource.erl
	src/riak_repl2_rtq_proxy.erl
	src/riak_repl_aae_source.erl
	test/riak_core_cluster_mgr_tests.erl
@engelsanchez
Copy link
Contributor

@seancribbs what is the list of improvements that you were hoping to add here?

CV/SC and others added 26 commits February 28, 2015 09:57
* `standard_error` group leader cannot be used because it is not
  forwarded to the RPC caller.
* Fix newlines around top-level usage and V2 warnings
These settings were extracted from the replication code, but have not
been vetted or necessarily named properly. Many of them are slated to be
removed or changed for future versions of riak_repl. To promote a
setting to the main schema, one should write documentation and tests to
cover the setting.
@seancribbs
Copy link
Author

Closing so this can be reopened against develop.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

10 participants