Ticket #1071 (assigned enhancement)

Opened 5 months ago

Last modified 5 months ago

세션 테이블에서 memcached 지원

Reported by: inureyes Owned by: inureyes
Priority: major Milestone: 1.8
Component: Components Version: 1.8
Keywords: memcached Cc:
Release:

Description

개요

  • 세션 테이블에 memcached 를 지원하도록 합니다.
  • 나중에 봐서 memcached의 범위를 확 늘릴 예정입니다.
  • daybreaker님의 프레임웍 일정에 따라 그 프레임웍을 사용합니다.

Change History

  Changed 5 months ago by inureyes

[6541]

refs #1071

  • memcached를 지원하는 세션 컴포넌트 추가

  Changed 5 months ago by inureyes

[6542]

refs #1071

  • 써먹을 수 있도록 붙여봅니다.
  • config.php에 $servicememcached? = true; 추가하면 돌아갑니다.
  • 기타 옵션으로 $memcachedserver?, $memcachedport? 가 있습니다.
    • 이후 $memcachedserver?는 복수개의 입력을 array로 받도록 할 예정입니다.

  Changed 5 months ago by inureyes

[6543]

refs #1071

  • 환경설정변수를 못 불러온 버그 수정

  Changed 5 months ago by inureyes

[6544]

refs #1071

  • 세션을 시작할 때 세션 클래스가 미리 지정되지 않을 수 있는 버그 수정

  Changed 5 months ago by inureyes

[6545]

refs #1071

  • memcached 사용 여부를 선택할 수 있도록 함.

  Changed 5 months ago by inureyes

  • status changed from new to assigned

  Changed 5 months ago by inureyes

[6547]

refs #1071

  • queryCache에서 memcached를 사용할 수 있도록 함.
  • pageCache에 도입해 볼까 말까;

  Changed 5 months ago by inureyes

[6548]

refs #1071

  • syntax error 교정

  Changed 5 months ago by inureyes

[6549]

refs #1071

  • memcache를 전체적으로 간단하게 하기 위해 gloabl $memcache를 핸들러로 씁니다.
  • 관련하여 독립적으로 구현했던 부분들을 전부 통합
  • initialize 시점에서 memcache 사용가능한 경우 $memcache를 초기화 합니다. 이 변수가 null이면 memcached를 사용 못하는 경우입니다.

follow-up: ↓ 11   Changed 5 months ago by inureyes

[6550]

refs #1071

  • 체크업시 Memcached를 flushing하도록 함.
  • 세션 쓰기 과정에서 객체가 유실되는 문제. (어느 시점에서 unset되는지 찾아야 한다)

in reply to: ↑ 10   Changed 5 months ago by inureyes

Replying to inureyes:

[6550] refs #1071 * 체크업시 Memcached를 flushing하도록 함. * 세션 쓰기 과정에서 객체가 유실되는 문제. (어느 시점에서 unset되는지 찾아야 한다)

혹시 얘 왜 이런지 짐작가시는 분 있나요? global $memcache 객체가 session write할 때 null값입니다. 자동으로 unset해준다고 보기에는 Session::write 안에서 $service나 $database등의 전역변수를 보면 값이 또 보입니다.

  Changed 5 months ago by inureyes

[6551]

refs #1071

  • global 변수들의 선언 위치를 config.php로 고정합니다.

  Changed 5 months ago by inureyes

[6554]

refs #1071

  • PHP 5.0.5 이상에서는 object 다 날린 다음에 세션 닫습니다. 그래서 오브젝트를 세션 오브젝트 안에 복사해 놓습니다. 세션 오브젝트는 안 날라갑니다. (세션 닫아야 되니까!)
  • 이런게 가능할 때 보면 PHP가 참으로 변태스럽습니다.

  Changed 5 months ago by inureyes

[6575]

refs #1071

  • queryCache에서 memcached 사용하는 부분을 잠시 끕니다.
  • flushing이 없기 때문임.
Note: See TracTickets for help on using tickets.