사실 이 글은 2-3년 전쯤 작성 했던 글이다.
이때에 비해서 swift는 zone보다 많은 replica 기능이라던지, tree형 구조로 계층을 둔다던지, region 과 같은 상위 단계가 생겼다던지, replica외 erasure code와 같은 저장방법과 같은 여러 가지 개념과 코드가 추가되었다. 하지만 이글은 swift의 철학을 이해하는데 도움이 될것이라고 생각한다.
swift는 기본적으로 웹 서버들로 구성되어 있다.
swift 를 이해하기 위해서는 데이터 분배가 어떻게 이루어 지는지를 알아야 한다.
그렇기 위해서는 ring을 이해할 필요가 있다. 앞으로 이 포스트에 링크로 ring 에 대한 guide를 연재한다.
1 - ring 이란
2 - swift는 어떻게 안전하게 데이터를 보관하는가?
3 - swift는 어떻게 확장하는가?
이때에 비해서 swift는 zone보다 많은 replica 기능이라던지, tree형 구조로 계층을 둔다던지, region 과 같은 상위 단계가 생겼다던지, replica외 erasure code와 같은 저장방법과 같은 여러 가지 개념과 코드가 추가되었다. 하지만 이글은 swift의 철학을 이해하는데 도움이 될것이라고 생각한다.
swift는 기본적으로 웹 서버들로 구성되어 있다.
- proxy server - 사용자의 리퀘스트(REST)을 받아서 알맞은 서버로 배분해 주기 위한 서버
- account 관련 리퀘스트 이면 ring에서 알맞은 account 서버들(replica 개수 만큼)을 찾아서 리퀘스트를 전달
- container 관련 리퀘스트 이면 ring에서 알맞은 container 서버들(replica 개수 만큼)을 찾아서 리퀘스트를 전달
- object 관련 리퀘스트 이면 ring에서 알맞은 object 서버들(replica 개수 만큼)을 찾아서 리퀘스트를 전달
- account server - proxy 로 부터 전달 받은 리퀘스트(REST)를 처리해서 account 당 한개의 db 파일에 맞게 리퀘스트를 처리함
- container server - proxy 로 부터 전달 받은 리퀘스트(REST)를 처리해서 container 당 한개의 db 파일에 맞게 리퀘스트를 처리함
- object server - proxy 로 부터 전달 받은 리퀘스트(REST)를 처리해서 object 당 한개의 오브젝트 파일을 생성 결국 ring에서 알맞은 서버들을 찾음으로 데이터를 분산해서 저장한다.
swift 를 이해하기 위해서는 데이터 분배가 어떻게 이루어 지는지를 알아야 한다.
그렇기 위해서는 ring을 이해할 필요가 있다. 앞으로 이 포스트에 링크로 ring 에 대한 guide를 연재한다.
2 - swift는 어떻게 안전하게 데이터를 보관하는가?
3 - swift는 어떻게 확장하는가?
댓글 없음:
댓글 쓰기