본문 바로가기

epoll

EPOLL (EPOLLIN | EPOLLOUT | EPOLLET |EPOLLONESHOT) 고성능 소켓서버 실무 서버구현 저번에 예고한(?) 대로 대충,EPOLL로 윈도우즈의 IOCP 와 거의 비슷한 구조로 이벤트 기반 소켓을 구현하였으며, 여기에 DB POOL,또 클라이언트 요청업무(비즈니스로직)를 담당할 Worker Thread Pool,패킷 구분을 위한 Tokenizer,MYSQL을 이용하기 위한 인터페이스 Class 인 MySQLDB(윈도우즈에서 메신저 서버에서 사용하던 것을 뮤텍스 추가하여 코드 재활용),트레이스 로그,conf 환경설정 읽기,EPOLL은 IN,OUT(Incomming,Outgoing) 데이타를 모두 이벤트로 처리하였으며, Outgoing시에는 단일버퍼 큐에 모두 쌓아놓고 무조건 꺼내서 읽는것이 아니라,패킷 구조상 끊어서 보내야 하기 때문에, 좀더 구조적으로 하기위해 PostSend()에서 .. 더보기
고성능 네트워크 서버모델 서버엔진 개발기술.. 최근 근황, 자체 서비스 목적용으로, DuruBada (가칭) 서버,DuruBada ActiveX(추후 다른 기술로 대체),DuruBada Up/Down Controller Program 등등...웹하드 서버를 리눅스 에서 개발해야 한다. 전에 MS윈도우즈 플랫폼에서 메신저 만들던것은 MYSQL + 서버엔진은 IOCP + Thread Pool + DBPool 기술로 구현했었는데, (쓰레드간 임계영역 동기화는 CriticalSection으로 구현함) 전에 UNIX 기반에서 공공기관에 개발해 납품했던 ocsmgr 메니저 서버는 동접이 약 1000명에 업무별 쓰레드 3-4개에서 poll 방식으로 구현 했던것이었고 금결원과 1대1 커넥션 서비스 납품했던 appc 데몬 서버도 역시 업무별 쓰레드 3~4개 로 ac.. 더보기