js-db
stm-haskell
js-db | stm-haskell | |
---|---|---|
1 | 2 | |
5 | 13 | |
- | - | |
7.1 | 0.0 | |
6 months ago | over 1 year ago | |
TypeScript | Haskell | |
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.
stm-haskell
-
Software Transactional Memory (1997)
I have a repo with six sample algorithms of increasing complexity: https://github.com/jasonincanada/stm-haskell
-
Help understanding Software Transactional Memory TL2 algorithm
I have a repo with a few solutions to common concurrency patterns here: https://github.com/jasonincanada/stm-haskell
What are some alternatives?
stm-containers - Containers for STM
stmx - High performance Transactional Memory for Common Lisp
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.