inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

HP 연동 #2

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

291

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

630

1

RecvArgs_Completed에서 lock을 안하는 이유

0

520

1

Entity framework 질문드립니다.

0

581

2

json 직렬화

1

292

1

mmo 와 pvp

0

544

2

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

1

535

1

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

0

335

1

서버 관련 질문

0

402

1

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

0

306

1

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

1

1515

2

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

0

286

1

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

0

686

2

ItemDbId,구조 설계

0

270

1

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

0

327

1

디비 정보 나누기

0

243

1

AccountDb 업데이트

0

310

1

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

0

285

2

메모리 누수문제.

0

499

1

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

0

368

1

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

1

342

1

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

0

607

1

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

0

373

1

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

0

280

1

DB 쓰레드 질문입니다

0

274

1