[ https://issues.apache.org/jira/browse/CASSANDRA-12729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Robert Stupp updated CASSANDRA-12729: ------------------------------------- Status: Open (was: Ready to Commit) (revert change by anonymous) > Cassandra-Stress: Use single seed in UUID generation > ---------------------------------------------------- > > Key: CASSANDRA-12729 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12729 > Project: Cassandra > Issue Type: Bug > Components: Tools > Reporter: Chris Splinter > Priority: Minor > Fix For: 3.x > > Attachments: CASSANDRA-12729-trunk.patch > > > While testing the [new sequence > distribution|https://issues.apache.org/jira/browse/CASSANDRA-12490] for the > user module of cassandra-stress I noticed that half of the expected rows (848 > / 1696) were produced when using a single uuid primary key. > {code} > table: player_info_by_uuid > table_definition: | > CREATE TABLE player_info_by_uuid ( > player_uuid uuid, > player_full_name text, > team_name text, > weight double, > height double, > position text, > PRIMARY KEY (player_uuid) > ) > columnspec: > - name: player_uuid > size: fixed(32) # no. of chars of UUID > population: seq(1..1696) # 53 active players per team, 32 teams = 1696 > players > insert: > partitions: fixed(1) # 1 partition per batch > batchtype: UNLOGGED # use unlogged batches > select: fixed(1)/1 # no chance of skipping a row when generating inserts > {code} > The following debug output showed that we were over-incrementing the seed > {code} > SeedManager.next.index: 341824 > SeriesGenerator.Seed.next: 0 > SeriesGenerator.Seed.start: 1 > SeriesGenerator.Seed.totalCount: 20 > SeriesGenerator.Seed.next % totalCount: 0 > SeriesGenerator.Seed.start + (next % totalCount): 1 > PartitionOperation.ready.seed: org.apache.cassandra.stress.generate.Seed@1 > DistributionSequence.nextWithWrap.next: 0 > DistributionSequence.nextWithWrap.start: 1 > DistributionSequence.nextWithWrap.totalCount: 20 > DistributionSequence.nextWithWrap.next % totalCount: 0 > DistributionSequence.nextWithWrap.start + (next % totalCount): 1 > DistributionSequence.nextWithWrap.next: 1 > DistributionSequence.nextWithWrap.start: 1 > DistributionSequence.nextWithWrap.totalCount: 20 > DistributionSequence.nextWithWrap.next % totalCount: 1 > DistributionSequence.nextWithWrap.start + (next % totalCount): 2 > Generated uuid: 00000000-0000-0001-0000-000000000002 > {code} > This patch fixes this issue by calling {{identityDistribution.next()}} once > [instead of > twice|https://github.com/apache/cassandra/blob/trunk/tools/stress/src/org/apache/cassandra/stress/generate/values/UUIDs.java/#L37] > when generating UUID's -- This message was sent by Atlassian JIRA (v6.3.4#6332)