캐싱 메커니즘 드루팔 호스팅
오후 10시 5분 2 월 (21) 2009 joshk에 의해 게시 됨
큰 드루팔 영광을 위해 나의 끝없는 탐구, 나는 확장 성 사이트 성능과 주소 문제를 개선 할 수있는 다양한 방법에 최대 지간 성교 지난 해 지출했습니다. 오늘, 아마존 EC2 인스턴스와 일부 noodling을하고 (그리고 잠재적 마스터 데이터베이스 서버로서의 기본 성능에 대해 모호하게 남아있는) 내가 생각을했다 :
무엇 개별 드루팔 부트 스트랩을 넘어 node_load ()에서 정적 노드의 캐시를 확장하는 데 걸리는?
다른 단지에 대한 사람들처럼, 나는 많은 memcached와 속도 사이트 성능이 향상 방법 사랑 했어요. 그것은 단순히 바위, 모두가 서버 부하 및 속도 페이지 응답이 그것으로보고해야한다을 줄이기 위해 찾고. 그것에 대해 더 나은 것들 중 하나는 저장뿐만 아니라 당신이 번개 빠른 메모리 클라우드에서 PHP의 풀 무언가를시키는하는 의미 기본적으로 데이터 객체를 반환 할 수 있다는 것입니다, 당신은 또한 (를 unserialize해야하는 CPU의 오버 헤드가 발생하지 않습니다 객체 또는 배열) 캐릭터.
이건 내 생각에 저를 보자. 당신이 대규모로 확장 대화 형 드루팔 사이트를 원한다면, 당신은 노드의 톤을 준비 액세스 할 수 있어야합니다. 필연적으로 당신은 당신의 데이터베이스에서 이들에 대한 로그인 한 요청과 벽에 타격을 줄 것으로 예상된다. 그러나 우리는 우리가 node_load ()의 정적 캐시에서 얻는 성능 향상을, 그것이 전체 사이트에 걸쳐 지속적으로 작동하기보다는 하나의 pageload에 대한 만들 수 있었는지 있다면?
이 고성능 드루팔 아키텍처에 대한 매력적인 로드맵 제시 : 영구 데이터 저장소로 데이터베이스를 사용하여 고성능 검색 주위에 최적화 된 테이블을 / 데이비드 스트라우스의 우수한 DNA 모듈에 설명 된 방법을 사용하여 정렬 및의 memcached를 기반 클라우드를 유지 그 위에 노드 객체를 완벽하게 만들었습니다.
여기에 코드를 요약하는 것은 매우 간단하다. 낮은 무게 모듈은 삽입 및 업데이트에 대한 노드의 캐시를 삭제하고, 부하에 충전 처리 할 수 hook_nodeapi ()를 구현합니다. 그런 다음 확인 할 기본 node_load () 주위에 간단한 래퍼 캐시 먼저 데이터베이스에 가기 전에 말했다.
완벽한 세계에서, 이것은 핵심에 구운 것, 그리고 그런 일이 7.x에서 할 수 있습니다 그러나 경험 드루팔 개발자를 위해 필요한 패치하는 종류 5.x의 아래 / memcache에 승 관련된 직렬화 차이점보다 더 간단 할 것 6.x의에서이를 구현하기 그것은 문자 그대로 node_load의 정적 검사 후 몇 라인 수 ().
이러한 프로젝트가 등장해야하고 성숙, 모든 핵심 드루팔 요소에 대한 전체 객체 캐시로 발전 할 수있다 (예를 들어, 사용자, 분류 조건, 등). 제 (응용 프로그램 분할 / 샤딩을위한 토대를 낳는) 새로운 스키마 architeture 및 테스트 프레임 워크와 함께, 고성능 객체 캐시는 폭풍에 의해 기업을 위해 드루팔 7 위치한다.
오후 10시 56분 2 월 (21) 2009 robertDouglass에 의해 게시 됨
당신은 advcache 모듈에서 패치를 수행 노드 캐시의 유형에 대해 말을하는거야? 아니면 다른 뭔가? 분류 용어 / 어휘, 의견, 그리고 몇 가지 다른 일들도 advcache으로 캐시됩니다. 마이크 오코너는 단지뿐만 아니라 D6에 포트 그것에 패치를 기록했다. 캐시됩니다 물건의 모든 표준 캐시 API를 사용하므로 모든 직선 memcache에로 (중 하나 memcache에 모듈 또는 cacherouter로) 갈 수 있습니다.
오후 11시 53분 2 월 (21) 2009 joshk에 의해 게시 됨
예! 글쎄, 나는이 작품이 사회에서 이미 진행되고 놀라운 일이 아닙니다 같아요. )
그래서 오히려 여기에 내 자신의 모듈에 시간을 낭비하는 것보다, 나는 advcache의 D6 버전 작업을 시작합니다. 패치를 기대합니다.
그건 그렇고, 내가 늦게 파티에 분명 해요하지만, 난 정말 개념 이런 종류의 사람들의 아이디어 / 답변을 듣고 싶습니다. 나는 최근에 몇 가지 프로젝트로도 러블 / 안전하게 비동기 데이터 처리에 대한 프레젠테이션을 준비하여이 방향으로 촉발했습니다.
이 주제에 거기 더 모범 사례를 얻는 것은 확실 해요 전체 커뮤니티에 도움이됩니다.
오전 9시 49분 년 2 월 (22) 2009 robertDouglass에 의해 게시 됨
마이크 오코너의 D6 포트에 현재 패치는 D5에 신원 조회의 일부 상당량 있었다. 지금은 D7에 들어갈에 대한 옹호 시작하는 시간이 될 것입니다. 그것은 한 번에 하나씩 제안, 그리고 핵심 개발, 플러스 벤치마킹의 모든 인내심을 필요로한다. 어쩌면 당신의 단계와 챔피언에게 D7의 포함에 대한 패치를 도울 수 있는가?
오전 9시 51분 년 2 월 (22) 2009 robertDouglass에 의해 게시 됨
하지만 일을 캐싱하는 노력을합니다. 당신은 두 가지 입증 할 수 있어야합니다 : 그것은 빠른 1) 있음을, 그리고 2) 부실 또는 깨진 객체를 제공하여 치신하지 않습니다. 따라서, 핵심 코딩을위한 주어진 오늘날의 기준은, 어떤 핵심 캐싱 패치는 단위 테스트와 벤치 마크와 함께해야합니다.