임베디드시스템에서의 데이터 다루기

cocoon의 이미지

임베디드시스템에서 데이터를 임베디드 데이터베이스를 사용할 것인지 단지 파일로 저장할 것인지에 관해 고민이 있어 질문드립니다.
개발하려고하는 어플리케이션은 산업용 장치들을 제어하는 컨트롤러인데...
이를 위해서는 컨프롤러에 접속되는 장치에 대한 컨피규레이션이나, 장치 이름 등을 컨트롤러에 저장해야합니다. 현재 장치는 임베디드 DB를 사용할만큼 리소스는 충분(RAM 64MB, Flash 32MB, CPU ARM9 400MHz)하다고 생각하고요...물론 리소스를 덜먹게 어플리케이션 구현하면 더 좋죠. 하지만 크리티컬 시스템이기때문에 안정성이 더 중요합니다.

어쨋든 이 장치들의 정보들를 하나 또는 그 이상의 파일(단순 텍스트 파일)로 저장을 할지..
아니면 임베디드 DB를 사용할지 고민중입니다.

아직 임베디드시스템에서 데이터들을 다룬 경험이 많지 않아서
임베디드시스템에서 어떨때 DB를 사용하는 것이 좋은지 파일로 저장할 경우 어떤 크리티컬한 문제가 생길 수 있는지..각각의 장점과 단점이라던가..

고수분들의 조언 부탁드릴께요.

익명사용자의 이미지

데이타양, 복잡성을 생각해보시고
결정하시는게 좋을것 같습니다.

임베디드라 데이타양, 복잡성이
그리 크지않을것 같은데요.

그래서 그냥 파일을 사용하시는게
좋을것 같습니다. 텍스트 파일이면
디버깅하기도 좋을것 같구요

주의하실점은 전원이 꺼졌을때
대책은 마련하셔야 되구요.
JFFS2 같은게 좋겠네요.

cinsk의 이미지

질문하신 내용을 읽자마자 Berkeley DB가 떠오르는군요. :)

Berkeley DB가 최적의 선택이 아닐까 생각합니다. 물론 일반적으로 DB라고 부르는 소프트웨어처럼 SQL이나 다양한 datatype을 지원하지 않지만, index와 transaction, btree, concurrency가 잘 구현되어 있다는 점에서 추천하고 싶습니다. 또 실제 쓰이고 있는 embedded system도 많습니다.

http://www.sleepycat.com/

(URL을 따라가보니 어느내 Oracle에게 먹혔군요.)

Berkeley DB처럼 저수준(low-level) DB가 아닌, SQL까지 지원하는 DB라면, sqlite도 괜찮을 것 같습니다만, 인지도 면에서 좀 떨어지지 않을까 싶습니다.

http://www.sqlite.org/

--
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://www.cinsk.org/cfaqs/

voider의 이미지

gdbm + text(regex)만으로도 충분하지 않을까요?
텍스트 파일에 서치 문자열과 인덱스를 넣어놓고 인덱스로 gdbm에서 값을 꺼내오면 충분할것 같습니다.

-- 아쉬운 하루 되세요 --

-- 아쉬운 하루 되세요 --

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.