Discussion API Performance (latest Feb 2016)

Discussion API Performance (latest Feb 2016)

With the new requirements in Discussion APIs; we have introduced an attribute "child_count" in all Response/Comment endpoints. The platform APIs call forum APIs; hence a corresponding change is made in Forum application too. We have opted to cache comment's child_count as part of DB object. In order to keep child_count field value in sync with the actual number of comment children, we have re-evaluated its value on comment get, create and delete end points; however, comment list endpoint returns cached value to keep good performance stats (except for any existing data for which we re-evaluate child_count and cache it then).

We have gathered and compared two sets of load test results. The former results (i.e. With Child Comment Count) are run on the latest changes and the later are run when we had no "child_count" in question.

New Relic Dashboard: https://rpm.newrelic.com/accounts/88178/custom_dashboards/pages/9377

 

With Child Comment Count

Without Child Comment Count

No. of clients = 48

req/s = 3.80

Methods

median response time

95%

99%

DELETE_comment

270

410

2500

DELETE_thread

190

240

260

GET_comment_list

160

270

340

GET_thread

230

370

470

GET_thread_list

440

740

840

PATCH_comment

310

450

2500

PATCH_thread

210

350

420

POST_comment_comment

420

580

2800

POST_comment_response

360

530

2800

POST_thread

260

390

440

auto_auth

210

230

230

No. of clients = 48

req/s = 3.70

Methods

median response time

95%

99%

DELETE_comment

270

1600

1700

DELETE_thread

190

280

330

GET_comment_list

160

260

300

GET_thread

230

300

420

GET_thread_list

400

690

770

PATCH_comment

350

860

1900

PATCH_thread

210

310

440

POST_comment_comment

400

540

1800

POST_comment_response

370

580

1900

POST_thread

260

390

430

auto_auth

200

200

200

 

No. of clients = 68

req/s = 5.30

Methods

median response time

95%

99%

DELETE_comment

270

3000

3200

DELETE_thread

180

240

260

GET_comment_list

160

270

320

GET_thread

230

300

370

GET_thread_list

450

760

820

PATCH_comment

300

470

3200

PATCH_thread

200

330

420

POST_comment_comment

410

530

3400

POST_comment_response

360

530

3400

POST_thread

260

400

460

auto_auth

210

210

210

 

No. of clients = 68

req/s = 5.60

Methods

median response time

95%

99%

DELETE_comment

270

1700

1800

DELETE_thread

190

240

260

GET_comment_list

160

260

350

GET_thread

230

300

390

GET_thread_list

400

710

780

PATCH_comment

310

510

1800

PATCH_thread

210

300

440

POST_comment_comment

410

1800

1900

POST_comment_response

370

530

1900

POST_thread

260

390

440

auto_auth

280

310

310

 

No. of clients = 96

req/s = 7.70

Methods

median response time

95%

99%

DELETE_comment

280

970

2800

DELETE_thread

190

240

370

GET_comment_list

160

270

350

GET_thread

230

310

390

GET_thread_list

450

760

830

PATCH_comment

330

1500

2900

PATCH_thread

210

330

450

POST_comment_comment

420

570

3000

POST_comment_response

370

600

2900

POST_thread

260

360

450

auto_auth

210

210

210

 

No. of clients = 96

req/s = 7.30

Methods

median response time

95%

99%

DELETE_comment

270

360

1800

DELETE_thread

190

240

300

GET_comment_list

160

260

360

GET_thread

240

300

400

GET_thread_list

410

720

790

PATCH_comment

310

440

1800

PATCH_thread

210

300

420

POST_comment_comment

410

480

1900

POST_comment_response

370

510

1900

POST_thread

260

330

420

auto_auth

210

220

220

 

No. of clients = 144

req/s = 10.90

Methods

median response time

95%

99%

DELETE_comment

280

3100

3300

DELETE_thread

190

250

570

GET_comment_list

160

290

370

GET_thread

240

340

450

GET_thread_list

490

820

940

PATCH_comment

320

550

3300

PATCH_thread

210

310

420

POST_comment_comment

420

780

3700

POST_comment_response

370

580

3500

POST_thread

260

380

460

auto_auth

1300

1400

1400

 

No. of clients = 144

req/s = 11.20

Methods

median response time

95%

99%

DELETE_comment

280

1600

2100

DELETE_thread

190

260

340

GET_comment_list

160

270

360

GET_thread

240

330

460

GET_thread_list

420

740

810

PATCH_comment

330

1800

2100

PATCH_thread

210

330

450

POST_comment_comment

420

710

2200

POST_comment_response

380

1200

2100

POST_thread

260

410

450

auto_auth

210

220

220

 

No. of clients = 192

req/s = 14.40

Methods

median response time

95%

99%

DELETE_comment

290

410

3600

DELETE_thread

200

260

340

GET_comment_list

170

290

390

GET_thread

250

370

490

GET_thread_list

500

840

1000

PATCH_comment

330

510

3100

PATCH_thread

220

350

440

POST_comment_comment

430

2900

3700

POST_comment_response

380

620

3500

POST_thread

270

370

440

auto_auth

260

260

260

 

No. of clients = 192

req/s = 16.60

Methods

median response time

95%

99%

DELETE_comment

280

590

2200

DELETE_thread

190

260

320

GET_comment_list

170

280

370

GET_thread

250

360

500

GET_thread_list

440

760

850

PATCH_comment

320

530

2300

PATCH_thread

210

310

450

POST_comment_comment

430

680

2500

POST_comment_response

380

560

2300

POST_thread

270

400

450

auto_auth

190

230

230

 

No. of clients = 240

req/s = 17.90

Methods

median response time

95%

99%

DELETE_comment

290

560

4300

DELETE_thread

190

300

530

GET_comment_list

170

350

510

GET_thread

260

450

710

GET_thread_list

630

1200

1800

PATCH_comment

340

700

3700

PATCH_thread

220

350

470

POST_comment_comment

450

1600

4400

POST_comment_response

390

680

4500

POST_thread

270

400

490

auto_auth

230

230

230

 

No. of clients = 240

req/s = 19.50

Methods

median response time

95%

99%

DELETE_comment

300

2100

2800

DELETE_thread

200

280

340

GET_comment_list

170

300

410

GET_thread

260

420

590

GET_thread_list

480

810

970

PATCH_comment

340

710

2600

PATCH_thread

220

340

500

POST_comment_comment

450

2200

2700

POST_comment_response

390

820

2700

POST_thread

270

410

490

auto_auth

200

220

220

 

No. of clients = 288

req/s = 22.80

Methods

median response time

95%

99%

DELETE_comment

310

810

3700

DELETE_thread

200

290

450

GET_comment_list

180

340

450

GET_thread

280

470

640

GET_thread_list

660

1200

1500

PATCH_comment

350

630

3800

PATCH_thread

220

340

450

POST_comment_comment

460

850

3900

POST_comment_response

400

650

3900

POST_thread

270

410

490

auto_auth

220

250

250

 

No. of clients = 288

req/s = 22.40

Methods

median response time

95%

99%

DELETE_comment

300

2100

2800

DELETE_thread

200

280

520

GET_comment_list

180

320

450

GET_thread

270

450

640

GET_thread_list

530

910

1200

PATCH_comment

350

540

2500

PATCH_thread

230

350

460

POST_comment_comment

460

2200

2800

POST_comment_response

410

670

2800

POST_thread

280

420

480

auto_auth

200

220

220

 

No. of clients = 336

req/s = 27.70

Methods

median response time

95%

99%

DELETE_comment

320

2800

4800

DELETE_thread

210

300

490

GET_comment_list

190

410

600

GET_thread

300

590

880

GET_thread_list

860

2100

3700

PATCH_comment

360

900

4600

PATCH_thread

240

390

490

POST_comment_comment

490

850

4500

OST_comment_response

420

930

4700

POST_thread

280

430

590

auto_auth

250

280

280

 

No. of clients = 336

req/s = 26.30

Methods

median response time

95%

99%

DELETE_comment

310

2300

3400

DELETE_thread

210

290

420

GET_comment_list

190

360

510

GET_thread

290

550

810

GET_thread_list

600

1100

1400

PATCH_comment

360

1100

3200

PATCH_thread

240

400

560

POST_comment_comment

470

1500

4000

OST_comment_response

420

750

3800

POST_thread

280

420

510

auto_auth

210

240

240

 

No. of clients = 384

req/s = 16.30 (reached server capacity)

Methods

median response time

95%

99%

DELETE_comment

6000

13000

15000

DELETE_thread

4600

10000

14000

GET_comment_list

3200

8700

11000

GET_thread

3400

8800

12000

GET_thread_list

7100

12000

14000

PATCH_comment

4300

11000

15000

PATCH_thread

3700

10000

13000

POST_comment_comment

5600

13000

19000

POST_comment_response

5400

12000

15000

POST_thread

3400

8800

12000

auto_auth

2600

3500

3500

 

No. of clients = 384

req/s = 31.70

Methods

median response time

95%

99%

DELETE_comment

340

1100

4500

DELETE_thread

210

350

680

GET_comment_list

200

430

670

GET_thread

330

740

1100

GET_thread_list

770

1800

2700

PATCH_comment

380

860

4200

PATCH_thread

250

400

570

POST_comment_comment

500

1300

4600

POST_comment_response

440

910

4100

POST_thread

290

450

640

auto_auth

210

230

230

 

No. of clients = 480

req/s = 5.00 (reached server capacity)

Methods

median response time

95%

99%

DELETE_comment

12000

26000

40000

DELETE_thread

10000

26000

42000

GET_comment_list

8400

22000

30000

GET_thread

9400

23000

33000

GET_thread_list

12000

23000

30000

PATCH_comment

11000

25000

32000

PATCH_thread

10000

23000

30000

POST_comment_comment

12000

24000

30000

POST_comment_response

11000

25000

32000

POST_thread

9000

21000

30000

auto_auth

4400

8100

8200

 

No. of clients = 480

req/s = 20.40 (reached server capacity)

Methods

median response time

95%

99%

DELETE_comment

5900

12000

15000

DELETE_thread

5400

10000

13000

GET_comment_list

4600

9700

12000

GET_thread

5000

9900

14000

GET_thread_list

8600

13000

15000

PATCH_comment

5800

12000

14000

PATCH_thread

5100

10000

13000

POST_comment_comment

6200

12000

15000

POST_comment_response

5700

11000

14000

POST_thread

4700

9300

12000

auto_auth

3300

5400

5500

 

Comments