[ANNOUNCE] Haskell DBMS: Project:M36

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

[ANNOUNCE] Haskell DBMS: Project:M36

A.M.
Hello,

Project:M36 is an open-source, relational algebra engine database
management system written in Haskell. When used as a backend with other
Haskell frameworks such as yesod, Project:M36 completes a fully-Haskell
application stack.

https://github.com/agentm/project-m36

Project:M36 adheres strongly to the relational algebra principles laid
out by Chris Date in his books and, thus, includes a TutorialD
interactive interpreter for learning about the relational algebra. Thus,
Project:M36 does not suffer from the typical type-system impedance
mismatch or SQL inconsistencies common in ORMs.

Of particular interest to Haskellers is the existentially-quantified
value type which allows any Haskell data type adhering to a set of basic
typeclasses to be used directly as a database value. This feature
includes creating database functions to operate directly on these values.

In addition, the transaction model is similar to git: instead of
continually contending for the "latest committed" state, the DBMS
maintains a transaction graph which allows for branching and time travel
to past commits.

Naturally, through the use of immutable data structures, Project:M36
opens the door for parallelization of every query.

Project:M36 includes two native Haskell interfacing libraries: a) a
driver for the "persistent" library and b) a client library which allows
direct access to the relational algebra DSLs.

Thanks for looking at Project:M36!

Best regards,
Team Project:M36


_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe

signature.asc (853 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [ANNOUNCE] Haskell DBMS: Project:M36

Geraldus
Sounds very exciting!

ср, 2 дек. 2015 г. в 22:52, A.M. <[hidden email]>:
Hello,

Project:M36 is an open-source, relational algebra engine database
management system written in Haskell. When used as a backend with other
Haskell frameworks such as yesod, Project:M36 completes a fully-Haskell
application stack.

https://github.com/agentm/project-m36

Project:M36 adheres strongly to the relational algebra principles laid
out by Chris Date in his books and, thus, includes a TutorialD
interactive interpreter for learning about the relational algebra. Thus,
Project:M36 does not suffer from the typical type-system impedance
mismatch or SQL inconsistencies common in ORMs.

Of particular interest to Haskellers is the existentially-quantified
value type which allows any Haskell data type adhering to a set of basic
typeclasses to be used directly as a database value. This feature
includes creating database functions to operate directly on these values.

In addition, the transaction model is similar to git: instead of
continually contending for the "latest committed" state, the DBMS
maintains a transaction graph which allows for branching and time travel
to past commits.

Naturally, through the use of immutable data structures, Project:M36
opens the door for parallelization of every query.

Project:M36 includes two native Haskell interfacing libraries: a) a
driver for the "persistent" library and b) a client library which allows
direct access to the relational algebra DSLs.

Thanks for looking at Project:M36!

Best regards,
Team Project:M36

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: [ANNOUNCE] Haskell DBMS: Project:M36

Andrey Chudnov
In reply to this post by A.M.
Interesting. I wonder how it compares to IxSet (https://hackage.haskell.org/package/ixset) and ACID-State (https://hackage.haskell.org/package/acid-state). Could you comment?

On 12/02/2015 12:51 PM, A.M. wrote:
Hello,

Project:M36 is an open-source, relational algebra engine database
management system written in Haskell. When used as a backend with other
Haskell frameworks such as yesod, Project:M36 completes a fully-Haskell
application stack.

https://github.com/agentm/project-m36

Project:M36 adheres strongly to the relational algebra principles laid
out by Chris Date in his books and, thus, includes a TutorialD
interactive interpreter for learning about the relational algebra. Thus,
Project:M36 does not suffer from the typical type-system impedance
mismatch or SQL inconsistencies common in ORMs.

Of particular interest to Haskellers is the existentially-quantified
value type which allows any Haskell data type adhering to a set of basic
typeclasses to be used directly as a database value. This feature
includes creating database functions to operate directly on these values.

In addition, the transaction model is similar to git: instead of
continually contending for the "latest committed" state, the DBMS
maintains a transaction graph which allows for branching and time travel
to past commits.

Naturally, through the use of immutable data structures, Project:M36
opens the door for parallelization of every query.

Project:M36 includes two native Haskell interfacing libraries: a) a
driver for the "persistent" library and b) a client library which allows
direct access to the relational algebra DSLs.

Thanks for looking at Project:M36!

Best regards,
Team Project:M36



_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe


_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: [ANNOUNCE] Haskell DBMS: Project:M36

A.M.
On 12/02/2015 02:37 PM, Andrey Chudnov wrote:
> Interesting. I wonder how it compares to IxSet
> (https://hackage.haskell.org/package/ixset) and ACID-State
> (https://hackage.haskell.org/package/acid-state). Could you comment?

Hi Andrey,

Project:M36 is a complete relational algebra engine with multiple
front-ends, optional filesystem persistence, and transactional
semantics. Therefore, it is more akin to SQL DBMSs.

More specifically, IxSet does not support relational join, relational
group, persistence, aggregations, schema changes, or transactions.
Acid-state is effectively a structure graph serializer and therefore has
no provisions for schema changes, querying, or any relational algebra
operators.

Project:M36 can be used as a foundational component of the "Out of the
Tarpit" architecture, while the other packages cannot.

http://shaffner.us/cs/papers/tarpit.pdf

Cheers,
M




_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe

signature.asc (853 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [ANNOUNCE] Haskell DBMS: Project:M36

A.M.
On 12/21/2015 11:30 AM, Rémi Vion wrote:
> Hello, Project:M36 seems amazing, thanks !
> Thank your also for the link to the "/Out of the Tar Pit" paper/
> (http://shaffner.us/cs/papers/tarpit.pdf
> <http://shaffner.us/cs/papers/tarpit.pdf>).

Thank you Remi. We are working on completing the final components
described in precisely this paper. Then, we will publish an essay about
how Project:M36 meets the paper's requirements for functional-relational
programming.

>
> Are you aware of people using Project:M36 in production ?

The project is very young and unlikely to be used in production.
Currently, I would recommend it to users interested in learning about
the mathematics behind the relational algebra.

In comparison, SQL is a terrible platform for learning about the
relational algebra because SQL made some poor historical decisions. Here
is an essay on one facet of this argument:
https://github.com/agentm/project-m36/blob/master/docs/on_null.markdown

> Is there some user feedback available somewhere ?

Please use the github issue system if you encounter any problems. Or are
you asking for a "frequently-asked questions" section? We should
certainly add that.

> For small scale applications, do you think M36 is ready enough to be a
> viable alternative to Postgres ?

Project:M36 would be a viable replacement for PostgreSQL for
experimental use only. There are many more optimizations at every level
which need to be implemented before Project:M36 is on-par with
PostgreSQL and we are working on many new features.

Project:M36 has also not yet achieved feature parity with PostgreSQL,
though Project:M36 already includes some features impossible in
PostgreSQL (such as nested relations).

Thanks for trying Project:M36! Any feedback you have would be very valuable.

Cheers,
M


_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe

signature.asc (853 bytes) Download Attachment