External Image Database

Mentor: Bernat Romagosa
Second mentor:
Level: Advanced
Invited students:
Students interested: Junfei Huang


In Smalltalk, we often end up having to flatten our objects to make them fit into traditional databases. Be it SQL or key-value storage, the processes involved in re-mapping our objects are never trivial and most of the time end up forcing us to give up the comfortableness of dealing with live, consistent data as we are used to do in image-based persistence.

The idea behind this project is to set up an image that is capable of storing a real Smalltalk object model, receiving real Smalltalk queries from other images and returning the result of executing them in the shape of real Smalltalk objects.

Technical details

The proposed platform to build the system is Pharo. As for the implementation of inter-image communication, Fuel-serialized objects over sockets are a fairly easy to implement solution but maybe something faster can be thought. Pharo images have a 2 Gb size limitation, which makes them unsuitable for storing too much data, which means a solution has to be thought. Possibilities may include a disk-based storage system a la Gemstone or building a 64 bit capable VM.

Benefits to the Student

Exposure to non-traditional storage solutions, with a lot of freedom on design and implementation details.
Possibility to participate in a project that can have a great impact in the open-source Smalltalk community.

Benefits to the Community

A real Smalltalk object database that is free, both as in free beer and as in free speech. First steps in what seems to be a generalised future vision in the community: being able to easily build applications powered by a cluster of images, rather than big, bulky, single-image systems.

Updated: 18.3.2012