-
Notifications
You must be signed in to change notification settings - Fork 19
[python] memory mapped dictionary shared by multi process
Myungchul Shin edited this page Jul 22, 2016
·
6 revisions
- 아쉽게도 mmap으로 구현된 만족스러운 python dictionary는 찾기 힘들다.
- 이런 도구가 있으면 도움이 되는 것
- 예를 들어, 아주 큰 파일을 쪼개서 분산처리하려고 한다.
- 그런데 개별 파일들은 어떤 dictionary를 가지고 적절한 연산을 해야한다.
- 적절한 연산이란 join일수도 있고 더 복잡할수도 있음
- 이때 dictionary의 크기가 1G 내외라면 process를 여러개 띄울수가 없다.
- 만약 dictionary 자체가 process간 공유된다면 좀더 많은 process를 띄울 수 있을 것이다.
- 따라서, 위와 같은 조건을 만족하는 python dictionary implementation을 찾았지만 발견할 수 없었다.
- 그래서 C로 구현된 memory-mapped trie를 wrapping한 python library를 사용
- 적용 결과는 만족스럽다.
- 이것은 Hadoop에서 대량의 map 작업시에도 동일하게 적용 가능하다.
- 비슷한 기능을 하는 python package
- hadoop, spark 등에서 map-reduce 작업 시, 까칠한 join 작업이나 큰 사전을 가지고 복잡한 연산을 해야하는 경우 사용하면 아주 좋다.
- 기타 python의 유용한 자료구조 package