inflearn logo
강의

Course

Instructor

[C# and Unity MMORPG Game Development Series] Part 9: MMO Content Implementation (DB Integration + Large-scale Architecture + Live Preparation)

HP Linkage #2

이해한 것이 맞나 궁금합니다.

285

bae5445

15 asked

0

플레이어가 disconnected될 때 게임룸에서 Push를 하여 LeaveGame을 예약을 했었는데요.

 

현재 JobSerializer를 상속하는게 DbTransaction과 GameRoom 두 개가 있는데 쉽게 두 개의 쓰레드가 있다고 생각하면 되는지 모르겠습니다.

 

하나의 게임룸에서 일감이

- 플레이어A의 LeaveGame

- 플레이어B의 전투

- 플레이어C의 전투

...

이렇게 쌓여있을 때 플레이어A가 나갔을 때 현재 상태를 DB에 저장한다고 하면 I/O를 처리하는데 시간을 많이 잡아먹으면 플레이어B와 C의 전투 처리 코드가 지연이 되기 때문에, DbTransaction 쓰레드로 DB 일감을 Push하여 거의 같은 시각에 봤을 때 플레이어B의 전투와 플레이어A의 DB 갱신 로직이 처리될 수 있다고 이해했는데 이렇게 생각하면 될까요?

 

세 지점에 브레이크 포인트를 찍어서 쓰레드를 관찰해봤는데 위에서 차례대로 24132 -> 주쓰레드 -> 9440 이렇게 변화가 있었는데요. 전부 Push로 예약을 하는 입장에서 왜 DbTransaction에 Push한 일감만 주쓰레드에서 처리하는지도 궁금합니다.

MMORPG

Answer 1

0

Rookiss

이렇게 쌓여있을 때 플레이어A가 나갔을 때 현재 상태를 DB에 저장한다고 하면 I/O를 처리하는데 시간을 많이 잡아먹으면 플레이어B와 C의 전투 처리 코드가 지연이 되기 때문에, DbTransaction 쓰레드로 DB 일감을 Push하여 거의 같은 시각에 봤을 때 플레이어B의 전투와 플레이어A의 DB 갱신 로직이 처리될 수 있다고 이해했는데 이렇게 생각하면 될까요?

네 맞습니다!

세 지점에 브레이크 포인트를 찍어서 쓰레드를 관찰해봤는데 위에서 차례대로 24132 -> 주쓰레드 -> 9440 이렇게 변화가 있었는데요. 전부 Push로 예약을 하는 입장에서 왜 DbTransaction에 Push한 일감만 주쓰레드에서 처리하는지도 궁금합니다.

꼭 주 스레드에서 처리할 필요는 없구요.
새로운 쓰레드를 만들어서 DB 업무를 맡겨도 동일합니다.
단순히 주 스레드가 딱히 할 일이 없으니 그거라도 시킨(?) 것이죠.

마우스 이벤트 처리방법(오브젝트간 인터렉션)

0

621

1

RecvArgs_Completed에서 lock을 안하는 이유

0

516

1

Entity framework 질문드립니다.

0

574

2

json 직렬화

1

287

1

mmo 와 pvp

0

533

2

github로 프로젝트를 push, pull할 때 질문

1

529

1

Iocp 서버 관련 질문드립니다.

0

327

1

서버 관련 질문

0

395

1

DB 처리관련 질문이 있습니다

0

301

1

안녕하세요. 질문드립니다.

1

1507

2

마이그레이션 파일이 이상합니다.

0

281

1

강의 마지막으로 질문 드립니다.

0

678

2

ItemDbId,구조 설계

0

264

1

MMO 서버 관리 질문 드립니다!

0

321

1

디비 정보 나누기

0

239

1

AccountDb 업데이트

0

306

1

콘솔창이 아니라 브라우저에서 실행

0

280

2

메모리 누수문제.

0

495

1

유니티에서 클라이언트 빌드후 실행하면 맵 로드가 안됩니다.

0

362

1

외부 네트워크에서도 접속해서 게임하기

1

338

1

유니티클라에서 패킷을 계속 보내지 않고 lockstep이나 추측항법으로 동기화를 할 수 있을까요?

0

596

1

서버 메모리와 DB 저장 관련 질문

0

368

1

JsonUtility.FromJson 관해서 질문있습니다.

0

276

1

DB 쓰레드 질문입니다

0

267

1