[t:/]$ 지식_

대용량 문자열 검색과 압축

2018/04/17

https://www.humio.com/blog/how-fast-can-you-grep

요약 (요약문의 숫자=초, 는 본문과 다름, 이해 편의용)

문제 : SSD에 있는 대용량 데이터에서 문자열을 검색하는 문제이다.

  1. 읽는데 시간을 너무 많이 쓴다. 100초
  2. CPU가 빵빵하니 압축해서 저장해둔다. 5배 압축이면 20초에 읽는다.
  3. 압축 푼다고 까먹는 시간을 추가하자. 1초 걸린다고 치자.
  4. 멀티 쓰레드로 4분할 하자. 싱글에서 20초였으니까 5초로 단축된다.
  5. 여기까지 하면 읽기 5초 + 압축풀기 0.25초로 대충 5.25초가 된다.
  6. 그런데 큰 파일을 한 번에 읽어서 한 번에 풀면 앞에서 읽어서 푼 놈은 L2 캐시에서 밀려난다. 그래서 짧게 읽어 짧게 풀고 짧게 처리하자. 이랬더니 막 더줄었다. ... 결론 : 하지만 실세계는 훨씬 복잡하자너. 캐시 다 틀어지고 생각대로 안 된다. 하지만 연속적으로 데이터가 들어오는 로그 탐색에 있어서는 쓸만하지 않을까?

나의 의견 첨가

실세계는 더 ㅅㅅ 복잡하자너. 분산환경에 가상화까지 끼면 CPU와 IO 통제가 내 상상과 전혀 다르게 움직인다. 따라서 IO를 줄이기 위해 압축 저장해서 푸는 것이 더 빠르다는 가정이 틀어질 수가 있다. 압축 풀라고 CPU한테 시켰더니 CPU를 다른 팀에서 쪽 빨아먹고 있네??? 하둡의 압축저장이 더 빠른지는 여전히 잘 모르겠다. 케바케라는 느낌적 느낌을 갖고는 있는데 ... 이하 잘알못생략.









[t:/] is not "technology - root". dawnsea, rss