Skip to content

Commit 352f9f1

Browse files
committed
Remove sizing from Recycler#obtain (#39975)
Currently there is a method `Recycler#obtain(size)` that allows a size parameter to be passed. However all implementations ignore this parameter and just allocate a page size based on other settings. This commit removes this method.
1 parent 87ec511 commit 352f9f1

File tree

10 files changed

+14
-32
lines changed

10 files changed

+14
-32
lines changed

server/src/main/java/org/elasticsearch/common/recycler/AbstractRecycler.java

-5
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,6 @@ protected AbstractRecycler(Recycler.C<T> c) {
2828
this.c = c;
2929
}
3030

31-
@Override
32-
public V<T> obtain() {
33-
return obtain(-1);
34-
}
35-
3631
@Override
3732
public void close() {
3833
// no-op by default

server/src/main/java/org/elasticsearch/common/recycler/AbstractRecyclerC.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
public abstract class AbstractRecyclerC<T> implements Recycler.C<T> {
2323

2424
@Override
25-
public abstract T newInstance(int sizing);
25+
public abstract T newInstance();
2626

2727
@Override
2828
public abstract void recycle(T value);

server/src/main/java/org/elasticsearch/common/recycler/ConcurrentDequeRecycler.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public class ConcurrentDequeRecycler<T> extends DequeRecycler<T> {
3333
final AtomicInteger size;
3434

3535
public ConcurrentDequeRecycler(C<T> c, int maxSize) {
36-
super(c, ConcurrentCollections.<T>newDeque(), maxSize);
36+
super(c, ConcurrentCollections.newDeque(), maxSize);
3737
this.size = new AtomicInteger();
3838
}
3939

@@ -45,8 +45,8 @@ public void close() {
4545
}
4646

4747
@Override
48-
public V<T> obtain(int sizing) {
49-
final V<T> v = super.obtain(sizing);
48+
public V<T> obtain() {
49+
final V<T> v = super.obtain();
5050
if (v.isRecycled()) {
5151
size.decrementAndGet();
5252
}

server/src/main/java/org/elasticsearch/common/recycler/DequeRecycler.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,10 @@ public void close() {
4747
}
4848

4949
@Override
50-
public V<T> obtain(int sizing) {
50+
public V<T> obtain() {
5151
final T v = deque.pollFirst();
5252
if (v == null) {
53-
return new DV(c.newInstance(sizing), false);
53+
return new DV(c.newInstance(), false);
5454
}
5555
return new DV(v, true);
5656
}

server/src/main/java/org/elasticsearch/common/recycler/FilterRecycler.java

-5
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,6 @@ protected Recycler.V<T> wrap(Recycler.V<T> delegate) {
2929
return delegate;
3030
}
3131

32-
@Override
33-
public Recycler.V<T> obtain(int sizing) {
34-
return wrap(getDelegate().obtain(sizing));
35-
}
36-
3732
@Override
3833
public Recycler.V<T> obtain() {
3934
return wrap(getDelegate().obtain());

server/src/main/java/org/elasticsearch/common/recycler/NoneRecycler.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ public NoneRecycler(C<T> c) {
2727
}
2828

2929
@Override
30-
public V<T> obtain(int sizing) {
31-
return new NV<>(c.newInstance(sizing));
30+
public V<T> obtain() {
31+
return new NV<>(c.newInstance());
3232
}
3333

3434
@Override

server/src/main/java/org/elasticsearch/common/recycler/Recycler.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ interface Factory<T> {
3434
interface C<T> {
3535

3636
/** Create a new empty instance of the given size. */
37-
T newInstance(int sizing);
37+
T newInstance();
3838

3939
/** Recycle the data. This operation is called when the data structure is released. */
4040
void recycle(T value);
@@ -57,5 +57,4 @@ interface V<T> extends Releasable {
5757

5858
V<T> obtain();
5959

60-
V<T> obtain(int sizing);
6160
}

server/src/main/java/org/elasticsearch/common/recycler/Recyclers.java

-7
Original file line numberDiff line numberDiff line change
@@ -72,13 +72,6 @@ protected Recycler<T> getDelegate() {
7272
return recycler;
7373
}
7474

75-
@Override
76-
public Recycler.V<T> obtain(int sizing) {
77-
synchronized (lock) {
78-
return super.obtain(sizing);
79-
}
80-
}
81-
8275
@Override
8376
public Recycler.V<T> obtain() {
8477
synchronized (lock) {

server/src/main/java/org/elasticsearch/common/util/PageCacheRecycler.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ public PageCacheRecycler(Settings settings) {
107107
final int maxBytePageCount = (int) (bytesWeight * maxPageCount / totalWeight);
108108
bytePage = build(type, maxBytePageCount, availableProcessors, new AbstractRecyclerC<byte[]>() {
109109
@Override
110-
public byte[] newInstance(int sizing) {
110+
public byte[] newInstance() {
111111
return new byte[BYTE_PAGE_SIZE];
112112
}
113113
@Override
@@ -119,7 +119,7 @@ public void recycle(byte[] value) {
119119
final int maxIntPageCount = (int) (intsWeight * maxPageCount / totalWeight);
120120
intPage = build(type, maxIntPageCount, availableProcessors, new AbstractRecyclerC<int[]>() {
121121
@Override
122-
public int[] newInstance(int sizing) {
122+
public int[] newInstance() {
123123
return new int[INT_PAGE_SIZE];
124124
}
125125
@Override
@@ -131,7 +131,7 @@ public void recycle(int[] value) {
131131
final int maxLongPageCount = (int) (longsWeight * maxPageCount / totalWeight);
132132
longPage = build(type, maxLongPageCount, availableProcessors, new AbstractRecyclerC<long[]>() {
133133
@Override
134-
public long[] newInstance(int sizing) {
134+
public long[] newInstance() {
135135
return new long[LONG_PAGE_SIZE];
136136
}
137137
@Override
@@ -143,7 +143,7 @@ public void recycle(long[] value) {
143143
final int maxObjectPageCount = (int) (objectsWeight * maxPageCount / totalWeight);
144144
objectPage = build(type, maxObjectPageCount, availableProcessors, new AbstractRecyclerC<Object[]>() {
145145
@Override
146-
public Object[] newInstance(int sizing) {
146+
public Object[] newInstance() {
147147
return new Object[OBJECT_PAGE_SIZE];
148148
}
149149
@Override

server/src/test/java/org/elasticsearch/common/recycler/AbstractRecyclerTestCase.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public abstract class AbstractRecyclerTestCase extends ESTestCase {
3636
protected static final Recycler.C<byte[]> RECYCLER_C = new AbstractRecyclerC<byte[]>() {
3737

3838
@Override
39-
public byte[] newInstance(int sizing) {
39+
public byte[] newInstance() {
4040
byte[] value = new byte[10];
4141
// "fresh" is intentionally not 0 to ensure we covered this code path
4242
Arrays.fill(value, FRESH);

0 commit comments

Comments
 (0)