Permalink
Commits on Feb 7, 2013
Commits on Feb 6, 2013
  1. Fixed a bug with the key.selection and value.selection in build and push

    verifyschema() now takes the schema of the subfiled rather than entire
    record if this property is enforced
    abh1nay committed Feb 6, 2013
  2. Made streaming partially threadsafe for the timer thread to call commits

    periodically
    exposed the commit method
    abh1nay committed Feb 6, 2013
Commits on Jan 31, 2013
Commits on Jan 30, 2013
Commits on Jan 26, 2013
  1. Addressed most review feedback on BindException fixes.

    .classpath
    - fixed error I introduced.
    
    *RebalanceTest.java
    - refactored to reduce cut&paste code
    - added comments and one TODO about attempting a proper fix wrt BindExceptions later.
    
    ServerTestUtils.java
    - renamed method back to startVoldemortServer
    - added 'throws BindException'
    
    test/unit/voldemort/scheduled/StreamingSlopPusherTest.java
    - added comment clarifying why this test is hard to harden against BindException issue
    jayjwylie committed Jan 23, 2013
  2. Better documented the risks of invoking ServerTestUtils.startVoldemor…

    …tServer
    
    test/common/voldemort/ServerTestUtils.java
    - Renamed startVoldemortServer to startVoldemortServerInMannerThatMayResultInBindException
      (The name is intentionally long and annoying. There are some tests
      that must call this method bare, but that should be strongly
      discouraged!!!)
    - Added method header that encourages BindException to be caught and masked
    jayjwylie committed Jan 21, 2013
  3. Fixed the re-introduction of BindExceptions upon start up of some rec…

    …ently added tests:
    
    All of the following tests directly used the method ServerTestUtils.startVoldemortServer
      test/unit/voldemort/client/ClientRegistryTest.java
      test/unit/voldemort/client/AdminFetchTest.java
      test/unit/voldemort/client/EndToEndRebootstrapTest.java
      test/unit/voldemort/store/system/AsyncMetadataVersionManagerTest.java
      test/unit/voldemort/store/system/SystemStoreTest.java
    
    This method of starting Voldemort servers is susceptible to
    BindException errors. Unless something very fancy is being done, the
    method ServerTestUtils.startVoldemortCluster should be used to start a
    cluster within a test.
    
    test/unit/voldemort/client/ClientRegistryTest.java extended from
    TestCase. This is a "Junit3" idiom that we should not use in new
    tests. The Junit4 approach to tests relies solely on annotation.
    jayjwylie committed Jan 21, 2013
Commits on Jan 21, 2013
  1. Tweaked SimpleCounterTest to avoid passing negative value to sleep if…

    … GC or other pause occurs at inopportune point during test.
    jayjwylie committed Jan 21, 2013
Commits on Jan 15, 2013
  1. Reverted refactoring of PerformParallel* classes committed in f37b25e…

    …cdd14ac27480a8ca353cae919464df3af
    jayjwylie committed Dec 4, 2012
  2. Moved stress test for connection checkout/checkin and failure detecto…

    …r to long unit test. Cleaned up comments in ClientRequestExecutorPool to make intended semantics clearer.
    jayjwylie committed Dec 4, 2012
  3. Minor changes to tests

    - renamed base keyedresourcepool test to avoid pattern that ant/junit uses to try and run tests.
    - tweaked stress tests parameters once more to make it easier to run locally.
    jayjwylie committed Dec 3, 2012
  4. Substantial refactoring of (Queued)KeyedResourcePool tests.

    - factored out a common base class in which all of the nested helper classes are defined
    - separated out the various types of tests into files:
      - simple/basic tests
      - contention tests that spawn threads to generate contention
      - specific race condition test
    - The specific race condition test for KeyedResourcePool shows that google issue 276 is resolved: http://code.google.com/p/project-voldemort/issues/detail?id=276
    jayjwylie committed Dec 3, 2012
  5. Added stress test and cleaned up client request executor pool reset.

    reset(dest)
    - changed behavior to match original KeyedResourcePool implementation. The original QueuedKeyedResourcePool.reset() was an unnecessary/bad behavior change that canceled enqueued requests. The original behavior was to destroy idle resources whenever pool is reset.
    
    test/integration/voldemort/socketpool/E2EClientRequestExecutorPoolAndFailureDetectorTest.java
    - stress test that has put and get threads contend for slow servers in such a manner as to trigger failure detection to mark nodes unavailable. This excercises connection tear down, reset(), and build up again. This also exercises the code paths in which callbacks do heavyweight work.
    jayjwylie committed Nov 30, 2012
  6. Interim checkin with an ugly example of how threads could be created …

    …to handle callback work. The ugly code is commented out.
    jayjwylie committed Nov 30, 2012
  7. Refactor all PerformParallel*Request classes.

    - got rid of anonymous call back classes
    - factored out waitForResponses logic and processResponses logic for most of these classes. GetAll stands out as being fairly different from the others.
    - did not refactor to the point of sharing common code across classes, just refactored within each class.
    - added many TODOs to the code for further refactoring.
    jayjwylie committed Nov 29, 2012
  8. Reduce granularity of failure detector locking and do not destroy all…

    … enqueued requests upon setUnavailable.
    
    src/java/voldemort/cluster/failuredetector/ThresholdFailureDetector.java
    - Reduce amount of work done within synchronized section to reduce lock granularity and so ensure "side effects" of node being marked (un)available are not w/in sync section.
    
    src/java/voldemort/store/socket/clientrequest/ClientRequestExecutorPool.java
    - Added TODO/comment to decide whether we want to actively destroy all connections upon node being marked unavailable
    - Switched behavior to lazily destroying connections.
    jayjwylie committed Nov 28, 2012
  9. Less verbose logging in the face of expected exceptions and error log…

    …ging in the face of a slop not being written.
    
    src/java/voldemort/cluster/failuredetector/AbstractFailureDetector.java
    - less verbose logging when a node is unavailable
    
    src/java/voldemort/store/routed/action/AbstractAction.java
    - less verbose logging in the face of expected "exceptional" responses.
    
    src/java/voldemort/store/slop/HintedHandoff.java
    - ensure that an error message is logged if a slop is not written (we can grep for "Slop write of key.*was not written" in logs)
    - added TODO because ObsoleteVersionExceptiosn are neither treated as failures or successes in the callback to sendHintParallel.
    
    test/integration/voldemort/nonblocking/E2ENonblockingCheckoutTest.java
    - minor fix
    
    test/unit/voldemort/server/socket/ClientRequestExecutorPoolTest.java
    - from junit3 to junit4
    jayjwylie committed Nov 28, 2012
  10. Minor code clean up based on review feedback

    Protected all logger.(debug|info) statements I added with an is(Debug|Info)Enabled() check.
    
    Made AsyncRecoveryFailureDetector less verbose. When it polls a server to see if it is available, it now prints out a clean INFO level message. It had been printing out a WARN level message *with* a stacktrace that made this expected behavior look much scarier than it really is.
    jayjwylie committed Nov 17, 2012
  11. Added INFO level messages to better understand the performance of per…

    …-request instrumentation. Expect to remove most of this after debugging.
    jayjwylie committed Nov 14, 2012
  12. Added INFO level messages to better understand resetting stats in Cli…

    …entSocketStats. Expect to remove this after debugging.
    jayjwylie committed Nov 12, 2012