inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)

HP 연동 #2

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

295

bae5445

작성한 질문수 15

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

답변 1

0

Rookiss

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

네 맞습니다!

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

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

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

0

638

1

RecvArgs_Completed에서 lock을 안하는 이유

0

525

1

Entity framework 질문드립니다.

0

594

2

json 직렬화

1

298

1

mmo 와 pvp

0

554

2

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

1

542

1

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

0

337

1

서버 관련 질문

0

405

1

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

0

313

1

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

1

1520

2

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

0

288

1

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

0

693

2

ItemDbId,구조 설계

0

276

1

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

0

334

1

디비 정보 나누기

0

252

1

AccountDb 업데이트

0

314

1

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

0

287

2

메모리 누수문제.

0

502

1

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

0

371

1

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

1

346

1

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

0

610

1

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

0

377

1

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

0

283

1

DB 쓰레드 질문입니다

0

279

1