Software Transactional Memory (1997)

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  1. js-db

    Key-Value DB for TypeScript and JavaScript Applications (by MatrixAI)

    I've been working on a JS database to support optimistic concurrency control. I did some research and arrived on 2 seemingly related concepts but from independent research lines. Software transactional memory in functional programming/Haskell land versus snapshot isolation in database research.

    After reading them both, I asked this unanswered question on SO: https://stackoverflow.com/q/72084071/582917. My theory is that STM is the same as SI, but most SI database implementations don't just do value comparisons, but actually check a logical timestamp. This is probably done for performance reasons as databases handle larger pieces of data than functions would when using STM.

    Along the way I also discovered SSI serializable snapshot isolation but it isn't yet available in rocksdb but cockroachdb apparently has a fork of rocksdb with it but I couldn't find it.

    Anyway the db library which wraps around rocksdb is available to be used embedded in any nodejs program at https://github.com/MatrixAI/js-db.

  2. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  3. stm-containers

    Containers for STM

    I think you are right about STM being roughly equivalent to snapshot isolation.

    What STM offers is an easy way to invent "containers for snapshotted values" aka TVars. Using them carefully may result in better scaling: https://hackage.haskell.org/package/stm-containers

  4. stmx

    High performance Transactional Memory for Common Lisp

    Common Lisp has it too, via https://stmx.org/ I believe it supports the Intel TSX stuff if present and falls back to a software implementation if not present.

  5. stm-haskell

    Concurrent algorithms in Haskell using software transactional memory (STM monad)

    I have a repo with six sample algorithms of increasing complexity: https://github.com/jasonincanada/stm-haskell

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • How to achieve "Run at most one parallel async action per user"?

    1 project | /r/haskell | 9 Nov 2021
  • This Week In Python

    5 projects | dev.to | 17 Jan 2025
  • Show HN: Pyper – Concurrent Python Made Simple

    3 projects | news.ycombinator.com | 12 Jan 2025
  • Taking Back Control in 2024

    2 projects | dev.to | 8 Jan 2025
  • Build Lightning-Fast Data Processing in Rust: From Single Thread to Parallel Performance

    8 projects | dev.to | 19 Dec 2024

Did you know that Haskell is
the 25th most popular programming language
based on number of references?