Skip to content

Commit

Permalink
[core] Fix checkstyle for generator package (brianfrankcooper#915)
Browse files Browse the repository at this point in the history
  • Loading branch information
risdenk authored Feb 3, 2017
1 parent 29e05b0 commit b60d267
Show file tree
Hide file tree
Showing 20 changed files with 1,194 additions and 1,232 deletions.
10 changes: 5 additions & 5 deletions core/src/main/java/com/yahoo/ycsb/RandomByteIterator.java
Original file line number Diff line number Diff line change
Expand Up @@ -74,19 +74,19 @@ public byte nextByte() {
}

@Override
public int nextBuf(byte[] buffer, int bufOff) {
public int nextBuf(byte[] buffer, int bufOffset) {
int ret;
if (len - off < buffer.length - bufOff) {
if (len - off < buffer.length - bufOffset) {
ret = (int) (len - off);
} else {
ret = buffer.length - bufOff;
ret = buffer.length - bufOffset;
}
int i;
for (i = 0; i < ret; i += 6) {
fillBytesImpl(buffer, i + bufOff);
fillBytesImpl(buffer, i + bufOffset);
}
off += ret;
return ret + bufOff;
return ret + bufOffset;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
/**
* Copyright (c) 2015 YCSB contributors. All rights reserved.
*
* Copyright (c) 2015-2017 YCSB contributors. All rights reserved.
* <p>
* Licensed under the Apache License, Version 2.0 (the "License"); you
* may not use this file except in compliance with the License. You
* may obtain a copy of the License at
*
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
*
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
Expand All @@ -22,71 +22,67 @@
* A CounterGenerator that reports generated integers via lastInt()
* only after they have been acknowledged.
*/
public class AcknowledgedCounterGenerator extends CounterGenerator
{
/** The size of the window of pending id ack's. 2^20 = {@value} */
static final int WINDOW_SIZE = Integer.rotateLeft(1, 20);
public class AcknowledgedCounterGenerator extends CounterGenerator {
/** The size of the window of pending id ack's. 2^20 = {@value} */
static final int WINDOW_SIZE = Integer.rotateLeft(1, 20);

/** The mask to use to turn an id into a slot in {@link #window}. */
private static final int WINDOW_MASK = WINDOW_SIZE - 1;
/** The mask to use to turn an id into a slot in {@link #window}. */
private static final int WINDOW_MASK = WINDOW_SIZE - 1;

private final ReentrantLock lock;
private final boolean[] window;
private volatile int limit;
private final ReentrantLock lock;
private final boolean[] window;
private volatile int limit;

/**
* Create a counter that starts at countstart.
*/
public AcknowledgedCounterGenerator(int countstart)
{
super(countstart);
lock = new ReentrantLock();
window = new boolean[WINDOW_SIZE];
limit = countstart - 1;
}
/**
* Create a counter that starts at countstart.
*/
public AcknowledgedCounterGenerator(int countstart) {
super(countstart);
lock = new ReentrantLock();
window = new boolean[WINDOW_SIZE];
limit = countstart - 1;
}

/**
* In this generator, the highest acknowledged counter value
* (as opposed to the highest generated counter value).
*/
@Override
public Integer lastValue()
{
return limit;
}
/**
* In this generator, the highest acknowledged counter value
* (as opposed to the highest generated counter value).
*/
@Override
public Integer lastValue() {
return limit;
}

/**
* Make a generated counter value available via lastInt().
*/
public void acknowledge(int value)
{
final int currentSlot = (value & WINDOW_MASK);
if (window[currentSlot] == true) {
throw new RuntimeException("Too many unacknowledged insertion keys.");
}
/**
* Make a generated counter value available via lastInt().
*/
public void acknowledge(int value) {
final int currentSlot = (value & WINDOW_MASK);
if (window[currentSlot]) {
throw new RuntimeException("Too many unacknowledged insertion keys.");
}

window[currentSlot] = true;
window[currentSlot] = true;

if (lock.tryLock()) {
// move a contiguous sequence from the window
// over to the "limit" variable
try {
// Only loop through the entire window at most once.
int beforeFirstSlot = (limit & WINDOW_MASK);
int index;
for (index = limit + 1; index != beforeFirstSlot; ++index) {
int slot = (index & WINDOW_MASK);
if (!window[slot]) {
break;
}
if (lock.tryLock()) {
// move a contiguous sequence from the window
// over to the "limit" variable
try {
// Only loop through the entire window at most once.
int beforeFirstSlot = (limit & WINDOW_MASK);
int index;
for (index = limit + 1; index != beforeFirstSlot; ++index) {
int slot = (index & WINDOW_MASK);
if (!window[slot]) {
break;
}

window[slot] = false;
}
window[slot] = false;
}

limit = index - 1;
} finally {
lock.unlock();
}
}
}
limit = index - 1;
} finally {
lock.unlock();
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,44 +1,43 @@
/**
* Copyright (c) 2010 Yahoo! Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you
* may not use this file except in compliance with the License. You
* may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
* permissions and limitations under the License. See accompanying
* Copyright (c) 2010-2016 Yahoo! Inc., 2017 YCSB contributors. All rights reserved.
* <p>
* Licensed under the Apache License, Version 2.0 (the "License"); you
* may not use this file except in compliance with the License. You
* may obtain a copy of the License at
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
* permissions and limitations under the License. See accompanying
* LICENSE file.
*/
package com.yahoo.ycsb.generator;

/**
* A trivial integer generator that always returns the same value.
*
* @author sears
*
*/
public class ConstantIntegerGenerator extends NumberGenerator {
private final int i;
/**
* @param i The integer that this generator will always return.
*/
public ConstantIntegerGenerator(int i) {
this.i = i;
}
private final int i;

@Override
public Integer nextValue() {
return i;
}
/**
* @param i The integer that this generator will always return.
*/
public ConstantIntegerGenerator(int i) {
this.i = i;
}

@Override
public double mean() {
return i;
}
@Override
public Integer nextValue() {
return i;
}

@Override
public double mean() {
return i;
}

}
82 changes: 40 additions & 42 deletions core/src/main/java/com/yahoo/ycsb/generator/CounterGenerator.java
Original file line number Diff line number Diff line change
@@ -1,52 +1,50 @@
/**
* Copyright (c) 2010 Yahoo! Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you
* may not use this file except in compliance with the License. You
* may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
* permissions and limitations under the License. See accompanying
* LICENSE file.
/**
* Copyright (c) 2010-2016 Yahoo! Inc., 2017 YCSB contributors. All rights reserved.
* <p>
* Licensed under the Apache License, Version 2.0 (the "License"); you
* may not use this file except in compliance with the License. You
* may obtain a copy of the License at
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
* permissions and limitations under the License. See accompanying
* LICENSE file.
*/

package com.yahoo.ycsb.generator;

import java.util.concurrent.atomic.AtomicInteger;

/**
* Generates a sequence of integers 0, 1, ...
* Generates a sequence of integers.
* (0, 1, ...)
*/
public class CounterGenerator extends NumberGenerator
{
private final AtomicInteger counter;
public class CounterGenerator extends NumberGenerator {
private final AtomicInteger counter;

/**
* Create a counter that starts at countstart.
*/
public CounterGenerator(int countstart) {
counter = new AtomicInteger(countstart);
}

@Override
public Integer nextValue() {
return counter.getAndIncrement();
}

@Override
public Integer lastValue() {
return counter.get() - 1;
}

/**
* Create a counter that starts at countstart
*/
public CounterGenerator(int countstart)
{
counter=new AtomicInteger(countstart);
}

@Override
public Integer nextValue()
{
return counter.getAndIncrement();
}

@Override
public Integer lastValue()
{
return counter.get() - 1;
}
@Override
public double mean() {
throw new UnsupportedOperationException("Can't compute mean of non-stationary distribution!");
}
@Override
public double mean() {
throw new UnsupportedOperationException("Can't compute mean of non-stationary distribution!");
}
}
Loading

0 comments on commit b60d267

Please sign in to comment.