[PREV - CUSTOM_FIRE]    [TOP]

HOME_BASE


                                             April   11, 2010
                                             October 18, 2013

Databases as application back-ends.


   Given a hammer,
   can we turn the
   world into a nail?

       The hammer in this case, is the
       full-featured open-source                  Working backwards like
       relational database, postgresql.           this from technology
                                                  to justification is
       And "the world" I'm referring to           done more often than
       is the user application -- you             you might think.
       know, the things that run on
       your own PC, the way we did
       things back before the web.



   First of all, let's look at why
   this idea seems absurd:

   o  There are "simpler technologies"
      that work tolerably well on
      small data sets, e.g.  bdb,
      sqlite, or even just flat files.

   o  We think of RDBMS as being tools
      for *big* data sets, with features
      that add performance to scale upwards.


        So, I'm going to largely argue
        that "performance isn't everything"    I'm also going to try the
        and there are other features of        argument that "small"
        an RDBMS that can be useful even       applications are getting
        for smaller applications.              bigger: where users once needed
                                               to keep track of only hundreds
        In particular, I have my eye on        of items, they're now
        concurrency, though resistance         likely to care about tens
        to data corruption in the case         of thousands, and may get
        of a crash might be just as            up into the millions.
        important as it is in the large
        scale uses of databases (large                      Think: sound files,
        installations, after all,                           digital photos,
        typically have multiple layers                      web bookmarks...
        of redundancy, individual users
        often have none).

           Concurrency is useful even for
           individual users, so that you             This might help
           can run multiple apps that use            my case, but I
           the same data without conflict.           don't expect it
                                                     to go very far
           I use Firefox as my main web              on it's own.
           browser, but sometimes run a
           second browser at the same
           time, and I might also like to
           run an independant bookmarks
           organizer application (the
           ones built into Mozilla's
           offerings are *still* only       HOME_BASE_TECHNOTES
           barely useable, and scale
           horribly).

           Then there's the problem of
           syncing up laptops to
           workstations and so on.

               One way of solving these problems
               is to just use a single datastore.       In which case, though,
                                                        you might go with a
                                                        traditional remote
                                                        database architecture,
                       And either way you go,           perhaps renting an
                       you still have a problem         account from a third
                       of convincing all                party installation.
                       browsers you're interested
                       to add the capability            What I'm *looking*
                       to use the same shared           for is an excuse to
                       backend.                         use a local postgresql
                                                        installation as a
                       In the case of the               local back end.
                       open source ones, you'd
                       make adding this support
                       part of the project,
                       forking the original
                       if necessary.





--------
[NEXT - HOME_BASE_TECHNOTES]