SQLiteDBMS 0.4.2, 앞으로의 계획과 웹서버 성능 비교

소타의 이미지

SQLiteDBMS 0.4.2가 릴리즈 되었습니다.

웹서버 성능 테스트 도중 한꺼번에 많은 접속이 몰리면 클라이언트 소켓을 잃어버리던 버그를 수정하였습니다. 중대한 버그라서 몇가지 기능을 넣지도 않았는데 급히 릴리즈 하게 되었습니다. 그리고 설정파일 로더가 잘못된 동작을 하던 것을 수정하였습니다.
추가된 기능은 shared library를 읽고 전달된 함수 포인터들을 처리 영역마다 호출할 수 있게 되었습니다.

SQLiteDBMS의 TODO가 거의 없어지고 성능, 안정성 면에서 많은 향상이 되어서 원래의 목적을 위해 슬슬 변태할 계획입니다; 사실 DBMS에 없어도 될만한 HTTP server, WebDAV, AJAX호환 등의 부가 기능이 있는 것도 다른 이유가 있어서 입니다.. shared lib을 통해 또 다른 기능들을 확장할 생각이기 때문에 이런 기능이 추가되게 되었습니다.
SQLiteDBMS의 메인터넌스는 계속 유지될 것이고 추가적으로 호환되는 몇가지 라이브러리를 만들 계획입니다. 우선은 loudmouth+jabber2 연동과 RSS 수집기가 붙게 될 예정입니다. 바로 요놈입니다.

SQLiteDBMS는 웹서버를 기반으로 하고 있습니다. HTTP/1.1 프로토콜 메쏘드 중 POST, OPTION, PUT, DELETE 를 이용해 DB처리, WebDAV를 처리하고 있습니다. 따라서 기본적인 웹서버의 성능은 꽤 중요합니다. 0.2.0 부터 꾸준한 성능 개선을 한 결과가 그런대로 잘 나온 것 같습니다.
예전에 nhttpd라는 웹서버 프로젝트를 할 때는 "아파치보다 70% 빠르고 기능은 700% 적다" 라고 했었는데;; 꾸준한 프로토콜 파서 개선과 IO 정책이 변경되면서 많은 성능 향상을 할 수 있었습니다. 물론 훨씬 나은 성능을 보이는 웹서버도 많고 그래프를 보시면 아시겠지만 큰 파일 서빙 시에는 비슷하거나 못한 성능을 보여줍니다. 역시 아파치.. 라는 말 밖에는;;

테스트 리포트는 여기에 있습니다.

파일 사이즈 별 그래프
세션 갯수별 그래프

댓글

kilhan의 이미지

개인적으로 SQLiteDBMS 에 관심이 많습니다.

sqlite를 사용하는데 불편한점이 replication 이었습니다.

왜냐하면 서버가 2대라면 원격에 있는 DB를 local로 replication을 시킨후

직접 API로 접근하여 사용하면 되지 않을까 하는 안일한 생각덕분입니다.^^;

replication이 동작하는 방식이

mysql에서 사용하듯이 바이너리 로그를 쌓은후 해당 파일을 읽어 들여 하는 방식인가요?

아니면 trigger를 이용한 방식인가요? (뭐 trigger를 이용해도 되지 않을까 해서든 생각입니다)

repliaction에 대해서 조금만 자세히 설명해 주시면

현업에서 사용하는데 많은 도움이 될듯 합니다.

답글은 달지 못해도 꾸준히 관심과 애정을 갖고 지켜보고 있습니다 :-)

소타의 이미지

앗 아직 리플리케이션은 지원하지 않고 있습니다.
지원하게 된다면 mysql이나 다른 DBMS처럼 DBMS차원에서 지원하게 될 것 같습니다.
리플리케이션은 계획 자체가 stable에서나 지원할 예정이라서요 ^^;;

lksce의 이미지

요즘 sq lite에 관심이 있는데.
자료가 많이 없는것 같은(한글), 혹시나 자료 같은게 있으면
좀 보내주셨으면 합니다..(lksce79@gmail.com)

소타의 이미지

한글로 된 문서는 저도 잘 보지 못했습니다 -.-;;

http://sqlite.org/docs.html
http://www.sqlite.org/cvstrac/wiki
이정도 보시면 왠만한 문제는 다 해결됩니다..

http://www.sqlite.org/cvstrac/search?w=1
여기서 키워드로 검색하셔도 원하시는걸 빠르게 찾으실 수 있습니다~

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.