WiredTiger: Cursor random

| Version 3.1.0

Fork me on GitHub Join my user group
Cursor random

The `next_random` configuration to the WT_SESSION::open_cursor method configures the cursor to return a pseudo-random record from a row-store object (the `next_random` configuration is not supported on other types of objects).

Applications should use the WT_CURSOR::next method to retrieve records from the object, most other cursor methods are not supported. For example, it's not possible to update using a cursor configured for random retrieval.

By default, each returned record is pseudo-randomly selected from the underlying object as a whole. That can lead to skewed results when the underlying tree structure is unbalanced or records are not uniformly distributed. In such cases, the `next_random_sample_size` configuration can also be specified. Setting `next_random_sample_size` configures the number of samples the application expects to take using the cursor. A cursor configured using `next_random_sample_size` divides the object into `next_random_sample_size` pieces, and each subsequent retrieval returns a record from the next one of those pieces.