Skip to content

Commit 08de29c

Browse files
author
Burak Serdar
committed
Make bulk test work
1 parent 06d10b7 commit 08de29c

File tree

4 files changed

+36
-25
lines changed

4 files changed

+36
-25
lines changed

crud/src/main/java/com/redhat/lightblue/mediator/Mediator.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -591,6 +591,7 @@ protected Callable<Response> getFutureRequest(final Request req) {
591591
return new Callable<Response>() {
592592
@Override
593593
public Response call() {
594+
LOGGER.debug("Starting a future {} request",req.getOperation());
594595
switch (req.getOperation()) {
595596
case FIND:
596597
return find((FindRequest) req);
@@ -643,6 +644,7 @@ public BulkResponse bulkRequest(BulkRequest requests) {
643644
}
644645
}
645646
} else {
647+
LOGGER.debug("Scheduling a future operation");
646648
// unordered - do them all in parallel
647649
ctx.futures[i] = executor.submit(getFutureRequest(req));
648650
}

crud/src/test/java/com/redhat/lightblue/mediator/AbstractMediatorTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ public void initMediator() throws Exception {
128128
Factory factory = new Factory();
129129
factory.addFieldConstraintValidators(new DefaultFieldConstraintValidators());
130130
factory.addEntityConstraintValidators(new EmptyEntityConstraintValidators());
131-
factory.setBulkParallelExecutions(100);
131+
factory.setBulkParallelExecutions(10);
132132
new UIDInterceptor().register(factory.getInterceptors());
133133
new GeneratedFieldInterceptor().register(factory.getInterceptors());
134134
factory.addCRUDController("mongo", mockCrudController);

crud/src/test/java/com/redhat/lightblue/mediator/BulkTest.java

Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,14 @@
2222
import java.util.concurrent.ExecutorService;
2323
import java.util.concurrent.Executors;
2424
import java.util.concurrent.Semaphore;
25+
import java.util.concurrent.atomic.AtomicInteger;
2526

2627
import org.junit.Assert;
2728
import org.junit.Before;
2829
import org.junit.Ignore;
2930
import org.junit.Test;
31+
import org.slf4j.Logger;
32+
import org.slf4j.LoggerFactory;
3033

3134
import com.fasterxml.jackson.databind.node.ObjectNode;
3235
import com.redhat.lightblue.EntityVersion;
@@ -42,6 +45,8 @@
4245

4346
public class BulkTest extends AbstractMediatorTest {
4447

48+
private static final Logger LOGGER = LoggerFactory.getLogger(BulkTest.class);
49+
4550
public interface FindCb {
4651
Response call(FindRequest req);
4752
}
@@ -139,41 +144,45 @@ public void bulkTest_fromJson() throws Exception {
139144

140145
BulkRequest breqParsed = BulkRequest.fromJson(breqJson);
141146

142-
System.out.println("asdf");
147+
LOGGER.debug("asdf");
143148
}
144149

145150
private class PFindCb implements FindCb {
146151
Semaphore sem = new Semaphore(0);
147-
int nested = 0;
152+
AtomicInteger nested = new AtomicInteger(0);
148153

149154
@Override
150-
public Response call(FindRequest req) {
151-
nested++;
155+
public Response call(FindRequest req) {
156+
nested.incrementAndGet();
152157
try {
158+
LOGGER.debug("find: nested:"+nested+" waiting");
153159
sem.acquire();
160+
LOGGER.debug("find: nested:"+nested+" acquired");
154161
return new Response();
155162
} catch (Exception e) {
156163
throw new RuntimeException(e);
157164
} finally {
158-
nested--;
165+
nested.decrementAndGet();
159166
}
160167
}
161168
}
162169

163170
private class PInsertCb implements InsertCb {
164171
Semaphore sem = new Semaphore(0);
165-
int nested = 0;
172+
AtomicInteger nested = new AtomicInteger(0);
166173

167174
@Override
168175
public Response call(InsertionRequest req) {
169-
nested++;
176+
nested.incrementAndGet();
170177
try {
178+
LOGGER.debug("insert: nested:"+nested+" waiting");
171179
sem.acquire();
180+
LOGGER.debug("insert: nested:"+nested+" acquired");
172181
return new Response();
173182
} catch (Exception e) {
174183
throw new RuntimeException(e);
175184
} finally {
176-
nested--;
185+
nested.decrementAndGet();
177186
}
178187
}
179188
}
@@ -221,26 +230,26 @@ public void parallelOrderedBulkTest() throws Exception {
221230
@Override
222231
public void run() {
223232
try {
224-
System.out.println("Check if all 3 finds are waiting");
225-
while (find.nested < 3) {
233+
LOGGER.debug("Check if all 3 finds are waiting");
234+
while (find.nested.get() < 3) {
226235
Thread.sleep(1);
227236
}
228-
System.out.println("Let the 3 find requests complete");
237+
LOGGER.debug("Let the 3 find requests complete");
229238
find.sem.release(3);
230-
System.out.println("Busy wait");
239+
LOGGER.debug("Busy wait");
231240
while (find.sem.availablePermits() > 0) {
232241
Thread.sleep(1);
233242
}
234-
System.out.println("Let insert complete");
243+
LOGGER.debug("Let insert complete");
235244
insert.sem.release(1);
236245
while (insert.sem.availablePermits() > 0) {
237246
Thread.sleep(1);
238247
}
239-
System.out.println("Check if all 2 finds are waiting");
240-
while (find.nested < 2) {
248+
LOGGER.debug("Check if all 2 finds are waiting");
249+
while (find.nested.get() < 2) {
241250
Thread.sleep(1);
242251
}
243-
System.out.println("Let the remaining 2 find requests complete");
252+
LOGGER.debug("Let the remaining 2 find requests complete");
244253
find.sem.release(2);
245254
while (find.sem.availablePermits() > 0) {
246255
Thread.sleep(1);
@@ -249,7 +258,7 @@ public void run() {
249258
while (insert.sem.availablePermits() > 0) {
250259
Thread.sleep(1);
251260
}
252-
System.out.println("Complete");
261+
LOGGER.debug("Complete");
253262
valid = true;
254263
} catch (Exception e) {
255264
throw new RuntimeException(e);
@@ -258,10 +267,10 @@ public void run() {
258267
};
259268
validator.start();
260269

261-
System.out.println("Ordered exec");
270+
LOGGER.debug("Ordered exec");
262271
BulkResponse bresp = mediator.bulkRequest(breq);
263272
validator.join();
264-
System.out.println("Ordered exec done");
273+
LOGGER.debug("Ordered exec done");
265274

266275
Assert.assertTrue(validator.valid);
267276
}
@@ -299,7 +308,7 @@ public void parallelUnorderedBulkTest() throws Exception {
299308
public void run() {
300309
try {
301310
// Wait until all 7 calls started
302-
while (find.nested + insert.nested < 7) {
311+
while (find.nested.get() + insert.nested.get() < 7) {
303312
Thread.sleep(1);
304313
}
305314

@@ -308,7 +317,7 @@ public void run() {
308317
insert.sem.release(2);
309318

310319
// Wait until they're all completed
311-
while(find.nested > 0 && insert.nested > 0) {
320+
while(find.nested.get() > 0 && insert.nested.get() > 0) {
312321
Thread.sleep(1);
313322
}
314323

@@ -319,10 +328,10 @@ public void run() {
319328
}
320329
};
321330
validator.start();
322-
System.out.println("Unordered exec");
331+
LOGGER.debug("Unordered exec");
323332
mediator.bulkRequest(breq);
324333
validator.join();
325-
System.out.println("Unordered exec done");
334+
LOGGER.debug("Unordered exec done");
326335

327336
Assert.assertTrue(validator.valid);
328337
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
org.slf4j.simpleLogger.defaultLogLevel=ERROR
1+
org.slf4j.simpleLogger.defaultLogLevel=WARN
22
org.slf4j.simpleLogger.log.com.redhat.lightblue=WARN
33
org.slf4j.simpleLogger.log.com.redhat.lightblue.util.Error=ERROR

0 commit comments

Comments
 (0)