Hey OpenIO Community!
My name is Kevin Morris. Last year, I signed up for a hackathon at Galvanize that had multiple API options available to use with the project. I had no team, so I just coded up something by myself. I looked through OpenIO’s documentation and ran my own OpenIO virtual machine for a “local” object storage cluster. I then used OpenIO’s object storage to store JSON data related to a given post. This website was basically a social network for sharing code, and in these posts, the code would be executed and the output shown. The JSON data stored related to these posts were the source code of a given execution and it’s corresponding output.
The OpenIO Python SDK was extremely easy to use which was a huge + for this one day project. Unfortunately there are some hardcoded details about connecting to my local OpenIO server; this did not matter to me since this was only a “demo” purpose project. I decided to use OpenIO at this hackathon because it seemed to me to provide the most robust utility for any of the APIs there, and I wanted to explore with it a bit.
Note: This project does not fully demonstrate the potential power of OpenIO. This project is meant to demonstrate simple blob storage via OpenIO. Since blobs in this project are not necessarily any sort of fixed size, it is much more convenient to store arbitrary sized blobs in OpenIO’s database instead of forcing a TEXT or CHAR field in SQL. This also takes away the need for the local “info” database on the website needing to process any of these blobs for table lookups and such. Potentially, if blobs stored in this system were large, OpenIO would provide a fantastic scale factor for blob storage, and it’s clustered nature would decrease bottleneck dependencies.
To put time into perspective: I could use the openio Python SDK within minutes of looking at the documentation, and it took me less than an hour to learn how to run my own OpenIO powered cluster on a machine. This was such a painless process
You can see the code located at https://github.com/kevr/CodeBook. Most of OpenIO’s API usage is located in ./codebook/lib/openio.py.
Disclaimer: All of this code is completely free to view and/or use in your own projects. Do NOT use this project in production, as code is naively run on the host computer. I would recommend running restricted docker containers for something like this.