Happy to help! Sean Cribbs
On Sep 16, 2012, at 3:14 PM, Brad Heller <b...@cloudability.com> wrote: > Hey Sean, > > Just wanted to say thanks for all this info, sorry it's a bit late. I was > able to get this up and running and it's been significantly more performant > and reliable than our previous solution! > > Cheers, > Brad > > On Sep 9, 2012, at 10:08 AM, Sean Cribbs <s...@basho.com> wrote: > >> Brad, >> >> :root should be where you want the test node generated to. In a Rails >> project this is typically tmp/riak_test_server. >> :source should point to the directory where the 'riak' control script >> lives in your local install. On Linux this is usually /usr/sbin, on >> Mac/Homebrew it might be /usr/local/bin. >> >> Using the same binaries but a different configuration is *exactly* >> what the Riak::TestServer does (these go for Riak::Node as well, which >> generates non-test nodes). #create will create a new directory on the >> filesystem (pointed to by :root) which contains bin/ etc/ data/ log/ >> ring/ and possibly some other directories. It will write your >> specified configuration to etc/app.config and etc/vm.args, using >> defaults that include memory-only backends for KV and Search and point >> the appropriate directories to the new root. It will also modify the >> riak & riak-admin scripts to point to the new root and write them to >> bin/. All of this happens without copying the Riak code or Erlang >> runtime into the new location. >> >> The other interesting and useful feature, aside from isolating the new >> Riak node to the generated directory, is the Console and the >> memory-backends that were specifically written for usage in >> test-suites. Riak::TestServer#drop will open a console (just like >> "riak attach") and run a command in the Riak node that makes it drop >> all data in RAM, which gives you a clean slate for each test/example. >> >> There is one bug in the generation process currently, which is that >> you must have started the normal installation at least once. I hope to >> resolve this bug in the future. >> >> On Sat, Sep 8, 2012 at 6:42 PM, Brad Heller <b...@cloudability.com> wrote: >>> Hey Sean, >>> >>> Thanks for the suggestion. I've spent a few hours trying to get this up and >>> running and I'm having a bit of a hard time. Is there any documentation >>> around Riak::TestServer? >>> >>> What are the configuration values for :source and :root supposed to be >>> exactly? As I understand it, :root should be something like >>> /path/to/riak/bin and source should be something like /path/to/riak. Is that >>> correct? Also, how does Riak:: TestServer#create behave exactly? >>> >>> In our dev environments we have a Riak configuration that includes config >>> files and binaries that our dev's can just git clone so they can get started >>> quickly. It is very similar to what the following docs outline only with >>> three nodes instead of one: >>> https://wiki.basho.com/Building-a-Development-Environment.html >>> >>> What I'd really like to set up is a way for Riak::TestServer to use the same >>> binaries as our dev riak config, but a different configuration (app.config, >>> vm.args, etc.). Is this possible? Alternatively, we could stick a copy of >>> the Riak binaries directly in the repo that is using Ripple to make it a bit >>> more standalone. >>> >>> What is the configuration you were anticipating when you wrote the >>> Riak::TestServer class? >>> >>> Thanks, >>> Brad Heller >>> >>> On Sep 7, 2012, at 5:02 AM, Sean Cribbs <s...@basho.com> wrote: >>> >>> If it's only for your test suite, use a local memory-only node via the >>> Ripple::TestServer. If you configure it correctly (there's a bundled >>> Rails generator that helps), it will delete all the contents of Riak >>> in one fell-swoop after or before each test/example. >>> >>> On Fri, Sep 7, 2012 at 2:49 AM, Brad Heller <b...@cloudability.com> wrote: >>> >>> Hey all, >>> >>> So we're rolling out Riak more and more and so far, so good. In fact we're >>> starting to accumulate a pretty sizable test suite of our data access layer. >>> To support this we've written some code that helps clean out buckets between >>> test runs. We're using Ruby (ripple + ruby-risk-client, obviously) so we >>> just monkey patch the bucket object and detect if it was used or not. >>> >>> If it was used during a test, we iterate over all the keys and delete each >>> one. We're cognizant of the risks in doing this for large clusters, but in >>> our test enviro the number of documents per test is pretty small and the >>> operations themselves are quite fast. >>> >>> The problem we're having, though, is that when we run the full suite (or a >>> large subset of the suite) all at once the churn in Riak seems to be so >>> quick that sometimes Riak isn't quite in the state that we expect it to be >>> in when the test runs! For instance, we have a test that checks that the >>> right number of linked documents are created when a given object is saved. >>> If we run the test by itself everything works fine--the expectation that 10 >>> documents are created indeed checks out. If we run this test as part of a >>> large suite of tests, the expectation fails and sometimes 11 documents or 12 >>> documents appear (we check by counting the keys in the linked bucket). >>> >>> I would think that this has something to do with Riak's eventually >>> consistent delete operation, but wanted to tap in to the brain trust: Is >>> there any tuning we can do in test to prevent this? >>> >>> Thanks, >>> >>> Brad Heller | Engineering Lead | Cloudability.com | 541-231-1514 | Skype: >>> brad.heller | @bradhe | @cloudability >>> >>> We're hiring! http://cloudability.com/jobs >>> >>> >>> _______________________________________________ >>> riak-users mailing list >>> riak-users@lists.basho.com >>> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com >>> >>> >>> >>> >>> -- >>> Sean Cribbs <s...@basho.com> >>> Software Engineer >>> Basho Technologies, Inc. >>> http://basho.com/ >>> >>> >> >> >> >> -- >> Sean Cribbs <s...@basho.com> >> Software Engineer >> Basho Technologies, Inc. >> http://basho.com/ > _______________________________________________ riak-users mailing list riak-users@lists.basho.com http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com