Request for recommendations: shared database without a server

Discussion in 'Python' started by EP, Oct 5, 2006.

  1. EP

    EP Guest

    I need to build a fairly simple application that will reside on remote
    storage, not on a server, and I am looking for any best practices and
    approaches that have worked for others. I believe py2exe may be part
    of the solution. Here's what I need to build:

    -- A database application on a network drive
    -- A variety of users will access the database application at various
    times
    -- All computing is done on the client machines (Windows XP), as there
    is no server
    -- I'll not be able to install a database program, or Python, on the
    client machines

    While this seems just the sort of application servers were designed
    for, the absence of a server is a firm constraint (no technological
    reason, just an arbitrary wall of infinite height)

    I currently have some of the required database tables populated in
    MySQL, but I can migrate them as long as I have SQL capabilities in the
    new database.

    Can I get there with MySQL? Or do I need to pair a pure python
    approach (including the database) with py2exe? Has anyone achieved
    this with a db framework like Dabo? Or is there another, entirely
    different and better approach?


    The common wisdom around the halls is to just use MS Access, because
    apparently everyone has that on their client machines, or can be
    asked/expected to install it. That's not my preference, but I need to
    forget my biases, be pragmatic and get the application done.

    Thanks for any advice


    EP
     
    EP, Oct 5, 2006
    #1
    1. Advertising

  2. > -- A database application on a network drive
    > -- A variety of users will access the database application at various
    > times
    > -- All computing is done on the client machines (Windows XP), as there
    > is no server
    > -- I'll not be able to install a database program, or Python, on the
    > client machines


    This pretty much leaves you out of any options - and contradicts your
    last paragraph.

    > While this seems just the sort of application servers were designed
    > for, the absence of a server is a firm constraint (no technological
    > reason, just an arbitrary wall of infinite height)
    >
    > I currently have some of the required database tables populated in
    > MySQL, but I can migrate them as long as I have SQL capabilities in the
    > new database.
    >
    > Can I get there with MySQL? Or do I need to pair a pure python
    > approach (including the database) with py2exe? Has anyone achieved
    > this with a db framework like Dabo? Or is there another, entirely
    > different and better approach?
    >
    >
    > The common wisdom around the halls is to just use MS Access, because
    > apparently everyone has that on their client machines, or can be
    > asked/expected to install it. That's not my preference, but I need to
    > forget my biases, be pragmatic and get the application done.


    Access might really be the best solution. It is pretty good for what it
    is supposed to do, and the quick prototyping and UI-designing are strong
    arguments for it, especially if there already is a bias towards it.

    I also _think_ that the whole "db on a shared volume" thing works
    comparably neat.

    However, there _can_ situations arise where it might get corrupted, as
    e.g. file locking on a network share isn't as reliable as one wants it
    to be - so if you do anything to tear down some infinite walls, try it.

    Diez
     
    Diez B. Roggisch, Oct 5, 2006
    #2
    1. Advertising

  3. EP

    Tim Chase Guest

    > Access might really be the best solution. It is pretty good
    > for what it is supposed to do, and the quick prototyping and
    > UI-designing are strong arguments for it, especially if there
    > already is a bias towards it.
    >
    > I also _think_ that the whole "db on a shared volume" thing
    > works comparably neat.


    Just a caveat from past experience...I've had trouble with Access
    (at least older version) sharing DBs on a network drive. It
    didn't work /too/ badly, but it scaled horribly. 3 concurrent
    users was noticably slow. 5 concurrent users was painful. Above
    10 users was agony.

    Fortunately, I was one of the ones redesigning the replacement
    system to actually use a database server. Granted, as merely a
    PFY at the time, I didn't have much input into the choice of
    server (MS-SQLServer) nor into the language (Visual FoxPro), just
    got to execute the plans of the higher-ups.

    -tkc
     
    Tim Chase, Oct 5, 2006
    #3
  4. Tim Chase schrieb:
    >> Access might really be the best solution. It is pretty good
    >> for what it is supposed to do, and the quick prototyping and
    >> UI-designing are strong arguments for it, especially if there
    >> already is a bias towards it.
    >>
    >> I also _think_ that the whole "db on a shared volume" thing
    >> works comparably neat.

    >
    > Just a caveat from past experience...I've had trouble with Access (at
    > least older version) sharing DBs on a network drive. It didn't work
    > /too/ badly, but it scaled horribly. 3 concurrent users was noticably
    > slow. 5 concurrent users was painful. Above 10 users was agony.


    Yeah, I recall that dimly, too. But at least it worked, only when
    putting really much stress on the system it produced inconsistencies
    such as doubledly assigned ids and the like. Seems to me that they are
    pretty conservative regarding locking.

    > Fortunately, I was one of the ones redesigning the replacement system to
    > actually use a database server. Granted, as merely a PFY at the time, I
    > didn't have much input into the choice of server (MS-SQLServer) nor into
    > the language (Visual FoxPro), just got to execute the plans of the
    > higher-ups.


    The architectural benefits are for sure, therefore my suggestion to tear
    down some walls.

    But VFP really can get messy... and at least the late-90ies, early 21stK
    ms sql sucked pretty badly, feature-wise access/JET beat the crap out of
    it any time back then...

    diez
     
    Diez B. Roggisch, Oct 5, 2006
    #4
  5. EP

    Larry Bates Guest

    EP wrote:
    > I need to build a fairly simple application that will reside on remote
    > storage, not on a server, and I am looking for any best practices and
    > approaches that have worked for others. I believe py2exe may be part
    > of the solution. Here's what I need to build:
    >
    > -- A database application on a network drive
    > -- A variety of users will access the database application at various
    > times
    > -- All computing is done on the client machines (Windows XP), as there
    > is no server
    > -- I'll not be able to install a database program, or Python, on the
    > client machines
    >
    > While this seems just the sort of application servers were designed
    > for, the absence of a server is a firm constraint (no technological
    > reason, just an arbitrary wall of infinite height)
    >
    > I currently have some of the required database tables populated in
    > MySQL, but I can migrate them as long as I have SQL capabilities in the
    > new database.
    >
    > Can I get there with MySQL? Or do I need to pair a pure python
    > approach (including the database) with py2exe? Has anyone achieved
    > this with a db framework like Dabo? Or is there another, entirely
    > different and better approach?
    >
    >
    > The common wisdom around the halls is to just use MS Access, because
    > apparently everyone has that on their client machines, or can be
    > asked/expected to install it. That's not my preference, but I need to
    > forget my biases, be pragmatic and get the application done.
    >
    > Thanks for any advice
    >
    >
    > EP
    >


    So what is going to be holding the "network drive" if it isn't a server?
    And what is MySQL running on?

    Isn't it 'odd' that you can expect people to install MS Access but not
    some other program?

    I had to use only "existing" database tools, and the data wasn't
    too large or too complicated I would use ODBC to dBase file which
    is built into all versions of Windows that I'm aware of. I think
    you would find that it would work for small number of users. With
    some good planning you should also be able to architect application
    so that you can even change the underlying database later without
    too much heartburn.

    -Larry Bates
     
    Larry Bates, Oct 5, 2006
    #5
  6. EP

    EP Guest

    Larry Bates wrote:

    > So what is going to be holding the "network drive" if it isn't a server?
    > And what is MySQL running on?



    The network drives are on a filer (a NAS array, I believe). The filer
    will not execute any code, it just serves data by whatever protocols
    (example: CIFS, NFS) it is set up for.

    I have MySQL running on my client machine for development, populating
    itself from csv files out on another network drive which a perl cgi
    script updates. Thick in kludge, I am.


    > Isn't it 'odd' that you can expect people to install MS Access but not
    > some other program?



    Odd and frustrating, but MS Access is "normal".


    > I had to use only "existing" database tools, and the data wasn't
    > too large or too complicated I would use ODBC to dBase file which
    > is built into all versions of Windows that I'm aware of. I think
    > you would find that it would work for small number of users. With
    > some good planning you should also be able to architect application
    > so that you can even change the underlying database later without
    > too much heartburn.



    Interesting idea.


    thanks
     
    EP, Oct 5, 2006
    #6
  7. EP

    Paul Boddie Guest

    EP wrote:
    >


    [Client-only application with shared storage and concurrent access]

    > Can I get there with MySQL? Or do I need to pair a pure python
    > approach (including the database) with py2exe? Has anyone achieved
    > this with a db framework like Dabo? Or is there another, entirely
    > different and better approach?


    One of the features of SQLite version 3 is supposedly the possibility
    of having multiple processes safely access an SQLite database:

    http://www.sqlite.org/faq.html#q7

    Unfortunately, networked storage may not be supported to any level
    acceptable for your application.

    Paul
     
    Paul Boddie, Oct 6, 2006
    #7
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Brian Birtle
    Replies:
    2
    Views:
    2,139
    John Saunders
    Oct 16, 2003
  2. DJ Dev
    Replies:
    3
    Views:
    16,211
    Gandalf
    Feb 8, 2004
  3. John

    Request for book recommendations

    John, Jun 5, 2004, in forum: ASP .Net
    Replies:
    4
    Views:
    504
  4. Joe Fallon
    Replies:
    3
    Views:
    785
    =?Utf-8?B?Z3V5?=
    Jul 16, 2004
  5. Guido Mureddu

    Nth request of book recommendations

    Guido Mureddu, Nov 27, 2004, in forum: C Programming
    Replies:
    12
    Views:
    608
    Randy Howard
    Dec 5, 2004
Loading...

Share This Page