agentm / project-m36

Project: M36 Relational Algebra Engine
The Unlicense
876 stars 47 forks source link

submit blurb to Haskell Communities and Activities Report 2018 #194

Closed agentm closed 6 years ago

agentm commented 6 years ago

I regretted missing this notification last year, so let's get an entry into this year's edition.

I don't mind writing this up, but if users have a good sense of what is most appealing about the project or what's new-and-exciting in the project, then please comment on this ticket and I will include it.

agentm commented 6 years ago

Here's a first draft:

Project:M36 is a relational database management system (DBMS) written entirely in Haskell which mimics Haskell's principled mathematical approach to software design. This design is inspired by the "Out of the Tarpit"[1] paper, Chris Date's writings, and Haskell's enforced idempotence.

Because of its clean-room architecture and legacy-free implementation, Project:M36 sports first-class support for algebraic data types which can be trivially derived on the client side from Haskell ADTs via Generics. With the wire protocol based on an EDSL of the relational algebra rather than a string (such as with SQL), the type impedance mismatch between client and server is eliminated.

Project:M36 supports a number of unique features only possible because of its uncompromising adherence to the mathematics of the relational algebra, among them: transaction time travel, a transaction graph supporting branches and merges, relational expressions crossing transaction boundaries, derived Haskell type-to-tuple marshaling, and idempotent server-side Haskell scripting. In addition, Project:M36 offers jupyter notebook support, choice of in-memory or file-system-backed storage, an interactive Tutorial D console, Websocket access, rejection of SQL's NULL and three-valued logic, and more!

Taking a cue from Haskell itself, Project:M36 sets itself apart as a from-the-ground-up DBMS implementation following strong data-typing principles and underlying mathematics in order to discover new optimizations and logically-sound replacements of long-standing SQL inconsistencies. We hope to enable and to be at the forefront of research into relational database technology.

Upcoming features include additional storage optimizations, commits in constant time, and evaluator optimizations with the goal of becoming the premiere DBMS for Haskell projects. Join us!

GitHub: https://github.com/agentm/project-m36 Hackage: http://hackage.haskell.org/package/project-m36

[1]: Out of the Tarpit, by Ben Moseley and Peter Marks. https://github.com/papers-we-love/papers-we-love/blob/master/design/out-of-the-tar-pit.pdf

Comments?

agentm commented 6 years ago

I submitted the latest revision, but it's not too late for edits.