<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title xmlns="http://www.w3.org/2005/Atom">Dobrica Pavlinušić's random unstructured stuff: MongoDB</title>
  <id xmlns="http://www.w3.org/2005/Atom">https://saturn.ffzg.hr/rot13/</id>
  <link xmlns="http://www.w3.org/2005/Atom" type="text/html" rel="alternate" href="https://saturn.ffzg.hr/rot13/index.cgi?mongodb"/>
  <link xmlns="http://www.w3.org/2005/Atom" type="application/atom+xml" rel="self" href="https://saturn.ffzg.hr%2C%20saturn.ffzg.hr:443/feed/workspace/rot13?page=mongodb;type=Atom"/>
  <updated xmlns="http://www.w3.org/2005/Atom">2010-01-31T13:25:52Z</updated>
  <entry xmlns="http://www.w3.org/2005/Atom">
    <title xmlns="http://www.w3.org/2005/Atom">MongoDB</title>
    <link xmlns="http://www.w3.org/2005/Atom" type="text/html" rel="alternate" href="https://saturn.ffzg.hr/rot13/index.cgi?mongodb"/>
    <content xmlns="http://www.w3.org/2005/Atom" type="html">&lt;div&gt;Creator: Dobrica Pavlinušić&lt;/div&gt;&lt;hr/&gt;&lt;div&gt;Tags: NoSQL&lt;/div&gt;&lt;hr/&gt;&lt;div class="wiki"&gt;
&lt;div class="nlw_phrase"&gt;&lt;table class="wafl_container"&gt;
  &lt;tr&gt;
    &lt;td&gt;
      &lt;div class="wafl_box"&gt;
        
          &lt;div class="wafl_titlebox"&gt;
            &lt;div class="wafl_title"&gt;
              
                Contents: [Dobrica Pavlinušić's random unstructured stuff]
              
            &lt;/div&gt;
          &lt;/div&gt;
          &lt;div class="wafl_items"&gt;
            
              &lt;div class="wiki"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class="nlw_phrase"&gt;&lt;a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#mongodb"&gt;Dobrica Pavlinušić's random unstructured stuff (MongoDB)&lt;/a&gt;&lt;!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] MongoDB} --&gt;&lt;/span&gt;&lt;/li&gt;

&lt;ul&gt;
&lt;li&gt;&lt;span class="nlw_phrase"&gt;&lt;a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#checkout_source"&gt;Dobrica Pavlinušić's random unstructured stuff (Checkout source)&lt;/a&gt;&lt;!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Checkout source} --&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="nlw_phrase"&gt;&lt;a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#install_build_dependencies"&gt;Dobrica Pavlinušić's random unstructured stuff (Install build dependencies)&lt;/a&gt;&lt;!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Install build dependencies} --&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="nlw_phrase"&gt;&lt;a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#build_debian_package"&gt;Dobrica Pavlinušić's random unstructured stuff (Build Debian package)&lt;/a&gt;&lt;!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Build Debian package} --&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span class="nlw_phrase"&gt;&lt;a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#perl_driver"&gt;Dobrica Pavlinušić's random unstructured stuff (Perl driver)&lt;/a&gt;&lt;!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Perl driver} --&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="nlw_phrase"&gt;&lt;a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#binaries"&gt;Dobrica Pavlinušić's random unstructured stuff (Binaries)&lt;/a&gt;&lt;!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Binaries} --&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="nlw_phrase"&gt;&lt;a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#queries"&gt;Dobrica Pavlinušić's random unstructured stuff (Queries)&lt;/a&gt;&lt;!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Queries} --&gt;&lt;/span&gt;&lt;/li&gt;

&lt;ul&gt;
&lt;li&gt;&lt;span class="nlw_phrase"&gt;&lt;a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#pxelator_audit_examples"&gt;Dobrica Pavlinušić's random unstructured stuff (PXElator audit examples)&lt;/a&gt;&lt;!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] PXElator audit examples} --&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="nlw_phrase"&gt;&lt;a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#profile"&gt;Dobrica Pavlinušić's random unstructured stuff (Profile)&lt;/a&gt;&lt;!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Profile} --&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span class="nlw_phrase"&gt;&lt;a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#indexes"&gt;Dobrica Pavlinušić's random unstructured stuff (Indexes)&lt;/a&gt;&lt;!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Indexes} --&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="nlw_phrase"&gt;&lt;a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#comparison_with_couchdb"&gt;Dobrica Pavlinušić's random unstructured stuff (Comparison with CouchDB)&lt;/a&gt;&lt;!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Comparison with CouchDB} --&gt;&lt;/span&gt;&lt;/li&gt;

&lt;ul&gt;
&lt;li&gt;&lt;span class="nlw_phrase"&gt;&lt;a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#disk_usage"&gt;Dobrica Pavlinušić's random unstructured stuff (Disk usage)&lt;/a&gt;&lt;!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Disk usage} --&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="nlw_phrase"&gt;&lt;a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#map_reduce_differences"&gt;Dobrica Pavlinušić's random unstructured stuff (Map/Reduce differences)&lt;/a&gt;&lt;!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Map/Reduce differences} --&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span class="nlw_phrase"&gt;&lt;a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#blog_posts"&gt;Dobrica Pavlinušić's random unstructured stuff (Blog posts)&lt;/a&gt;&lt;!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Blog posts} --&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="nlw_phrase"&gt;&lt;a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#debian_amd64_version"&gt;Dobrica Pavlinušić's random unstructured stuff (Debian amd64 version)&lt;/a&gt;&lt;!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] Debian amd64 version} --&gt;&lt;/span&gt;&lt;/li&gt;

&lt;ul&gt;
&lt;li&gt;&lt;span class="nlw_phrase"&gt;&lt;a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#build"&gt;Dobrica Pavlinušić's random unstructured stuff (build)&lt;/a&gt;&lt;!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] build} --&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="nlw_phrase"&gt;&lt;a title="section link" href="https://saturn.ffzg.hr/rot13/index.cgi?dobrica_pavlinu%C5%A1i%C4%87_s_random_unstructured_stuff#run"&gt;Dobrica Pavlinušić's random unstructured stuff (run)&lt;/a&gt;&lt;!-- wiki: {link: [Dobrica Pavlinušić's random unstructured stuff] run} --&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;
&lt;/div&gt;

            
            
          &lt;/div&gt;
        
      &lt;/div&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;!-- wiki: {toc: }
--&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h1 id="mongodb"&gt;MongoDB&lt;/h1&gt;
&lt;h2 id="checkout_source"&gt;Checkout source&lt;/h2&gt;
&lt;pre&gt;
dpavlin@t61p:/rest/cvs$ git clone git://github.com/mongodb/mongo.git
Initialized empty Git repository in /rest/cvs/mongo/.git/
remote: Counting objects: 32011, done.
remote: Compressing objects: 100% (9340/9340), done.
remote: Total 32011 (delta 22724), reused 31556 (delta 22412)
Receiving objects: 100% (32011/32011), 20.57 MiB | 1.12 MiB/s, done.
Resolving deltas: 100% (22724/22724), done.
&lt;/pre&gt;
&lt;br /&gt;&lt;h2 id="install_build_dependencies"&gt;Install build dependencies&lt;/h2&gt;
&lt;pre&gt;
dpavlin@t61p:/rest/cvs/mongo$ sudo apt-get install \
 libboost-dev libboost-thread-dev libboost-filesystem-dev libboost-program-options-dev libboost-date-time-dev \
 libpcre3-dev xulrunner-dev libreadline-dev
&lt;/pre&gt;
&lt;br /&gt;&lt;h2 id="build_debian_package"&gt;Build Debian package&lt;/h2&gt;
&lt;p&gt;
&lt;tt&gt;debian/control&lt;/tt&gt; file needs modification for unstable: &lt;a target="_blank" title="(external link)" href="http://svn.rot13.org/index.cgi/pxelator/view/mongodb/mongo-debian-control-xulrunner.diff"&gt;http://svn.rot13.org/index.cgi/pxelator/view/mongodb/mongo-debian-control-xulrunner.diff&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;
dpavlin@t61p:/rest/cvs$ cd mongo/

# patch source
dpavlin@klin:/rest/cvs/mongo$ patch -p1 &amp;lt; /srv/pxelator/mongodb/mongo-debian-control-xulrunner.diff 
patching file debian/control

# clean before new build
dpavlin@t61p:/rest/cvs/mongo$ sudo rm -Rf debian/mongodb

dpavlin@t61p:/rest/cvs/mongo$ time dpkg-buildpackage -rfakeroot -b

...

real    6m16.744s
user    5m41.701s
sys     0m19.393s
&lt;/pre&gt;
&lt;br /&gt;&lt;h1 id="perl_driver"&gt;Perl driver&lt;/h1&gt;
&lt;pre&gt;
dpavlin@t61p:/rest/cvs$ git clone git://github.com/mongodb/mongo-perl-driver.git
Initialized empty Git repository in /rest/cvs/mongo-perl-driver/.git/
remote: Counting objects: 1782, done.
remote: Compressing objects: 100% (1673/1673), done.
remote: Total 1782 (delta 1122), reused 0 (delta 0)
Receiving objects: 100% (1782/1782), 1.45 MiB | 747 KiB/s, done.
Resolving deltas: 100% (1122/1122), done.

sudo apt-get install libany-moose-perl libdata-types-perl

dpavlin@t61p:/rest/cvs$ cd mongo-perl-driver/

perl Makefile.PL
make test
sudo dh-make-perl
&lt;/pre&gt;
&lt;br /&gt;&lt;h1 id="binaries"&gt;Binaries&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a target="_blank" title="(external link)" href="http://debian.rot13.org/"&gt;http://debian.rot13.org/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="queries"&gt;Queries&lt;/h1&gt;
&lt;h2 id="pxelator_audit_examples"&gt;PXElator audit examples&lt;/h2&gt;
&lt;pre&gt;
&amp;gt; use pexlator

&amp;gt; db.audit.group({ key:{ 'package.name':true }, initial:{ count: 0 }, reduce:function(o,p) { p.count++ } });

&amp;gt; show profile

11052ms Sun Jan 31 2010 13:24:47
query pxelator.$cmd ntoreturn:1 reslen:690 nscanned:0  
query: { group: { key: { package.name: true }, initial: { count: 0.0 }, ns: &amp;quot;audit&amp;quot;, $reduce: function (o, p) {
    p.count++;
} } }  nreturned:1 bytes:674 11052ms

&amp;gt; db.audit.ensureIndex({ 'package.name':true })

&amp;gt; db.audit.group({ key:{ 'package.name':true }, initial:{ count: 0 }, reduce:function(o,p) { p.count++ } });
&lt;/pre&gt;
&lt;br /&gt;&lt;p&gt;
no visible speed impact.&lt;/p&gt;
&lt;p&gt;
We are really interested only in daemons which aren't null:&lt;/p&gt;
&lt;pre&gt;
&amp;gt; db.audit.ensureIndex( { daemon: true } )
&amp;gt; db.audit.group({
 key: { daemon:true }
,cond: { daemon: { $exists: true } }
,initial: { count: 0 }
,reduce: function(o,p) { p.count++ }
});
&lt;/pre&gt;
&lt;br /&gt;&lt;p&gt;
dhcp count usage by ip&lt;/p&gt;
&lt;pre&gt;
&amp;gt; db.audit.ensureIndex( { &amp;quot;package.name&amp;quot;: true } )

&amp;gt; db.audit.group({ key:{ ip:true }, cond: { &amp;quot;package.name&amp;quot;: &amp;quot;dhcpd&amp;quot; }, initial: { count: 0 }, reduce: function(o,p) { p.count++ } });
&lt;/pre&gt;
&lt;br /&gt;&lt;p&gt;
package usage&lt;/p&gt;
&lt;pre&gt;
&amp;gt; db.setProfilingLevel(2,1000);

&amp;gt; db.audit.group({ key:{ &amp;quot;package.name&amp;quot;:true }, initial:{ count:0 }, reduce:function(o,p){ p.count++ } })

&amp;gt; db.system.profile.find().sort({$natural:-1}).limit(10)

{ &amp;quot;ts&amp;quot; : &amp;quot;Sun Jan 24 2010 15:07:53 GMT+0100 (CET)&amp;quot;, &amp;quot;info&amp;quot; : &amp;quot;query pxelator.$cmd ntoreturn:1 reslen:642 nscanned:0  
query: { group: { key: { package.name: true }, initial: { count: 0.0 }, ns: \&amp;quot;audit\&amp;quot;, $reduce: function (o, p) {
    p.count++;
} } }  nreturned:1 bytes:626 13887ms&amp;quot;, &amp;quot;millis&amp;quot; : 13887 }

&amp;gt; db.audit.ensureIndex({ &amp;quot;package.name&amp;quot;:true })

&amp;gt; db.audit.group({ key:{ &amp;quot;package.name&amp;quot;:true }, initial:{ count:0 }, reduce:function(o,p){ p.count++ } })
&lt;/pre&gt;
&lt;br /&gt;&lt;p&gt;
doesn't help much, because we don't have &lt;tt&gt;cond&lt;/tt&gt; in query.&lt;/p&gt;
&lt;h2 id="profile"&gt;Profile&lt;/h2&gt;
&lt;pre&gt;
&amp;gt; db.setProfilingLevel(2,1000);
{ &amp;quot;was&amp;quot; : 2, &amp;quot;ok&amp;quot; : 1 }
&amp;gt; db.system.profile.find()
&lt;/pre&gt;
&lt;br /&gt;&lt;h1 id="indexes"&gt;Indexes&lt;/h1&gt;
&lt;pre&gt;
&amp;gt; db.system.indexes.find()
{ &amp;quot;name&amp;quot; : &amp;quot;_id_&amp;quot;, &amp;quot;ns&amp;quot; : &amp;quot;pxelator.audit&amp;quot;, &amp;quot;key&amp;quot; : { &amp;quot;_id&amp;quot; : ObjectId(&amp;quot;000000000000000000000000&amp;quot;) } }
{ &amp;quot;ns&amp;quot; : &amp;quot;pxelator.audit&amp;quot;, &amp;quot;key&amp;quot; : { &amp;quot;daemon&amp;quot; : true }, &amp;quot;name&amp;quot; : &amp;quot;daemon_&amp;quot; }
{ &amp;quot;ns&amp;quot; : &amp;quot;pxelator.audit&amp;quot;, &amp;quot;key&amp;quot; : { &amp;quot;key&amp;quot; : &amp;quot;package.time&amp;quot; }, &amp;quot;name&amp;quot; : &amp;quot;key_&amp;quot; }
{ &amp;quot;ns&amp;quot; : &amp;quot;pxelator.audit&amp;quot;, &amp;quot;key&amp;quot; : { &amp;quot;package.name&amp;quot; : true }, &amp;quot;name&amp;quot; : &amp;quot;package.name_&amp;quot; }
&lt;/pre&gt;
&lt;br /&gt;&lt;h1 id="comparison_with_couchdb"&gt;Comparison with CouchDB&lt;/h1&gt;
&lt;p&gt;
Migrate from CouchDB to MongoDB using &lt;a target="_blank" title="(external link)" href="http://svn.rot13.org/index.cgi/pxelator/view/bin/couchdb2mongodb.pl"&gt;http://svn.rot13.org/index.cgi/pxelator/view/bin/couchdb2mongodb.pl&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="disk_usage"&gt;Disk usage&lt;/h2&gt;
&lt;pre&gt;
root@opr:~# du -hc /var/lib/couchdb/0.9.0/.pxelator* /var/lib/couchdb/0.9.0/pxelator.couch
655M    /var/lib/couchdb/0.9.0/.pxelator_design
23M     /var/lib/couchdb/0.9.0/.pxelator_temp
7.8G    /var/lib/couchdb/0.9.0/pxelator.couch
8.4G    total

root@opr:~# du -hc /var/lib/mongodb/pxelator.*
65M     /var/lib/mongodb/pxelator.0
129M    /var/lib/mongodb/pxelator.1
257M    /var/lib/mongodb/pxelator.2
513M    /var/lib/mongodb/pxelator.3
513M    /var/lib/mongodb/pxelator.4
513M    /var/lib/mongodb/pxelator.5
17M     /var/lib/mongodb/pxelator.ns
2.0G    total
&lt;/pre&gt;
&lt;br /&gt;&lt;h2 id="map_reduce_differences"&gt;Map/Reduce differences&lt;/h2&gt;
&lt;p&gt;
CouchDB&lt;/p&gt;
&lt;pre&gt;
# map
function(doc) {
  if ( doc.package.name == 'dnsd' )
   emit(doc.peerhost,1);
}

# reduce
function (k,v) {
 return sum(v);
}
&lt;/pre&gt;
&lt;br /&gt;&lt;p&gt;
MongoDB&lt;/p&gt;
&lt;pre&gt;
&amp;gt; m = function() { emit(this.peerhost,1) }

&amp;gt; r = function(k,vals) { var sum = 0; for (var i in vals) sum += vals[i]; return sum; }

&amp;gt; res = db.audit.mapReduce(m, r, { query:{&amp;quot;package.name&amp;quot;:&amp;quot;dnsd&amp;quot;} } )
{
        &amp;quot;result&amp;quot; : &amp;quot;tmp.mr.mapreduce_1264448081_3&amp;quot;,
        &amp;quot;timeMillis&amp;quot; : 6040,
        &amp;quot;counts&amp;quot; : {
                &amp;quot;input&amp;quot; : {
                        &amp;quot;top&amp;quot; : 0,
                        &amp;quot;bottom&amp;quot; : 204293
                },
                &amp;quot;emit&amp;quot; : {
                        &amp;quot;top&amp;quot; : 0,
                        &amp;quot;bottom&amp;quot; : 204293
                },
                &amp;quot;output&amp;quot; : {
                        &amp;quot;top&amp;quot; : 0,
                        &amp;quot;bottom&amp;quot; : 22
                }
        },
        &amp;quot;ok&amp;quot; : 1,
}

&amp;gt; db[res.result].find().limit(10)
&lt;/pre&gt;
&lt;br /&gt;&lt;p&gt;
Comparison with ad-hoc query&lt;/p&gt;
&lt;pre&gt;
&amp;gt; db.setProfilingLevel(2,1000);

&amp;gt; db.audit.group({ key:{ &amp;quot;peerhost&amp;quot;:true }, cond:{ &amp;quot;package.name&amp;quot;:&amp;quot;dnsd&amp;quot; },
 initial:{ count:0 }, reduce:function(o,p){ p.count++ } })

&amp;gt; db.system.profile.find().sort({$natural:-1}).limit(10)

{ &amp;quot;ts&amp;quot; : &amp;quot;Mon Jan 25 2010 21:21:11 GMT+0100 (CET)&amp;quot;, &amp;quot;info&amp;quot; : &amp;quot;query pxelator.$cmd ntoreturn:1 reslen:1148 nscanned:0  
query: { group: { key: { peerhost: true }, cond: { package.name: \&amp;quot;dnsd\&amp;quot; }, initial: { count: 0.0 }, ns: \&amp;quot;audit\&amp;quot;, $reduce: function (o, p) {
    p.count++;
} } }  nreturned:1 bytes:1132 2161ms&amp;quot;, &amp;quot;millis&amp;quot; : 2161 }
&lt;/pre&gt;
&lt;br /&gt;&lt;p&gt;
So, going through server-side JavaScript is &lt;strong&gt;3x performance penalty&lt;/strong&gt;&lt;/p&gt;
&lt;h1 id="blog_posts"&gt;Blog posts&lt;/h1&gt;
&lt;div class="nlw_phrase"&gt;&lt;div class="fetchrss_box"&gt;
  &lt;div class="fetchrss_titlebox"&gt;
    
  
  
 &lt;div class="fetchrss_title"&gt;
   &lt;a href="https://blog.rot13.org/mt/mt-search.cgi?IncludeBlogs=1&amp;search=MongoDB"&gt;Search Results for MongoDB&lt;/a&gt;
 &lt;/div&gt;


  &lt;/div&gt;
  
 &lt;ul class="fetchrss_items"&gt;
  
  
    
  &lt;li class="fetchrss_item"&gt;
    &lt;a href="https://blog.rot13.org/2010/01/its-about-system-stupid.html"&gt;It's about system, stupid!&lt;/a&gt;
    
  &lt;/li&gt;

  
    
  &lt;li class="fetchrss_item"&gt;
    &lt;a href="https://blog.rot13.org/2010/01/mongodb---so-you-want-fast-nosql-database-which-you-can-grok.html"&gt;MongoDB - so you want fast NoSQL database which you can grok&lt;/a&gt;
    
  &lt;/li&gt;

  
 &lt;/ul&gt;

&lt;/div&gt;
















&lt;!-- wiki: {fetchrss: http://blog.rot13.org/mt/mt-=search.cgi?tag==MongoDB&amp;Template==feed&amp;IncludeBlogs==1}
--&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h1 id="debian_amd64_version"&gt;Debian amd64 version&lt;/h1&gt;
&lt;h2 id="build"&gt;build&lt;/h2&gt;
&lt;pre&gt;
root@klin:~/rest/virtual# debootstrap --arch amd64 squeeze ./mongodb-amd64 http://10.60.0.91:3142/debian

root@klin:~/rest/virtual# chroot mongodb-amd64/

root@klin:/# apt-get install \
 git-core locales dpkg-dev debhelper scons \
 libboost-dev libboost-thread-dev libboost-filesystem-dev libboost-program-options-dev libboost-date-time-dev \
 libpcre3-dev xulrunner-dev libreadline-dev

root@klin:/# cd /srv/
root@klin:/srv# git clone git://github.com/mongodb/mongo.git

root@klin:/srv# cd mongo/
root@klin:/srv/mongo# time dpkg-buildpackage -rfakeroot -b
&lt;/pre&gt;
&lt;br /&gt;&lt;h2 id="run"&gt;run&lt;/h2&gt;
&lt;pre&gt;
dpavlin@klin:~$ sudo chroot /virtual/mongodb-amd64/  su -c '/usr/bin/mongod --dbpath /var/lib/mongodb --logpath /var/log/mongodb/MongoDB.log run' mongodb
&lt;/pre&gt;
&lt;/div&gt;
</content>
    <id xmlns="http://www.w3.org/2005/Atom">https://saturn.ffzg.hr/rot13/index.cgi?mongodb</id>
    <author xmlns="http://www.w3.org/2005/Atom">
      <name xmlns="http://www.w3.org/2005/Atom">Dobrica Pavlinušić</name>
    </author>
    <updated xmlns="http://www.w3.org/2005/Atom">2010-01-31T13:25:52Z</updated>
    <category xmlns="http://www.w3.org/2005/Atom" term="NoSQL" label="NoSQL"/>
  </entry>
</feed>
