SQLite multi-process 및 multi-thread 지원

By lhcsoft - 8월 01, 2020

SQLite multi-thread 및 multi-process 지원에 대해 설명한다.



1. multi-process 지원

    - 구현기술: OS의 File Locking 기능을 이용하여 multi-process 지원한다.
                    SQLite에서 기본적으로 지원한다.
                    즉, 사용자가 별도로 설정하지 않아도 된다.



2. multi-thread 지원

    - 구현기술: 
관련 API: int sqlite3_busy_timeout(sqlite3*, int ms);
      설명: 
             API를 이용하여 timeout을 설정한다.
             한개의 thread에서 SQLite DB 접근 상태에서,
             다른 thread에서 SQLite DB 접근시 timeout 시간동안 delay후 처리한다.
             delay된 작업이 thread 경합에 의해 또 다시 처리되지 않으면, 
             다시 delay 후 처리한다.
             delay time은 SQLite 내부 알고리즘에 의해 점점 길어진다.
      이슈사항:
             지연 처리 작업이 많아지면 overhead 발생.
      해결방안:
              응용에서 locking 기능을 이용하여 SQLite 동시접근을 하지 않도록 하는것이 
              좋다.
              (응용에 따라 최적으로 처리할 수 있기 때문에)
              

위 내용은 개인적으로 검토한 내용이므로 참고만 하시기 바랍니다.
감사합니다.

  • Share:

You Might Also Like

0 개의 댓글