어제가 오픈일이었다. 새로운 검색서비스가...
solr 1.2로 1600만건정도를 잘 색인하고 검색서비스를 제공하고 있었다.
다른쪽에 추가적인 검색서비스가 필요하다고 해서 몇번의 회의를 하였었다.
이미 기존의 서비스를 같이 해본 사람들이었고 스펙도 크게 다르지 않아서 방심을 하였다 ㅠㅜ
사실 방심보다는 다른쪽으로 짜증이 조금 나 있었다.
같이 일하는 사람들이 너무나도 도움을 안주는 것이었다. 지금 잘 동작하지 않는 검색서버를
교체해준다는 것이었는데.. 샘플데이터를 보고 싶다라고 하니 그냥 테이블 이름 알려주면서 보란다.
투덜투털 되면서 친한 DBA한테 가서 사정사정 해서 데이터를 요청하였는데..
점점 일이 커지기 시작한다. 데이터가 2600만건으로 기존 서비스보다 더 크다..
윽.. 사이즈가 작은지 알고 편하게 될줄 알았는데.. 큰일이다.. 서버의 스트레스 테스트도 다시 해봐야 하네.
analyzer를 바꿀 예정이었는데.. 이것은 취소하고..(어짜피 게시판이니 효과는 별로일듯)
solr 1.3으로 색인을 시작하였다. solr 1.3의 색인속도가 조금 빨라진것이 체감상 느껴진다.
한참 색인을 하였는데.. 왠지 데이터가 모자른다는 느낌이다..
확인해보니 유니크 키가 이상하다.. 한창 담당팀과 DBA와 논쟁이다. 중복이다 아니다.
언제부터는 중복이고 중복이 아니다.. 왔다리 갔다리.. 결국 db 필드 3개로 키를 만들었다.
key의 사이즈가 커지니.. 색인속도와 검색속도가 현저하게 떨어진다..
거의 3배이상 커졌으니.. 그것도 일정한 자리수가 아니라 변동성의 폭이 크다.. 제길..
key를 조정하고 다시 색인을 완료하여서 오픈준비를 하고 있는데.. 그래도!! 데이터의 사이즈가 부족하다.
확인하여보니 solr1.3의 색인 xml 이 조금 바뀐거 같다.. solr1.2에서는 괜찮았는데.. 1.3에선 에러를 튕겨낸다.
물론 그 데이터가 한글이 아니고 유니코드로 변경하였을때 이상한 값들이긴 하였지만...
2500만건중에서 1500만건뿐이 색인이 안되었다.. 이상태로는 안될듯 하여서 solr1.3에서 1.2로 버전을 다운하기로 결정
부랴부랴 다시 색인을 하여서 간단한 테스트로 되는 것을 확인하고 오픈준비를 완료하였다.
오픈날 마지막 1일치 데이터를 색인하려고 하는데.. 윽.. 데이터의 건수가 1.2만건이다.
이것도 복병이었다.. 하루 증감분이 1.2만건이라.. 제길.. 초당 몇건이란 이야기인가..
휴.. 제대로 확인하지 않은 사실들이 너무나도 많다. ㅠㅜ
그놈이랑 신경전하느라고 제대로 못챙겼네.. 아띠.. ㅠㅜ
오픈을 하였다.
예상대로 색인요청건수가 너무나 많다.. 근데 색인의 피드백 타임이 너무 오래 걸린다..
검색결과의 시간도 너무 오래걸린다. 메모리를 최대한으로 했는데도..
GC overhead limit exceeded , Heap 메모리 부족 에러가 발생한다.. 제길
commit을 요청하면 서버가 먹통이 되어 버린다.. 쩝쩝..
결국 롤백결정 ㅜㅡ
제길슨.. 제대로 풀 테스트하지 않은것이 화근이다..
근데.. 참 오픈소스라는 것이 힘들다.. 이런 블랙박스의 형태이니 에러발생시 조절할수 있는 부분이 너무 작다
휴.. 어쩌겠냐.. 풀테스트 시나리오를 작성하고 있다... 다시 해봐야지..
원인이 무엇인지 어떻게 해결해야 하는것인지.
키의 사이즈가 문제인지, 데이터의 양이 문제인지, 색인과 삭제 요청의 빈도수에 대한 한계가 있는지..
solr의 서버한계가 이정도인지.. 결론이 나겠지 ^^
난 개발자인가? 테스터인가?