Some projects with in-memory model

I’m a big proponent of having models (domain models) residing in memory. Of course, in the appropriate context. There are many problems that could have a better solution if we forgot the “use the database, Luke” approach. One notable solution/project is Redis, that using a single thread implements a complete and powerful key-value store in memory, with options for persistence and clustering (redis cluster still under development).

I’m playing implementing personal projects using an in-memory model. There are:

SimpleMemolap: Multidimensional OLAP-like model, in JavaScript/Node.js with a web sample.

Memolap: Multidimensional OLAP-like model, in C#. Web sample in progress.

SimplePermissions: Subjects, Roles, Permissions, Contexts, all in memory.

AjKeyvs: Redis-like in-memory key-value store, in C#. I should add the client protocol. I should review the internal algorithms, but all was coded using TDD, ready for refactors.

SimpleStore: Simple Key Value Store in memory, a la Redis, JavaScript/Node.js. In process or exposed to remote clients using additional modules. Work in Progress.

SimpleQueue: in-memory queue implementation, JavaScript/Node.js. It could be used in process or acceded via exposing the methods to remote calls.

SimpleTags: having items with arbitrary data, tagged with strings or key-value objects.

Maybe I could add SimpleRules: rule engine where the facts reside in-memory (many rule engines use directly the memory to represent the world state).

And even I could mention: SimpleBoggle, where the list of words to resolve a Boggle game it’s loaded in memory 😉

To be started:

SimpleDatabase: in-memory database, with SQL-like query language, JavaScript/Node.js

Most of these projects could be extended to have pluggable persistence. But now I’m interested in having something that works to play with. I’m having fun implementing internal algorithms, trees, search, inverted indexes, etc. And practicing TDD every day.

Keep tuned!

Angel “Java” Lopez

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s