Task cancel이 계속 발생하는데 왜 그런 것인가요?

31 views
Skip to first unread message

Byungnam Lim

unread,
Jul 31, 2016, 9:36:50 PM7/31/16
to Apache Tajo 한국 사용자 그룹
안녕하세요.

Default task scheduler의 스케줄링 과정 중에 질문이 있습니다.

스케줄링 중에 Task assign 하고 나서 그 다음에 getCancellationTaskCount를 통해 cancel 과정을 수행하게 되어있는데, 저는 이 부분이 거의 안쓰이거나 나중에 아주 소량만 쓰일 것으로 예상했습니다. 

헌데 로그를 찍어보니 총 593개의 태스크중 최소 30개, 최대 70개의 태스크가 캔슬되는것이 발견되었습니다. 또한 로그를 통해 쿼리 실행 처음부터 3개의 태스크 캔슬이 반복해서 일어나고 있는 것을 확인하였습니다.

아래는 로그중 일부입니다.


2016-07-29 19:43:11,132 INFO  querymaster.DefaultTaskScheduler (DefaultTaskScheduler.java:assignToLeafTasks(923)) - Assigned Local/Rack/Total: (232/8/240), Attempted Cancel/Assign/Total: (12/240/252), Locality: 96.67%, Rack host: h16
...(중략)
2016-07-29 19:43:14,104 INFO  querymaster.DefaultTaskScheduler (DefaultTaskScheduler.java:assignToLeafTasks(923)) - Assigned Local/Rack/Total: (570/23/593), Attempted Cancel/Assign/Total: (34/593/627), Locality: 96.12%, Rack host: h17


...
2016-07-29 19:43:13,535 INFO  querymaster.DefaultTaskScheduler (DefaultTaskScheduler.java:cancel(608)) - CANCEL h5 ta_1469788961378_0001_000001_000550_00
2016-07-29 19:43:13,535 INFO  querymaster.DefaultTaskScheduler (DefaultTaskScheduler.java:cancel(608)) - CANCEL h32 ta_1469788961378_0001_000001_000550_00
2016-07-29 19:43:13,535 INFO  querymaster.DefaultTaskScheduler (DefaultTaskScheduler.java:cancel(608)) - CANCEL h27 ta_1469788961378_0001_000001_000550_00
...


수행한 쿼리는 

select count(*) from lineitem100G;

입니다.


캔슬되는 태스크가 어째서 발생하는 것인지 잘 모르겠습니다. 왜 그런것인지 설명해 주신다면 감사하겠습니다.

임병남 드림.

Jinho Kim

unread,
Jul 31, 2016, 10:10:38 PM7/31/16
to Byungnam Lim, Apache Tajo 한국 사용자 그룹
안녕하세요. 

cancel 은 스케줄링 과정중 리소스가 실제 worker 의 리소스와 다를때 발생합니다.
master 에서는 비동기로 취합되기 때문에 각 worker 와 실시간으로 같지 않습니다.
0.12.0 을 빌드해서 사용하신다면 disk 리소스도 스케줄링 동안 계산되어 cancel 이 발생하게됩니다.
기존에는 리소스 설정으로 할당하지 못하게 하였으나 불편함이 많아 local task 는 실행중에
계산하여 cancel 하게됩니다.

김진호 드림

— Jinho
Best regards

2016년 8월 1일 오전 10:36, Byungnam Lim <lbn...@gmail.com>님이 작성:
Reply all
Reply to author
Forward
0 new messages