<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Nosql on Architecture and Data Blog</title>
    <link>https://sadalage.com/tags/nosql/</link>
    <description>Recent content in Nosql on Architecture and Data Blog</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 14 Oct 2014 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://sadalage.com/tags/nosql/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Migrations in NoSQL databases</title>
      <link>https://sadalage.com/post/migrations-in-nosql-databases/</link>
      <pubDate>Tue, 14 Oct 2014 00:00:00 +0000</pubDate>
      <guid>https://sadalage.com/post/migrations-in-nosql-databases/</guid>
      <description>&lt;p&gt;In relational database usage the pattern of migrations is well understood and has gained widespread acceptance. Frameworks such as &lt;a href=&#34;http://dbdeploy.com/&#34;&gt;DBDeploy&lt;/a&gt;, &lt;a href=&#34;http://www.dbmaintain.org/overview.html&#34;&gt;DBMaintain&lt;/a&gt;, &lt;a href=&#34;http://blog.mybatis.org/p/products.html&#34;&gt;MyBatis migrations&lt;/a&gt;, &lt;a href=&#34;http://flywaydb.org/&#34;&gt;Flyway&lt;/a&gt;, &lt;a href=&#34;http://www.liquibase.org/&#34;&gt;Liquibase&lt;/a&gt;, &lt;a href=&#34;http://guides.rubyonrails.org/migrations.html&#34;&gt;Active Record Migrations&lt;/a&gt; and many others. These tools allow to migrate the database and maintain the version history of the database in the database.&lt;/p&gt;&#xA;&lt;p&gt;With the rise of &lt;a href=&#34;http://www.thoughtworks.com/insights/blog/nosql-databases-overview&#34;&gt;NoSQL Databases&lt;/a&gt; and their adoption in development teams we are faced with the problem of migrations in NoSQL databases. What are the patterns of data migrations that work in NoSQL databases? as NoSQL databases are schema free and the database does not enforce any schema validation, the schema of the data is in the application and thus allows for different techniques of data migration.&lt;/p&gt;</description>
    </item>
    <item>
      <title>10 node mongodb ReplicaSet on a Single Machine&#34;</title>
      <link>https://sadalage.com/post/node-mongodb-replicaset-on-a-single-machine/</link>
      <pubDate>Mon, 09 Jun 2014 00:00:00 +0000</pubDate>
      <guid>https://sadalage.com/post/node-mongodb-replicaset-on-a-single-machine/</guid>
      <description>&lt;p&gt;While doing evalauation of NoSQL databases, we had a&#xA;&lt;a href=&#34;http://sadalage.com/blog/2013/04/25/10_node_riak_cluster/&#34;&gt;10 node riak cluster&lt;/a&gt; and wanted check how a similar setup would work with mongodb. So started to setup a 10 node &lt;a href=&#34;http://www.mongodb.org/&#34;&gt;mongodb&lt;/a&gt; cluster. Since this was for initial spikes, we decided to set this up on a single machine as with the other test setup using &lt;a href=&#34;http://basho.com/riak/&#34;&gt;Riak&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Before I explain how we setup 10 node mongodb ReplicaSet, let me talk about replica sets. MongoDB implements replication, providing high availability using &lt;a href=&#34;http://sadalage.com/blog/2010/10/31/replica_sets_in_mongodb/&#34;&gt;replica sets&lt;/a&gt;. In a replica set, there are two or more nodes participating in an asynchronous master-slave replication. The replica-set nodes elect the master node, or primary node, among themselves and when the primary node goes down, the rest of the node elect the new primary node.&lt;/p&gt;</description>
    </item>
    <item>
      <title>10 node Riak cluster on a single machine</title>
      <link>https://sadalage.com/post/node_riak_cluster/</link>
      <pubDate>Thu, 25 Apr 2013 00:00:00 +0000</pubDate>
      <guid>https://sadalage.com/post/node_riak_cluster/</guid>
      <description>&lt;p&gt;When trying to evaluate NoSQL databases, its usually better to try them out. While trying them out, its better to use them with multiple node configurations instead of running single node. Such as clusters in Riak or Replica-set in mongodb maybe even a sharded setup. On our project we evaluated a 10 node Riak cluster so that we could experiment with N, R and W values and decide which values where optimal for us. In Riak here is what N, R and W mean.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Backup in mongodb replica-set configurations</title>
      <link>https://sadalage.com/post/backup_in_mongodb_replica-sets/</link>
      <pubDate>Thu, 27 Dec 2012 00:00:00 +0000</pubDate>
      <guid>https://sadalage.com/post/backup_in_mongodb_replica-sets/</guid>
      <description>&lt;p&gt;There are multiple ways to take backups of mongodb is different configuraitions, one of the configuration that I have been involved recently is replica-sets. When mongodb is running in &lt;strong&gt;replica-set&lt;/strong&gt; configuration, there is a single &lt;strong&gt;primary&lt;/strong&gt; node and multiple &lt;strong&gt;secondary&lt;/strong&gt; nodes. To take backup of the replica-set we can either do a &lt;em&gt;mongodump&lt;/em&gt; of one of the nodes or shutdown one of the secondary nodes and take file copies, since in a replica-set all nodes have the same data (except arbiter). Lets see how we could deal with &lt;em&gt;mongodump&lt;/em&gt; method of taking backup.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Replica sets in MongoDB</title>
      <link>https://sadalage.com/post/replica_sets_in_mongodb/</link>
      <pubDate>Sun, 31 Oct 2010 00:00:00 +0000</pubDate>
      <guid>https://sadalage.com/post/replica_sets_in_mongodb/</guid>
      <description>&lt;p&gt;Replica sets is a feature of MongoDB for Automatic Failover, in this setup there is a primary server and the rest are secondary servers. If the primary server goes down, the rest of the secondary servers choose a new primary via an election process, each server can also be assigned number of votes, so that you can decide the next primary based on data-center location, machine properties etc, you can also start mongo database processes that act only as election tie-breakers these are known as arbiters, these arbiters will never have data, but just act as agents that break the tie.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Schema less databases and its ramifications.</title>
      <link>https://sadalage.com/post/schema_less_databases/</link>
      <pubDate>Tue, 12 Oct 2010 00:00:00 +0000</pubDate>
      <guid>https://sadalage.com/post/schema_less_databases/</guid>
      <description>&lt;p&gt;In the No-SQL land schema-less is a power full feature that is advertised a lot, schema-less basically means you don&amp;rsquo;t have to worry about column names and table names in a traditional sense, if you want to change the column name you just start saving the data using the new column name Lets say you have a document database like mongoDB and you have JSON document as shown below.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;{&#xA;&amp;#34;_id&amp;#34;:&amp;#34;4bc9157e201f254d204226bf&amp;#34;,&#xA;&amp;#34;FIRST_NAME&amp;#34;:&amp;#34;JOHN&amp;#34;,&#xA;&amp;#34;MIDDLE_NAME&amp;#34;:&amp;#34;D&amp;#34;,&#xA;&amp;#34;LAST_NAME&amp;#34;:&amp;#34;DOE&amp;#34;,&#xA;&amp;#34;CREATED&amp;#34;:&amp;#34;2010-10-12&amp;#34;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;You have some corresponding code to read the documents from the database and lets say you lots of data in the database in the order of millions of documents. If you want to change the name of some attributes or columns at this point and the new JSON would look like&lt;/p&gt;</description>
    </item>
    <item>
      <title>Schema design in a document database</title>
      <link>https://sadalage.com/post/schema_design_in_a_document_databases/</link>
      <pubDate>Wed, 28 Apr 2010 00:00:00 +0000</pubDate>
      <guid>https://sadalage.com/post/schema_design_in_a_document_databases/</guid>
      <description>&lt;p&gt;We are using MongoDB on our project, since mongo is document store, schema&#xA;design is somewhat different, when you are using traditional RDBMS data&#xA;stores, one thinks about tables and rows, while using a document database you&#xA;have to think about the schema in a some what different way. Lets say, we want&#xA;to save a customer object, when using a RDBMS we would come up with Customer,&#xA;Address, Phone, Email. They are related to each other as shown below.&#xA;&#xA;  &lt;img src=&#34;https://sadalage.com/img/customer.jpg&#34; alt=&#34;Relational Design&#34;&gt;&#xA;&#xA;&lt;/p&gt;</description>
    </item>
    <item>
      <title>My experience with MongoDB</title>
      <link>https://sadalage.com/post/my_experience_with_mongodb/</link>
      <pubDate>Sun, 18 Apr 2010 00:00:00 +0000</pubDate>
      <guid>https://sadalage.com/post/my_experience_with_mongodb/</guid>
      <description>&lt;p&gt;The current project I&amp;rsquo;m on is using MongoDB. MongoDB is a document based database, it stores JSON objects as BSON (Binary JSON objects). MongoDB provides a middle ground between the traditional RDBMS and the NOSql databases out there, it provides for indexes, dynamic queries, replication, map reduce and auto sharding, its open source and can be downloaded &lt;a href=&#34;www.mongodb.org&#34;&gt;Mongodb&lt;/a&gt;, starting up mongodb is pretty easy.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;./mongod --dbpath=/user/data/db&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;is all you need, where /user/data/db is the path where you want mongo to create its data files. There are many other options that you can use to customize the mongo instance.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
