<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Database on Bruno Pedro</title><link>https://brunopedro.com/tags/database/</link><description>Recent content in Database on Bruno Pedro</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Tue, 08 May 2018 10:00:15 -0700</lastBuildDate><atom:link href="https://brunopedro.com/tags/database/index.xml" rel="self" type="application/rss+xml"/><item><title>NoSQL Distilled</title><link>https://brunopedro.com/2013/01/20/nosql-distilled/</link><pubDate>Sun, 20 Jan 2013 21:50:10 +0000</pubDate><guid>https://brunopedro.com/2013/01/20/nosql-distilled/</guid><description>&lt;p>&lt;a href="http://www.amazon.com/gp/product/0321826620">&lt;img src="http://martinfowler.com/books/nosql.jpg" alt="NoSQL Distilled">&lt;/a>&lt;/p>
&lt;blockquote>
&lt;p>The term &amp;ldquo;&lt;a href="http://en.wikipedia.org/wiki/NoSQL" title="NoSQL">NoSQL&lt;/a>&amp;rdquo; is very ill-defined. It&amp;rsquo;s generally applied to a number of recent nonrelational databases such as &lt;a href="http://cassandra.apache.org/" title="Apache Cassandra">Cassandra&lt;/a>, Mongo, Neo4J, and &lt;a href="http://wiki.basho.com/" title="Riak">Riak&lt;/a>. They embrace schemaless data, run on clusters, and have the ability to trade off traditional consistency for other useful properties. Advocates of NoSQL databases claim that they can build systems that are more performant, scale much better, and are easier to program with. &amp;ndash; &lt;em>&lt;a href="http://martinfowler.com/books/nosql.html" title="NoSQL Distilled">NoSQL Distilled&lt;/a>, by &lt;a href="http://martinfowler.com/" title="Martin Fowler">Martin Fowler&lt;/a>&lt;/em>&lt;/p></description></item><item><title>RethinkDB looks promising</title><link>https://brunopedro.com/2012/11/10/rethinkdb/</link><pubDate>Sat, 10 Nov 2012 23:14:05 +0000</pubDate><guid>https://brunopedro.com/2012/11/10/rethinkdb/</guid><description>&lt;p>&lt;a href="http://www.rethinkdb.com/blog/rethinkdb-12-release/">RethinkDB is out – an open-source distributed database&lt;/a>&lt;/p>
&lt;blockquote>
&lt;p>RethinkDB is built to store JSON documents, and scale to multiple machines with very little effort. It has a pleasant query language that supports really useful queries like table joins and group by, and is easy to setup and learn.&lt;/p>
&lt;/blockquote>
&lt;p>An open-source &lt;a href="http://en.wikipedia.org/wiki/Distributed_database" title="Distributed database">distributed database&lt;/a> with an intuitive query language, parallelized queries, and much more! It&amp;rsquo;s called &lt;a href="http://www.rethinkdb.com/" title="RethinkDB">RethinkDB&lt;/a> and you can &lt;a href="https://github.com/rethinkdb/rethinkdb" title="rethinkdb">fork it&lt;/a> on GitHub. What&amp;rsquo;s not to like?&lt;/p></description></item><item><title>JavaScript filesystem database</title><link>https://brunopedro.com/2010/12/21/javascript-fs-db/</link><pubDate>Tue, 21 Dec 2010 18:33:00 +0000</pubDate><guid>https://brunopedro.com/2010/12/21/javascript-fs-db/</guid><description>&lt;p>I couldn&amp;rsquo;t resist and, after many conversations with &lt;a href="http://mvalente.eu/" title="Mário Valente">Mário Valente&lt;/a>, I challenged myself to build a complete JavaScript filesystem based database from scratch. In short, something like &lt;a href="http://couchdb.org" title="CouchDB">CouchDB&lt;/a> but written in JavaScript and using a filesystem approach for document storage.&lt;/p>
&lt;p>Some characteristics of this new database system:&lt;/p>
&lt;ul>
&lt;li>fully written in JavaScript: &lt;a href="http://nodejs.org/" title="nodeJS">nodeJS&lt;/a> is my choice for its architecture and portability;&lt;/li>
&lt;li>every document must contain only &lt;a href="http://www.json.org/" title="JSON">JSON&lt;/a> data;&lt;/li>
&lt;li>every document can be manipulated on the filesystem: the idea is to allow someone to edit a document using &lt;a href="http://www.vim.org/" title="vim">vim&lt;/a>, for instance, without breaking anything. It also lets you easily backup, move or replicate your data without creating a heavy load on the database;&lt;/li>
&lt;li>the underlying filesystem can be changed: changing the underlying filesystem offers numerous possibilities, like easy distribution (using &lt;a href="http://www.openafs.org/" title="OpenAFS">OpenAFS&lt;/a>, &lt;a href="http://www.xtreemfs.org/" title="XTREEMFS">XTREEMFS&lt;/a> or others), replication (using &lt;a href="http://code.google.com/p/finefs/" title="finefs">finefs&lt;/a> or others), and even attaching different backends (using &lt;a href="http://fuse.sourceforge.net/" title="FUSE">FUSE&lt;/a>, for example);&lt;/li>
&lt;li>the system must be available through an HTTP &lt;a href="http://en.wikipedia.org/wiki/Representational_State_Transfer" title="REST">REST&lt;/a> interface: this makes it very easy to immediately integrate the system into any existing applications. Bonus points if the API is compatible with CouchDB;&lt;/li>
&lt;li>queries must be performed using a &lt;a href="http://en.wikipedia.org/wiki/MapReduce" title="MapReduce">MapReduce&lt;/a> approach: this should make it very easy to perform queries on a large dataset.&lt;/li>
&lt;/ul>
&lt;p>So, right now I&amp;rsquo;m half way through it. I managed to write the backend and I&amp;rsquo;m on my way to the HTTP REST interface. I&amp;rsquo;ll create a github repo after I have something functional that can be easily built and tested.&lt;/p></description></item></channel></rss>