tag:blogger.com,1999:blog-26388630760376486592024-03-17T00:22:03.757-07:00IdeasJanaka Chathurangahttp://www.blogger.com/profile/14163525502705261991noreply@blogger.comBlogger13125tag:blogger.com,1999:blog-2638863076037648659.post-32870236907967498402016-08-18T23:03:00.000-07:002016-08-18T23:57:17.970-07:00GSoC 2016 - Add MongoDB to Tajo Storage<h2>
<span style="font-size: x-large;"><b><span style="font-family: inherit;">Introduction </span></b></span></h2>
<span style="font-family: inherit; font-size: small;">The purpose of this blog post is to integrate and describe my contribution to Apache Tajo <span style="font-family: inherit;">und<span style="font-family: inherit;">er</span></span> Google Summer of Code Program 2016. Further this post describe issues I faced while implementing the MongoDB storage module for Apache Tajo and what are the possible/required improvements.</span><br />
<span style="font-size: small;"><br /></span>
<span style="font-family: inherit; font-size: small;"><b>Apache Tajo.</b></span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJGS4y2jaFX2A4HDSmT01B-TIZ9NyrBpugc2uMT2xMVz80Npf1XnavkIrl-u_c383JWZVR_yvJrZvkPzEt8oMTql3oM6br9NBtN6CVDjlZV8BIwx3B00ZYfmkgDsVASb9KycvP9NSjkIs/s1600/tajo.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="66" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJGS4y2jaFX2A4HDSmT01B-TIZ9NyrBpugc2uMT2xMVz80Npf1XnavkIrl-u_c383JWZVR_yvJrZvkPzEt8oMTql3oM6br9NBtN6CVDjlZV8BIwx3B00ZYfmkgDsVASb9KycvP9NSjkIs/s200/tajo.png" width="200" /></a></span></div>
<span style="font-family: inherit; font-size: small;"><a href="http://tajo.apache.org/">Apache Tajo</a>™ is a big data warehouse for Apache Hadoop.<b> </b>The key idea is that it supports SQL (actually Relational Database Management Systems) on top of Hadoop file system in a distributed manner. If you are more interested start it from <a href="http://tajo.apache.org/docs/current/getting_started.html">here</a>. </span><br />
<span style="font-family: inherit; font-size: small;"><br /></span>
<br />
<span style="font-family: inherit; font-size: small;"><b>Introduction to the Project - Add MongoDB Support for Apache Tajo</b></span><br />
<span style="font-family: inherit; font-size: small;">Is it only works as a data warehouse for Hadoop? of course not. Since it has a generic structure of reading and writing data, it is possible to connect other data storage systems to Apache Tajo. In other words Tajo will work as a big data warehouse for other storage systems too. All you need is a storage module for particular storage system. In that case, Tajo already contains default storage modules for HDFS, RDBMS(example:- MySQL, PostgreSQL), Amazon S3. My project was to implement a storage module for <a href="https://en.wikipedia.org/wiki/MongoDB">MongoDB</a>. Then <span style="font-family: inherit;">user<span style="font-family: inherit;">s can connec<span style="font-family: inherit;">t <span style="font-family: inherit;">the<span style="font-family: inherit;">ir</span></span> mongodb <span style="font-family: inherit;">databases</span> to A<span style="font-family: inherit;">pache <span style="font-family: inherit;">Tajo and perform quer<span style="font-family: inherit;">ies</span> on them.</span></span></span></span></span></span><br />
<span style="font-size: small;"><br /></span>
<br />
<h2>
<span style="font-family: inherit; font-size: x-large;">Commitment</span></h2>
<ul>
<li><span style="font-family: inherit; font-size: small;">I implemented <span style="font-family: inherit;">the</span> module<span style="font-family: inherit;"> for mongodb storage(tajo-storage-mongodb)</span> <span style="font-family: inherit;"><span style="font-family: inherit;"> inside the <span style="font-family: inherit;">tajo<span style="font-family: inherit;">-storage mo<span style="font-family: inherit;">du<span style="font-family: inherit;">le. </span></span></span></span></span></span><span style="font-family: inherit;">S</span>ource<span style="font-family: inherit;"> code of th<span style="font-family: inherit;">at module</span> can be found <span style="font-family: inherit;">here.</span> <a href="https://github.com/janakact/tajo/tree/TAJO-2079/tajo-storage/tajo-storage-mongodb">https://github.com/janakact/tajo/tree/TAJO-2079/tajo-storage/tajo-storage-mongodb</a></span></span><span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"> </span></span><span style="font-size: small;"><br /></span></li>
</ul>
<ul>
<li><span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;">Commits<span style="font-family: inherit;"> I added to the Apache Tajo code base c<span style="font-family: inherit;">an be found here. Since the code is not y<span style="font-family: inherit;">et merged to the origin<span style="font-family: inherit;">al rep<span style="font-family: inherit;">ository</span><span style="font-family: inherit;">, I have added the<span style="font-family: inherit;"> link in my forked repository. </span></span></span></span><a href="https://github.com/janakact/tajo/commits/TAJO-2079?author=janakact&page=1">https://github.com/janakact/tajo/commits/TAJO-2079?author=janakact&page=1</a></span></span></span></span></li>
</ul>
<ul>
<li><span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">TAJO-20<span style="font-family: inherit;">79 is the branch name for <span style="font-family: inherit;">t<span style="font-family: inherit;">he</span></span> <span style="font-family: inherit;"><a href="https://issues.apache.org/jira/browse/TAJO-2079?filter=12334770">iss</a><span style="font-family: inherit;"><a href="https://issues.apache.org/jira/browse/TAJO-2079?filter=12334770">ue</a>. </span></span></span></span></span></span></span></span></span></span>Build status of that branch can be found at Tra<span style="font-family: inherit;">vis<span style="font-family: inherit;">-CI.</span></span> <a href="https://travis-ci.org/janakact/tajo">https://travis-ci.org/janakact/tajo</a></span></span></li>
</ul>
<ul>
<li><span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;">Furt<span style="font-family: inherit;">he<span style="font-family: inherit;">r I added a user guide document to Apache Tajo</span></span></span><span style="font-family: inherit;"><span style="font-family: inherit;"> Docs. It contains <span style="font-family: inherit;">basic instructions on how to configure a MongoDB <span style="font-family: inherit;">Table Space and how to</span> set-up a MongoDB cluster <span style="font-family: inherit;">using Apache Tajo.</span></span> <a href="https://github.com/janakact/tajo/blob/TAJO-2079/tajo-docs/src/main/sphinx/storage_plugins/mongodb.rst">https://github.com/janakact/tajo/blob/TAJO-2079/tajo-docs/src/main/sphinx/storage_plugins/mongodb.rst</a></span></span></span></span></li>
</ul>
<span style="font-size: small;">For more details on the module I implemented, you can refer to my blog posts.</span><br />
<ul>
<li><span style="font-size: small;"><a href="http://janakact.blogspot.com/2016/06/implemented-components-at-mid-term.html">http://janakact.blogspot.com/2016/06/implemented-components-at-mid-term.html</a></span></li>
<li><span style="font-size: small;"><a href="http://janakact.blogspot.com/2016/05/the-first-week-gsoc.html">http://janakact.blogspot.com/2016/05/the-first-week-gsoc.html</a> </span></li>
</ul>
<span style="font-size: small;"> </span><br />
<ul>
</ul>
<h2>
<span style="font-family: inherit; font-size: x-large;">Issues to be Solved and Future Development</span></h2>
<br />
<span style="font-family: inherit; font-size: small;"><b><span style="font-family: inherit;">T</span>able Scheme <span style="font-family: inherit;">Problem</span></b></span><br />
<span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;">Apache T<span style="font-family: inherit;">ajo <span style="font-family: inherit;">tajo can handel</span> two kinds of table spaces. </span></span></span><br />
<ul>
<li><span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">MetaData provided table<span style="font-family: inherit;"> spaces</span></span></span></span></span></li>
<ul>
<li><span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">Here<span style="font-family: inherit;">, </span>the</span> table<span style="font-family: inherit;">-</span>space it<span style="font-family: inherit;">self provide the meta data o<span style="font-family: inherit;">f</span> tables</span>. It provide<span style="font-family: inherit;">s <span style="font-family: inherit;">data such as,</span></span></span></span></span></span></span></span></li>
<ul>
<li><span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">List of t</span>ables in the data<span style="font-family: inherit;">base</span></span></span></span></span></span></span></span></li>
<li><span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">Table Schem<span style="font-family: inherit;">es</span></span></span></span></span></span></span></span></span></li>
<li><span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">Table Stati<span style="font-family: inherit;">stics<span style="font-family: inherit;"> (<span style="font-family: inherit;">Ex<span style="font-family: inherit;">:<span style="font-family: inherit;">- Number of rows) </span></span></span></span></span></span> </span> </span></span></span></span></span></span></span></span></li>
</ul>
<li><span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">For <span style="font-family: inherit;">examples </span><span style="font-family: inherit;">MySQL <span style="font-family: inherit;">T</span>able Space, </span></span></span></span></span></span></span><span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">PostgreSQL <span style="font-family: inherit;">Table Space</span></span></span></span> </span>can be taken. <span style="font-family: inherit;">They <span style="font-family: inherit;">are well structure<span style="font-family: inherit;">d <span style="font-family: inherit;">d<span style="font-family: inherit;">b systems. They contain all the meta<span style="font-family: inherit;">data required so table space itself can provide meta data</span></span></span></span></span></span></span></span></span></span></li>
</ul>
<li><span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">File Spaces (<span style="font-family: inherit;">Table Spaces whi<span style="font-family: inherit;">ch do n<span style="font-family: inherit;">o</span>t provide metadata) </span></span></span></span></span></span></span></span></span></span></span></span></li>
<ul>
<li><span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">Apache Tajo<span style="font-family: inherit;">'s <span style="font-family: inherit;"><span style="font-family: inherit;">primitive</span> <span style="font-family: inherit;"><span style="font-family: inherit;">functionality</span> is to provide S<span style="font-family: inherit;">Q<span style="font-family: inherit;">L on top of Hadoop<span style="font-family: inherit;"> (or any other file<span style="font-family: inherit;"> system). <span style="font-family: inherit;">File<span style="font-family: inherit;"> system<span style="font-family: inherit;">s</span> can't provide meta<span style="font-family: inherit;">data <span style="font-family: inherit;">them<span style="font-family: inherit;">sel<span style="font-family: inherit;">ves</span> because they do not <span style="font-family: inherit;">keep</span> <span style="font-family: inherit;">s<span style="font-family: inherit;">chem<span style="font-family: inherit;">es<span style="font-family: inherit;">, statistics <span style="font-family: inherit;">inside them. </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></li>
<li><span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">Therefore Tajo mainta<span style="font-family: inherit;">ins a catalog which contains meta<span style="font-family: inherit;">-data of the<span style="font-family: inherit;"> table space<span style="font-family: inherit;">, schema details<span style="font-family: inherit;">, stati<span style="font-family: inherit;">stics<span style="font-family: inherit;">, etc.</span> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></li>
</ul>
</ul>
<span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">MongoDB is <span style="font-family: inherit;">on other hand do not <span style="font-family: inherit;">ha<span style="font-family: inherit;">ve a <span style="font-family: inherit;">schem<span style="font-family: inherit;">e<span style="font-family: inherit;">, but it can provide s<span style="font-family: inherit;">ome kind of metadata such as<span style="font-family: inherit;">,</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br />
<ul>
<li><span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">The list of tables(<span style="font-family: inherit;"><span style="font-family: inherit;">C</span>ollections actu<span style="font-family: inherit;">ally<span style="font-family: inherit;">, Tajo tables are mapped in<span style="font-family: inherit;">to collect<span style="font-family: inherit;">ions in MongoDB)</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></li>
<li><span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">Table <span style="font-family: inherit;">s</span>ta<span style="font-family: inherit;">tistics</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></li>
</ul>
<span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">Therefo<span style="font-family: inherit;">re it <span style="font-family: inherit;">was <span style="font-family: inherit;">encouraged</span> to <span style="font-family: inherit;">implement MongoDB table space as a meta data provided <span style="font-family: inherit;">table<span style="font-family: inherit;">-</span>space<span style="font-family: inherit;">, but <span style="font-family: inherit;">MongoDB do<span style="font-family: inherit;">es</span> n<span style="font-family: inherit;">ot <span style="font-family: inherit;">maintain <span style="font-family: inherit;">a schema. <span style="font-family: inherit;">So s<span style="font-family: inherit;">chema det<span style="font-family: inherit;">ails can't be <span style="font-family: inherit;">provided by the table space<span style="font-family: inherit;">. </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br />
<br />
<span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">At the end<span style="font-family: inherit;"> of the day this leads <span style="font-family: inherit;">not to<span style="font-family: inherit;"> maintain the schema <span style="font-family: inherit;">details by anyone<span style="font-family: inherit;">. </span></span></span></span></span></span> </span></span></span></span></span></span></span></span></span></span></span></span></span></span>Catalog do not maintain it because meta-data is provide by tabl<span style="font-family: inherit;">e<span style="font-family: inherit;">-</span>space, table<span style="font-family: inherit;">-space can't maintain it beca<span style="font-family: inherit;">use MongoDB is schema less. </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br />
<br />
<span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">We<span style="font-family: inherit;"> need to solve this problem<span style="font-family: inherit;">.<span style="font-family: inherit;"> For reading purpose<span style="font-family: inherit;">, this doesn't matter <span style="font-family: inherit;"><span style="font-family: inherit;">too</span> much but for <span style="font-family: inherit;">data insertion<span style="font-family: inherit;"> <span style="font-family: inherit;">schema is <span style="font-family: inherit;">really important<span style="font-family: inherit;">. <span style="font-family: inherit;">Be<span style="font-family: inherit;">c<span style="font-family: inherit;">ause of this issue, <span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">even though appender is <span style="font-family: inherit;">implemented <span style="font-family: inherit;">mongodb-tablespa<span style="font-family: inherit;">ce still</span></span><span style="font-family: inherit;"> do not support insert queries. </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br />
<br />
<span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><b>Support Nested Columns</b></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br />
<span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">Apache <span style="font-family: inherit;">Tajo supports <span style="font-family: inherit;">nested columns in it<span style="font-family: inherit;">s tables. MongoDB also supports nested col<span style="font-family: inherit;">umns as <a href="https://docs.mongodb.com/manual/tutorial/model-embedded-one-to-one-relationships-between-documents/">Embedded Documents.</a> </span> </span></span></span></span>T<span style="font-family: inherit;">he <span style="font-family: inherit;">current implementation of<span style="font-family: inherit;"> <a href="https://github.com/janakact/tajo/tree/TAJO-2079/tajo-storage/tajo-storage-mongodb">tajo-storage-mongodb</a> do not support ne<span style="font-family: inherit;">sted columns. It should be implemente<span style="font-family: inherit;">d in the future. </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br />
<br />
<span style="font-size: small;"><b><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">Query Testing for<span style="font-family: inherit;"> Insertion</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></b></span><br />
<span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">Becau<span style="font-family: inherit;">se of the schema problem <span style="font-family: inherit;">mongodb table space do not support i<span style="font-family: inherit;">nsert queries. <span style="font-family: inherit;">All the internal work <span style="font-family: inherit;">for data insertion to mongo<span style="font-family: inherit;">db table space is done<span style="font-family: inherit;">, ther<span style="font-family: inherit;">e<span style="font-family: inherit;">fore <span style="font-family: inherit;">ASAP the schem<span style="font-family: inherit;">a problem is resolved t<span style="font-family: inherit;">he <span style="font-family: inherit;">Q<span style="font-family: inherit;">uery</span> Testing for <span style="font-family: inherit;">I</span>nsertion should be ena<span style="font-family: inherit;">ble<span style="font-family: inherit;">d(test-co<span style="font-family: inherit;">de is already added</span>). </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br />
<br />
<span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><b><span style="font-family: inherit;">Improving</span> <span style="font-family: inherit;">P<span style="font-family: inherit;">er<span style="font-family: inherit;">formance </span></span></span></b></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br />
<span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">Performance of the module can be improved in <span style="font-family: inherit;">vari<span style="font-family: inherit;">ous aspects. For a example higher le<span style="font-family: inherit;">vel </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">projections<span style="font-family: inherit;"> and </span>filtering can be push-downed to the MongoDB for better performance.</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br />
<br />
<span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">So that's it. :<span style="font-family: inherit;">-) </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br />
<br />
<span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">Last but not lea<span style="font-family: inherit;">st I <span style="font-family: inherit;">want to thank </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><a href="https://github.com/blrunner"><span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">J<span style="font-family: inherit;">aehwa<span style="font-family: inherit;"> Jung</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></a><span style="font-family: inherit;">(my mentor), </span><span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><a href="https://github.com/jihoonson"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">Jihoon So<span style="font-family: inherit;">n</span></span></span></span></a></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> and other member<span style="font-family: inherit;">s of </span>Apache Tajo <span style="font-family: inherit;">community for he<span style="font-family: inherit;">lpi<span style="font-family: inherit;">ng<span style="font-family: inherit;"> and </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="color: black;"><span style="font-weight: 400;">immensely guiding </span></span></span> me throughout the project.</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br />
<span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><br /></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">I<span style="font-family: inherit;"> got a great exposure to many technologies and concepts<span style="font-family: inherit;">.</span></span> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit; font-size: small;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;"><span style="font-family: inherit;">I<span style="font-family: inherit;">t was one of the best experiences in my life<span style="font-family: inherit;"> </span>(As a programmer it's the <span style="font-family: inherit;">best experience up to now <span style="font-family: inherit;">;-) and I am planning to contribute <span style="font-family: inherit;">mo<span style="font-family: inherit;">re <span style="font-family: inherit;">in the fut<span style="font-family: inherit;">ure<span style="font-family: inherit;">. </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span style="font-family: inherit; font-size: small;"> </span>Janaka Chathurangahttp://www.blogger.com/profile/14163525502705261991noreply@blogger.com8tag:blogger.com,1999:blog-2638863076037648659.post-46193232375874912112016-06-24T12:50:00.001-07:002016-07-18T07:09:56.433-07:00Implemented Components at the Mid Term Evaluation - GSoC 2016 It's 25th July and the mid term evaluation of GSoC is in this week. This post is about my progress in past four weeks. This post contains a list of implemented components and their purposes. Further my understanding, and plans on the implementation of other components.<br />
<br />
<b>List of implemented components</b><br />
<br />
Maven Module: (<a href="https://github.com/janakact/tajo/tree/TAJO-2079-FileSpace/tajo-storage/tajo-storage-mongodb">https://github.com/janakact/tajo/tree/TAJO-2079-FileSpace/tajo-storage/tajo-storage-mongodb</a>) contains following java classes.<br />
<ul>
<li>ConnectionInfo.java</li>
<li>MongoDBFragment.java</li>
<li>MongoDBFragmentSerde.java</li>
<li>MongoDBMetadataProvider.java</li>
<li>MongoDBTableSpace.java</li>
<li>MongoDBScanner.java </li>
<li>MongoCollectionReader</li>
<li>MongoDocumentDeserializer</li>
</ul>
<div>
Further, for testing purpose following classes were implemented.</div>
<div>
<ul>
<li>MongoDBTestServer.java</li>
<li>TestConnectionInfo.java</li>
<li>TestMetadataProvider.java</li>
<li>TestMongoDBTableSpace.java</li>
<li></li>
<li>TestMongoDBQueryTest.java</li>
</ul>
<div>
Next section contains a brief description about each class mentioned above. </div>
<div>
<b><br /></b></div>
<div>
<b>ConnectionInfo</b></div>
<div>
Connection info is the class I use to keep the mongodb connection info. It's main purpose is to convert the given URI into a MongoColientURI. An object can be connected using fromURI static method and it the object contains the relevant MongoClientURI. Conversion is done by parsing the provided URI and mapping relevant parameters into a new MongoClientURI object.</div>
<div>
<br /></div>
<div>
<b>MongoDBFragment</b></div>
<div>
MongoDBFragment is an extension of Fragment abstract class in the storage-common module. Fragment is like splits in map reduce. In other words table space divides the data set into splits, and send them to be processes separately. It has start_key and end_key which defines the range of the fragment. At the moment I didn't implemented that functionality because at the moment the table space takes the whole data-set as a single fragment. </div>
<div>
<div>
<br /></div>
<div>
<b>MongoDBFragmentSerde</b></div>
</div>
<div>
MongoDBFragmentSerde is the java class which is used to serialize the MongoDBFragment class. Fragment has to send to remote clusters for processing purposes, there for it should be able to be serialized in to a string and send. It is done using <a href="https://developers.google.com/protocol-buffers/">Google's Protocol Buffer</a>. For that protoc buff need Serd class which can be used to serialize and deserialize the fragment class.</div>
<div>
<br /></div>
<div>
<b>MongoDBMetadataProvider</b></div>
<div>
Metadata Provider provides meta data regarding the table space. It has following important methods getTables() and getTableDesc(). Since the mongo collection is mapped to a table in tajo, getTables() return the list of collections. getTableDesc() returns the table details, such as table stats and column descriptions. Here lies a problem. Since mongodb is schema less I can't provide column descriptions, but one of my mentor thought it's better if I can implement a meta data provider.<br />
<br />
<b>MongoDBTableSpace</b><br />
MongoDBTableSpace extends the TableSpace class to support the mongo storage system. It is the base class of this module. MongoDB table space will be defined using this class and also it has create table, purge table methods.<br />
<br />
<b>MongoDBScanner</b><br />
Since I implemented a meta data provider I was thinking to implement this as a normal storage system which provides schema such as jdbc. There was an error so I couldn't figure out. So I asked the for the help from one of my mentors Jihoon, (He is the one who implemented example-storage-module). At the moment we both are trying to figure out a solution. Meanwhile I wanted to implement Scanner anyway. Therefore I created a new branch <a href="https://github.com/janakact/tajo/tree/TAJO-2079-FileSpace">TAJO-2079-FileSpace</a> which support mongodb as a file storage system. Anyway today I was able to run it. Scanner works fine and it can read data from mongo collections. Select query works. Still do not support composite attributes.<br />
<b><br /></b>
<b>MongoCollectionReader</b><br />
This class is quite similar to the json line reader in example storage module. It provide iterating functionality through documents of a collection. It returns results as Tuples according to the target projection.<br />
<br />
<b>MongoDocumentDeserializer</b><br />
This is used to parse and convert a given document into a Tuple. At the moment it is implemented similar to the json deserializer. Actually mongo documents can be converted to a json string easily. Therefore, this class currently do is convert the document into a json object and convert. Which should be improved for performance in the future.<br />
<br />
<br />
Next section I am going to describe testing approach.<br />
<br />
<b>MongoDBTestServer.java</b></div>
<div>
This class is to create and host a mongodb instance in the localhost for testing. It further loads data from json files in the data set and create Mongo Collections. Mongo Instance is created using <span style="box-sizing: border-box; color: #4078c0; font-family: inherit; line-height: 26px; outline-width: 0px;"><a data-pjax="#js-repo-pjax-container" href="https://github.com/flapdoodle-oss/de.flapdoodle.embed.mongo" style="box-sizing: border-box; color: #4078c0; line-height: 26px; outline-width: 0px;">flapdoodle.embed.mongo</a>. </span>When It runs for the first time it downloads mongodb for relevent platform. Jihoon think it can be a problem for continues integration if it doesn't happen quickly. Finally it register mongodb table space in tajo for testing.</div>
<div>
<br /></div>
<div>
<b>TestConnectionInfo.java </b></div>
<div>
This is a simple Unit Test Class for ConnectionInfo class. It does not use MongoDBTestServer instance. </div>
<div>
<br /></div>
<div>
<b>TestMetadataProvider.java</b></div>
<div>
This is to check the functionality of MetadataProvider. It uses the server and get metadata provider for databases through the tablespace. In <a href="https://github.com/janakact/tajo/tree/TAJO-2079-FileSpace">TAJO-2079-FileSpace</a> branch this test is disabled. It is because file spaces do not provide meta data.</div>
<div>
<br /></div>
<div>
<b>TestTableSpace.java</b></div>
<div>
This class is to test the functionality of table space. It test the handler, create, delete functinality and methods such as getMetadataProvider method. </div>
<div>
<br /></div>
<div>
<b>TestMongoDBQueryTest</b></div>
<div>
This class is to test the table space for queries. It's parent class is QueryTestCaseBase. It runs simple tests using query files and compares results with result files. At the moment it only runes select query.</div>
<div>
<br /></div>
<div>
That is the description of currently implemented modules. </div>
<div>
<br /></div>
<div>
<b>Regarding the current situation of the project.</b></div>
<div>
Original branch for this issue is<a href="https://github.com/janakact/tajo/tree/TAJO-2079/tajo-storage/tajo-storage-mongodb"> TAJO-2079</a> but as I mentions in the scanner section, there was an issue in the metadata provided table space. Therefore I decided to create it as file table space for now and improve it to support metadata in the future. So I created a new branch <a href="https://github.com/janakact/tajo/tree/TAJO-2079-FileSpace/tajo-storage/tajo-storage-mongodb">TAJO-2079-FIleSpace</a>. It contains the mongo-table-space as a file storage system(Tajo it self keep all metadata). And I implemented scanner for that. To see the scanner you have to visit TAJO-2079-FileSpace branch. Since file space do not have a metadata provider, to see the functionality of MetadataProvider you have to visit TAJO-2079 branch. </div>
</div>
<div>
<br /></div>
<div>
Next blog post will be about how the mapping is done from MongoDB to Tajo-Tables. :) </div>
<div>
</div>
<div>
<br /></div>
<br />
<br />
<br />
<br />Janaka Chathurangahttp://www.blogger.com/profile/14163525502705261991noreply@blogger.com0tag:blogger.com,1999:blog-2638863076037648659.post-31401072466665678682016-05-30T09:35:00.001-07:002016-07-18T07:10:14.553-07:00Automate the build and run in local machine - GSoC 2016Wrote a small bash script today. Just few lines. It do these things specifically,<br />
<div>
<ul>
<li>Build tajo-storage-mongodb module and copy the .jar file to the snapshot. The snap shot is already configured to use mongo storage.</li>
<li>Remove the logs. </li>
<li>Start tajo. </li>
<li>Wait for a little and open the log file with gedit. </li>
<li>Stop tajo </li>
</ul>
<div>
Lol. It is really a small script, but it simplified my work a lot.<br />
<br />
Anyway I was able to run tajo with this configurations. </div>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7ITpOWAEQoUGBF_bUCUmMxHAe12pnbPeyl0uc7iSTGu3q59-m4fL4Jwt6DSYINZYay0fDa3yknHEmevLXWfBiq8a7ovXntEz6Nrz2gWpPFaiKskUpl5jcZpmgX4-BsJBCvjWfELDDSE8/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="73" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7ITpOWAEQoUGBF_bUCUmMxHAe12pnbPeyl0uc7iSTGu3q59-m4fL4Jwt6DSYINZYay0fDa3yknHEmevLXWfBiq8a7ovXntEz6Nrz2gWpPFaiKskUpl5jcZpmgX4-BsJBCvjWfELDDSE8/s640/1.png" width="640" /></a></div>
<div>
Of course table space don't do anything yet but seeing something like this makes me really happy. :D</div>
Janaka Chathurangahttp://www.blogger.com/profile/14163525502705261991noreply@blogger.com0tag:blogger.com,1999:blog-2638863076037648659.post-4617187710609762062016-05-30T08:31:00.001-07:002016-05-30T10:05:17.758-07:00The First Week ( GSoC )The beginning of the coding period was not actually rushing as expected. This week was allocated to discuss the architecture of the module, with my mentors. Actually it was done a long before. Of course still there are questions regarding the architecture but they can't be solved before hand. They will be solved during the implementation. It's agile guys!<br />
<br />
<h3>
Project at the moment</h3>
<div>
Created a new <a href="https://github.com/janakact/tajo/tree/TAJO-2079/tajo-storage/tajo-storage-mongodb">module</a> for mongodb storage plugin which is going to be implemented throughout the summer by me ;) </div>
<div>
Created the following main classes by implementing those interfaces and abstract classes.</div>
<div>
<ul>
<li>MongoDbTableSpace</li>
<li>MongoDbFragment</li>
<li>MongoDbScanner </li>
<li>MongoDbAppender</li>
</ul>
<div>
Also implemented a class called <b>ConnectionInfo </b>to keep MongoDB connection. When I implement it copplied a lot from the JDBC connection info class. Thank you <a href="https://github.com/blrunner/">blrunner</a>. Hope you will not be mad at me about that. ;)</div>
</div>
<div>
<br /></div>
<h3>
Problems and Solutions</h3>
Let's discuss about some questions came across in the first week. The first question was regarding the newly created module. When I buld using mvn command it says the module was build successfully but the relevant jar was not in the snapshot. I couldn't find why was it. Actually I build it several time (around 10 times) by changing pom.xml file several times. Problem was not with the mvn configurations. The module was build in the module directory, but it should be copied into the snapshot directory. It is done by a command in pom.xml of tajo-storage module. Anyway I added the lien and it started to work fine. <br />
<br />
The next question is replication. It is something complex. ;) The thing is that in configurations for hdfs you can provide multiple hosts. MongoDB also can have multiple hosts as replica. Should the storage plugin I write include that functionality? If so, how the URI passed a question. For a table space details will of the table is given as a URI. By default java URI don't allowed multiple hosts. Then how hdfs do that? It is something to be studied.<br />
<br />
<h3>
Optional</h3>
<div>
I setup the Travis for my GitHub account. It is cool. I mean great. It can be name as one of the coolest things provided in the internet. <a href="http://travis-ci.org/">Traivis</a> automatically build the project in my GirHub repositories. We can configure it with travis.yml. And the best thing is it is completely free for opensource projects. :D :D </div>
<br />Janaka Chathurangahttp://www.blogger.com/profile/14163525502705261991noreply@blogger.com0tag:blogger.com,1999:blog-2638863076037648659.post-45106447176714823972016-05-08T10:43:00.003-07:002016-07-18T07:10:40.153-07:00The Simple Contribution - GSoC 2016<div lang="en-IN" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
Got a
reply from the mongo community. Seems like I have to learn a lot about mapping
document based databases to column based databases.</div>
<div lang="en-US" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div style="font-size: 11.0pt; margin: 0in;">
<span lang="en-IN" style="font-family: "calibri";">Yesterday something marvelous happened. My mentor asked me to do a
commit. Actually he told me how to do it. First I couldn't even understand the
issue, but somehow he explained it really well. I made the changes in my repo
yesterday, today I make the pull
request. Lol, I should have done it yesterday, but I had doubts. Anyway Travi</span><span lang="en-US" style="font-family: "calibri";">s the bot</span><span lang="en-IN" style="font-family: "calibri";"> is doing tests automatically. I don't have to worry about
that. </span><span lang="en-IN" style="font-family: "segoe ui symbol";">😂</span><span lang="en-IN" style="font-family: "calibri";"> I think what I edited do not effect
unit tests or integration tests but </span><span lang="en-US" style="font-family: "calibri";">Jaehwa said that after testing with MariaDB server, he'll prepare to
commit my patch.</span></div>
<div lang="en-US" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<div lang="en-US" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
Further I
got an email from a student(Subashini Hariharan) who is doing her Masters. She
wants to add Cassandra plugin for Tajo as her Master's project. I don't know
whether it is enough for that but I think it's a great idea. I think it is
possible and will be easier to do compared to the MongoDB. So I introduced her
to my mentors. </div>
<div lang="en-US" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
<br /></div>
<br />
<div lang="en-US" style="font-family: Calibri; font-size: 11.0pt; margin: 0in;">
Still I
need to understand the storage module architecture. It can't be much
complicated. I want understand how to map Mongo Collections to Tajo tables. Thing is that we don't have much time. So many assignments and
submissions. I am going to go through Storage Module again today. That's it for
today. </div>
Janaka Chathurangahttp://www.blogger.com/profile/14163525502705261991noreply@blogger.com0tag:blogger.com,1999:blog-2638863076037648659.post-31039726925328947742016-04-27T10:11:00.001-07:002016-04-27T10:11:22.097-07:00Moving On - GSoC 2016So far, I filled Google Tax form. It get rejected once and submitted again. Hope this time it will not be rejected. In the development process still no progress. The thing is that I am busy with a lot of academic works these days. Poor me!<br />
<br />
Also I have interviews for internships in the next semester. What a tragedy. Anyway, I have to get prepared for it too.<br />
<br />
But I found some solutions for above scenarios. Part of my semester project is to develop a web service to collect data from a mobile application. Yeah I have to develop mobile app too ;)<br />
I chose to develop the web service using java and MongoDB. ;-)<br />
Now I have to use mongo driver for that. I am using it as a pre-project to get familiar with mongo java driver. Today I tried it with several applications, works fine. I am positive. :D :D<br />
<br />
Now I am gonna connect a MySQL database in my local machine with the Tajo in the virtual machine. ;) Thanks to VMware, it has a virtual network card too. I can just ping from my physical machine to virtual machine. Funny. ;) I am following Jaehwa's <a href="https://github.com/blrunner/tajo/blob/TAJO-2068/tajo-docs/src/main/sphinx/storage_plugins/mysql.rst">docs</a>.<br />
<br />
Finally, GSoC Payoneer account thing is really complicated. I always have doubts about that. What to do. This looks like a diary, isn't it? Never mind. It's public anyway.Janaka Chathurangahttp://www.blogger.com/profile/14163525502705261991noreply@blogger.com0tag:blogger.com,1999:blog-2638863076037648659.post-18740429686872945052016-04-23T10:45:00.003-07:002016-04-27T10:11:54.449-07:00මීයා ගේ කතාව<div style="background-color: white; border: 0px; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.5em; outline: 0px; padding: 0px; vertical-align: baseline;">
මේකත් තව තැනක තිබිල ගෙනාපු එකක්. :D</div>
<div style="background-color: white; border: 0px; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.5em; outline: 0px; padding: 0px; vertical-align: baseline;">
මගේ ඔලුවට මීයෙක් ගැන අදහසක් අවේ කොතනින්ද කියල හරියටම කියන්න අමාරුයි. මතක විදිහට ඕක ආවේ අර “හොර පූසෙක්_ _ _ _, බටු මීයෙක් ටකස් ටකස්”. ඉතින් කොහෙන් හරි ඔය අදහස ඔලුවට ආව. ඊට පස්සේ ඉතින් ඔය සිතුවිලි දාමය විකාර පාරවල් වල ගිහින් නතර වුණේ හරිම අපූරු තැනක.</div>
<div style="background-color: white; border: 0px; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.5em; outline: 0px; padding: 0px; vertical-align: baseline;">
මං හිතන්නේ ඔය ගොඩක් අය අහල ඇති ජන්මෙට වඩා පුරුද්ද ලොකුයි කියල කතාවක්. මේක ගැන ප්රශ්නයක් තිබිල තියෙනවා අපේ රටේ හිටිය ප්රසිද්ද හිමිවරුන් දෙනමක් වන වීදාගම මෛත්රී හිමියන් සහ තොටගමුවේ ශ්රී රාහුල හිමියන් අතර. රාහුල හාමුදුරුවෝ කියන්නේ වීදාගම හිමියන්ගේ ගෝල හිමි නමක්. කොහොම හරි කතාව මේකයි. වීදාගම හිමියෝ පූසෙකුට පුරුදු කරලා තියනවා පහන අල්ලන්න. ඒ කිව්වේ තමන් වැඩක් කරන කොට පූසා ඉතින් පහන අල්ලගෙන ඉන්නවා. ඉතින් වීදාගම හාමුදුරුවෝ කිව්වලු ජන්මෙට වඩා පුරුද්ද ලොකුයි කියල. මේක දැකපු ගෝල රාහුල හාමුදුරුවෝ දවසක් ගුරු හිමියන් ගේ කුටියට යනකොට මීයෙක් ව අරන් ගිහින් ඇත හැරියලු. පූසා මීයෙක් ව දැක්කම කරන දේ අමුතුවෙන් කියන්න ඕනේ නෑ නේ. ඌ පහන පැත්තක ට දාල මීය පස්සේ පන්නගෙන ගියාලු. කොහොම හරි ඉතින් රාහුල හිමියෝ ඔප්පු කළා ලු ජන්මේ ලොකුයි කියල.</div>
<div style="background-color: white; border: 0px; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.5em; outline: 0px; padding: 0px; vertical-align: baseline;">
ඕක ඉතින් පොත් පත් වලත් සඳහන් වෙනවා. දැන් මට ඇතිවිච්ච ප්රශ්නෙ තමයි ඔය කියන මීයට මොකද වුනේ කියන එක. ඌ පූසට අහුවුනාද? නැත්නම් පණ බේරාගෙන පැනගත්තද ? කියල කව්රුවත් දන්නෙ නෑ. ඇත්තටම කියනවා නම් ඒ මීය ගැන ඊට පස්සේ පොත්පත් වල සඳහනක් නෑ.ඔව් ඉතින් එකෙ පුදුමෙකුත් නෑ. කව්ද මීයෙක් ගැන හිතන්නේ. කොහොම හරි අර මීය නො සෑහෙන්න පින් කරලා තියෙන්න ඇති ඔය තරම් වත් කතාවට ඇතුලත් වෙන්න. “කොහොම හරි කමක් නෑ නියමයි මීයෝ උඹ ඉතිහාස ගත උනානේ, පූසට අහුවෙලා මැරුණත් මොකෝ”<br />
(දැන් ඉතින් උඹල පූසා ගැන අහන්න එපා. උටත් ඔය ටිකම තමයි. හැබැයි ඉතින් ඌ මීයගෙන් මැරුම් කන්න නම් නැතුව ඇති)</div>
<div style="background-color: white; border: 0px; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.5em; outline: 0px; padding: 0px; vertical-align: baseline;">
ඉතින් අපි හැමෝම එක එක විදිහට ජීවත් වෙනවා. මැරිලා යනවා. සමහරු ඉතිහාස ගතවෙනවා. ගොඩක් අය අර මීය තරම් වත් ඉතිහාසෙට එක් වෙන්නේ නෑ. ඒක ඉතින් අපේ වැරද්දක් නෙවෙයි. හැමෝටම ඉතිහාස ගත වෙන්න බෑ නේ.</div>
<div style="background-color: white; border: 0px; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.5em; outline: 0px; padding: 0px; vertical-align: baseline;">
හරි ඉතින් එච්චරයි. ඔබ සැම මෙය කියවා තම තම නැණ පමණින් කැමති කැමති දෙයක් සිතාගන්න. කියවූ ඔබ සැමට පිං෴</div>
Janaka Chathurangahttp://www.blogger.com/profile/14163525502705261991noreply@blogger.com0tag:blogger.com,1999:blog-2638863076037648659.post-87497833876744444862016-04-23T10:43:00.001-07:002016-04-27T10:11:42.250-07:00මුදිතා<div style="background-color: white; border: 0px; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.5em; outline: 0px; padding: 0px; vertical-align: baseline;">
මේක සෑහෙන කාලෙකට ඉස්සර ලියපු පොස්ට් එකක්. වෙන බ්ලොග් එකක තිබුනේ. තැන තැන තියල බෑ කියල තේරිලා දැන් ඔක්කොම එකකට ගෙනාව. ඉතින් මේ පොස්ට් එකටත් අලුත් නවාතැනක්.. ;)</div>
<div style="background-color: white; border: 0px; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.5em; outline: 0px; padding: 0px; vertical-align: baseline;">
බුද්ධාගමේ කියවෙන සතර බ්රහ්ම විවරණ වලින් එකක් තමයි මුදිතාව. මං මෙච්චරකල් අඩුවෙන්ම තේරුම් අරන් තිබුනේ ඕක.<br />
මෙත්තා කරුණා උපේක්ෂා ගැන නිතරම කතාකරන සමාජය මුදිතාවට දෙන්නෙ කුඩම්මාගේ සැලකිල්ල කියලයි මට හිතෙන්නේ. කොහොම උනත් දැන් අපේ අයට අඩුවෙන්ම තියෙන දෙයක් තමයි ඕක.<br />
ඔක්කොටොම කලින් බලමු මොකද්ද මේ මුදිතාව කියන්නේ කියල.<br />
මං දන්නා විදිහට නම් “වෙන කෙනෙක් ගේ සාර්ථකත්වයක් දැකල සතුටු වෙන එක” වගේ දෙයක්. හැබැයි මෙතන වැදගත් ම දේ තමා තමන් ඒකට අයිතියක් කියන්නෙ නැතුව සරල වචනයෙන් කියනවනම් “පැත්තක ඉඳන්” සතුටු වෙන එක තමා ඔය කියන්නෙ. ජීවිතේ ට දන්නෙ නැති කෙනෙක්ට උනත් හරියනවා දැකල සතුටු වෙන එක තමා මුදිතාව කියන්නෙ.<br />
අමුතුවෙන් කියන්න ඕනේ නැහැ. වර්තමාන සමාජයේ ගොඩක් දෙනෙක් ට ඔය කියන ගුණය නැහැ. දෙමව්පියෝ ළමයින් ගේ සාර්ථකත්වය දැකල සතුටු වෙන එක ඕකට අයිති වෙන්න විදිහක් නෑ මට තේරෙන විදිහට. මොකද ඒගොල්ලෝ වෙන ළමයෙක්ගෙ සාර්ථකත්වය දැකල එහෙම සතුටු වෙන්නෙ නැති නිසා. හැබැයි සමහර දෙමව්පියොත් ඉන්නවා එහෙම.</div>
<div style="background-color: white; border: 0px; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.5em; outline: 0px; padding: 0px; vertical-align: baseline;">
කොහොම හරි. ඕක තමයි කියන්න තියෙන්නේ. බුදු දහම කියන්නේ මගේ මගේ කියල ගොඩ ගහගන්න කියල දෙන ආගමක් නෙවෙයි. ගොඩ ගහන එකේ නිසරු බව කියල දෙන ආගමක්. තන්හාව කියන දේ පොඩ්ඩක් වත් තියාගන්න එපා කියල තමා කියන්නේ. එතකොට ජීවිතේ සතුටින් ගෙවන්න ලෙහෙසියි. තව කෙනෙක් ට හරි යනවා දැකල සතුටු වෙන්න පුළුවන් එතකොට ලෙහෙසියෙන් ම. ඉතින් සතුටු වෙන්න. මැරෙනකන් සතුටින් ජීවත් වෙලා, පොළවට පස් වෙලා යන්න.</div>
Janaka Chathurangahttp://www.blogger.com/profile/14163525502705261991noreply@blogger.com0tag:blogger.com,1999:blog-2638863076037648659.post-35280653356024922262016-04-23T10:40:00.001-07:002016-04-23T10:41:09.755-07:00The First Commit - GSoC 2016<span style="font-family: "verdana" , sans-serif;">This is something I should have started while before. Last month I applied for Google Summer of Code. My project was to add MongoDB support for Apache Tajo. The thing is that I got selected. I got the email today.</span><br />
<blockquote class="tr_bq">
<b><span style="font-family: "verdana" , sans-serif;">:D :D Yaai.. Congratulations to me! ;) ;)</span></b></blockquote>
<a href="https://summerofcode.withgoogle.com/projects/#4541666853650432"><span style="font-family: "verdana" , sans-serif;">https://summerofcode.withgoogle.com/projects/#4541666853650432</span></a><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">From today onward, I am gonna log my contribution in this blog daily or weekly. Before moving to that here we go with the background and my behaviors up to now.</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">This is not the first time I applied for GSoC. I did it last year but I didn't get in.</span><br />
<blockquote class="tr_bq">
<b><span style="font-family: "verdana" , sans-serif;">"Keep trying, don't settle.!"</span></b></blockquote>
<span style="font-family: "verdana" , sans-serif;"><br /></span><span style="font-family: "verdana" , sans-serif;">This year, I started to go through the organization lists last month when they were announced. Yeah, Apache is a giant one. I am not sure why I chose this project. It's like the only project I understand from the given list by Apache Community. ;) <a href="https://issues.apache.org/jira/browse/TAJO-2079?filter=12334770">https://issues.apache.org/jira/browse/TAJO-2079?filter=12334770</a></span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">I added a comment there. It's great. I got the reply quickly. Then I followed the guide lines. Registered to the mailing list, and waited. I didn't tried to start a new thread because I wanted to know what were the discussions going on at he moment.</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">Waited few days but didn't get any email from the subscription. :/ why is that?</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">Seems like it's better to start a thread. Yeah. I started a thread with the "Add MongoDB to Tajo Storage". Then I got the reply. Ok, no need to go into details. It was Jihoon Son, Jaehwa Jung were the people who helped me through mailing list.</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">Then they gave me permission to edit the confluence wiki of Apache and I started creating my proposal there. <a href="https://cwiki.apache.org/confluence/display/TAJO/Add+MongoDB+to+Tajo+Storage+-+Proposal">https://cwiki.apache.org/confluence/display/TAJO/Add+MongoDB+to+Tajo+Storage+-+Proposal</a></span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">I had a great help from Jaehwa and Jihoon during the application period.</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<span style="font-family: "verdana" , sans-serif;">Meanwhile I setup the development environment. First I setup it in an Ubuntu virtual machine, but it had no enough resources. Then I had to install it as a parallel boot. Now it is time to start development. :D </span>Janaka Chathurangahttp://www.blogger.com/profile/14163525502705261991noreply@blogger.com0tag:blogger.com,1999:blog-2638863076037648659.post-68917876063854113072016-04-03T23:22:00.001-07:002016-04-03T23:22:35.274-07:00Janaka Chathurangahttp://www.blogger.com/profile/14163525502705261991noreply@blogger.com0tag:blogger.com,1999:blog-2638863076037648659.post-67836296406329610462016-04-03T08:13:00.000-07:002016-04-23T10:50:48.990-07:00Me - Janaka Chathuranga<script type="application/ld+json">
{
"@context" : "http://schema.org",
"@type" : "Person",
"name" : "Janaka Chathuranga",
"url" : "http://janakact.blogspot.com/",
"sameAs" : [
"https://www.facebook.com/bjchathuranga",
"https://twitter.com/janakact",
"https://lk.linkedin.com/in/janakachathuranga"
]
}
</script>
<span style="font-family: inherit;">I am Janaka Chathuranga, currently studies at Computer Science and Engineering Department of University of Moratuwa. It is a really difficult thing to describe myself. </span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">Just follow my social profiles to know if you have an interest. </span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">Facebook: </span><a href="https://www.facebook.com/bjchathuranga">https://www.facebook.com/bjchathuranga</a><br />
Twitter: <a href="https://twitter.com/janakact">https://twitter.com/janakact</a><br />
LinkedIn: <a href="https://lk.linkedin.com/in/janakachathuranga">https://lk.linkedin.com/in/janakachathuranga</a>Janaka Chathurangahttp://www.blogger.com/profile/14163525502705261991noreply@blogger.com0tag:blogger.com,1999:blog-2638863076037648659.post-50090358037278381132016-04-03T07:08:00.000-07:002016-04-03T07:08:00.523-07:00අපේ උන්<span style="background-color: white; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px;">උන් හැදුනේ අපෙන්</span><br style="background-color: white; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px;" /><span style="background-color: white; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px;">හුස්ම ගත්තෙ</span><br style="background-color: white; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px;" /><span style="background-color: white; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px;">අපි හදපු වාතය</span><br style="background-color: white; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px;" /><span style="background-color: white; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px;">කෑවෙ අපි හදපු කෑම</span><br style="background-color: white; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px;" /><span style="background-color: white; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px;">හිටියේ අපේ සෙවනේ</span><br style="background-color: white; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px;" /><span style="background-color: white; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px;">පස්සෙ ගෙවල් හැදුවෙත් අපිවම කපල,</span><br style="background-color: white; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px;" /><span style="background-color: white; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px;">ඒ මොනවට වත්</span><br style="background-color: white; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px;" /><span style="background-color: white; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px;">අපේ තරහක් නෑ</span><br style="background-color: white; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px;" /><span style="background-color: white; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px;">එත් මතක තියාගනින් පුතෝ..</span><br style="background-color: white; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px;" /><span style="background-color: white; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px;">උඹල තාමත් කන්නේ අපි හදන කෑම</span><br style="background-color: white; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px;" /><span style="background-color: white; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px;">හුස්ම ගන්නේ අපි හදන වාතය</span>Janaka Chathurangahttp://www.blogger.com/profile/14163525502705261991noreply@blogger.com0tag:blogger.com,1999:blog-2638863076037648659.post-43395703679632311522016-04-03T07:02:00.000-07:002016-04-03T07:02:01.777-07:00Mortality of Democracy<div style="background-color: white; border: 0px; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.5em; outline: 0px; padding: 0px; vertical-align: baseline;">
Everything is mortal, isn’t it?</div>
<h4 style="background-color: white; border: 0px; clear: both; color: #49352f; font-family: 'Poiret One', serif; font-size: 24px; font-weight: normal; margin: 0.75em 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Even though we know that people don’t know we let them decide their(our) future.</span></h4>
<div style="background-color: white; border: 0px; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
<div style="border: 0px; font-family: inherit; font-style: inherit; font-weight: inherit; margin-bottom: 1.5em; outline: 0px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"> </span><span style="border: 0px; font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">I am not going to question your education. I am not here to judge skills of a person, but truth should be told. We are all stupid. </span>We all know that we don’t know. Aren’t we? <span style="border: 0px; font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Maybe you don’t, but at least I’m confident that politicians know that people are stupid. Lol. Everybody knows it.<img alt="😉" class="emoji" draggable="false" src="https://s0.wp.com/wp-content/mu-plugins/emoji/twemoji/svg/1f609.svg" style="background: none !important; border: none !important; box-shadow: none !important; height: 1em !important; margin: 0px 0.05em 0px 0.1em !important; max-width: 100%; padding: 0px !important; vertical-align: -0.1em !important; width: 1em !important;" /></span></div>
</div>
<div style="background-color: white; border: 0px; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
</div>
<h4 style="background-color: white; border: 0px; clear: both; color: #49352f; font-family: 'Poiret One', serif; font-size: 24px; font-weight: normal; margin: 0.75em 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Why do I say people are stupid?</span></h4>
<div style="background-color: white; border: 0px; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
<div style="border: 0px; font-family: inherit; font-style: inherit; font-weight: inherit; margin-bottom: 1.5em; outline: 0px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">May I use the wording “people know nothing” because it is fair than saying people are stupid. Have you ever heard the saying, <a href="http://davetrott.campaignlive.co.uk/2009/03/04/quot-the-wise-man-knows-he-doesn-t-know-the-fool-doesn-t-know-he-doesn-t-know-quot-lao-tzu/" style="border: 0px; color: #f48278; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; text-decoration: none; transition: 0.3s; vertical-align: baseline;">“The wise man knows he doesn’t know, the fool doesn’t know he doesn’t know.” – Lao Tzu</a> Hope you got the point. Let me be more clear. Wise people know that they don’t know. Unwise people think that they know, but they don’t. If we partition people into these two subsets (wise, unwise) there is one thing in common. It is that they don’t know.</span></div>
</div>
<div style="background-color: white; border: 0px; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
</div>
<h4 style="background-color: white; border: 0px; clear: both; color: #49352f; font-family: 'Poiret One', serif; font-size: 24px; font-weight: normal; margin: 0.75em 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Then why democracy?</span></h4>
<div style="background-color: white; border: 0px; color: #555555; font-family: Gudea, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">
<div style="border: 0px; font-family: inherit; font-style: inherit; font-weight: inherit; margin-bottom: 1.5em; outline: 0px; padding: 0px; vertical-align: baseline;">
<span style="border: 0px; font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">Even though we know nothing we decide our leaders. That’s what we call democracy. Why do <strong style="border: 0px; font-family: inherit; font-style: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;">we</strong> decide our leaders. Does it has to be us? We do it because we don’t have another solution. Actually we have not found a solution yet. Maybe we will found a solution in the near future. </span></div>
</div>
Janaka Chathurangahttp://www.blogger.com/profile/14163525502705261991noreply@blogger.com0