public inbox for gentoo-embedded@lists.gentoo.org
 help / color / mirror / Atom feed
From: Karl Hiramoto <karl@hiramoto.org>
To: gentoo-embedded@lists.gentoo.org
Subject: Re: [gentoo-embedded] help in choosing DB engine for embedded application
Date: Tue, 30 Mar 2010 17:01:25 +0200	[thread overview]
Message-ID: <4BB21245.6000209@hiramoto.org> (raw)
In-Reply-To: <db772a721003300624t42c7c971nfce6140733700a04@mail.gmail.com>

On 03/30/2010 03:24 PM, Mirage ha wrote:
>
> Dear All,
>
> I do not know if this is the correct place to post this question or 
> not but as you have experience in embedded field i expected
> you will help me.
>
> I facing a problem in choosing database engine for my application  my 
> manager suggested to use files (e.g. txt files ) , i suggested to use 
> berkeley db.
> So could you tell me which is better and if there is better solution ( 
> better db engine) please tell me.
> also if there is link to good database benchmark comparison please 
> send it.
>
> Thank you,
> M.

Depending on the application, I might side with your manager, raw txt or 
binary files can be better in many situations.

Depends a lot on the workload, explain the application in general.

What is the most frequent operation a write, read( or search), or 
delete?   Raw files, txt or binary write() it is very fast.  Reading the 
file or seraching for something inside a large file can be slow without 
indexes, or the ability to binary search.  If the data in the file is 
already sorted, for example by  an incremeting ID, or time, binary 
search inside the file can be very fast.  Appending data to the end of a 
file can be a O(1) operation.     A DB engine after the write or delete, 
may have to update it's internal indexes, and rebalance its B-Tree, or 
update any other internal structures.


How much data? How much I/O?

Is program size important?  writing to a file is much smaller program 
footprint than a DB engine.

Optimizing for write or erase speed raw files will be faster.   
Optimizing for a fast search of data a DB engine will be faster unless 
you binary search your data in the files, or index it yourself.   If 
your going through the trouble of using your own complex indexes, then 
you might as well use a DB engine to avoid re-inventing the wheel.

--
Karl




  parent reply	other threads:[~2010-03-30 15:11 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-30 13:24 [gentoo-embedded] help in choosing DB engine for embedded application Mirage ha
2010-03-30 14:17 ` Peter Stuge
2010-03-30 14:30 ` Ed W
2010-03-30 14:31 ` Arkadi Shishlov
2010-03-30 15:01 ` Karl Hiramoto [this message]
2010-03-31  8:55 ` [gentoo-embedded] " Mirage ha

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4BB21245.6000209@hiramoto.org \
    --to=karl@hiramoto.org \
    --cc=gentoo-embedded@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox