js-db
stmx
js-db | stmx | |
---|---|---|
1 | 3 | |
5 | 238 | |
- | - | |
7.1 | 3.7 | |
6 months ago | 3 months ago | |
TypeScript | Common Lisp | |
Apache License 2.0 | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
js-db
-
Software Transactional Memory (1997)
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.
stmx
-
Software Transactional Memory (1997)
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.
-
Is there any double compare-and-swap (DCAS) library for CL?
https://github.com/cosmos72/stmx is transactional memory, so I think it does a bit more than simple CAS. CAS is in https://shinmera.github.io/atomics .
- High Performance Transactional Memory for Common Lisp
What are some alternatives?
stm-containers - Containers for STM
stm-haskell - Concurrent algorithms in Haskell using software transactional memory (STM monad)
TypeORM - ORM for TypeScript and JavaScript. Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana, WebSQL databases. Works in NodeJS, Browser, Ionic, Cordova and Electron platforms.
Lisp-Actors - Thread-agnostic Actors in Common Lisp
cl-skip-list - Lockless skip lists for Common Lisp; well, for now sbcl 1.0.42 or higher. Contributions for other Lisps welcome. See the README file for a list of what is required.