in reply to Re: STM for Perl
in thread STM for Perl

DBM::Deep's initial mission was to provide a Perl interface to disk-backed storage. It did this so well that programs don't even know they're working with disk-backed data structures. Combine this with transactions and you have the ability to treat a data structure transactionally. In other words, "lockless atomic concurrent access to data." That this lockless concurrent access occurs on disk is undesirable, but transparent to the program. Adding the ability to do this in-memory vs. on disk is an optimization, not a specification.

My criteria for good software:
  1. Does it work?
  2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?

Replies are listed 'Best First'.
Re^3: STM for Perl
by gaal (Parson) on Jan 25, 2007 at 07:25 UTC
    I'm not dissing DBM::Deep. Might be a useful module indeed. But it isn't STM.

    STM is a particular technique to achieve safe access to data in a multithreaded program. The concurrency it deals with isn't that of different processes accessing the data on disk at the same time, and the locks it saves the programmer from thinking about aren't of the filesystem type.

      Point. So, the next step would be to make DBM::Deep threadsafe?

      My criteria for good software:
      1. Does it work?
      2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
        The next step to what? If you want to read up on STM, its goals, strengths, and weaknesses, that page I linked to has useful information, including a video talk. This presentation is pretty good too.