조회수에 INDEX_NUMERIC이나 INDEX_AS_IS 등과 같이 색인을 걸게 되는 경우가 있다. 이런 경우 동시사용자(여기서는 사람이 아니라 KRISTAL 서버가 받아들이는 요청)가 초당 약 30개 이상이 되면 서버비지(Server Busy) 상태에 빠지는 현상이 보고된 바 있다. 이런 경우는 기계적인 요청에 의한 특수한 상황에서 발생하는 것으로 보인다(로봇이나 웹 미러링 도구). 원인은 아마도 file locking의 오류가 아닐까 추측하고 있다.
특별히 작업이 없는 상황에도 Server Busy 상태로 빠지는 경우에는 kill이나 killall 명령어로 kristald 데몬을 모두 죽이고 각 테이블의 색인을 다시 생성시켜주면 이러한 현상이 어느 정도 완화되며, 메모리 사용효율이나 속도 등이 훨씬 개선된다.
$ cd kristal_db/
$ killall kristald
$ clear_index_table volume/ mydb mydb_table
$ build_index_table volume/ /home/kristal/KRISTAL mydb mydb_table
$ kristald -D conf/mydb.config.xml
색인을 하는 조회수와 같이 접속당 수정이 일어나는 경우가 아니라면, 일반적인 상황에서는 KRISTAL DB를 재색인 할 필요성은 별로 없다. 동물그림창고의 경우 거의 3년동안 재색인없이도 성능에 이상없이 잘 동작하고 있다. 메모智.COM의 경우에는 이러한 오류에 대한 보고가 있어서 조회수 개념을 삭제하였으나, 색인을 걸지 않은 조회수는 문제가 없을 것으로 예상하고 있다.
참고자료:
http://www.memozee.com/memozee.view.php?key=002000000020 |