Individual Project – Studied two research papers on OLTP Database Partitioning Tools: Horiculture and JECB and wrote a paper to show what I actually learnt. Grade: 95/100

Paper was consisted of Introduction, Problem Statement, Description on the concepts of the tools, Analysis and Comparison, and finally Conclusion.

To show my understanding of both papers, I created my own example of database schema, stored procedures, foreign key constraints and workload trace and applied it throughout all the sections of the paper

Horiculture used branch and bound algorithm to prune the size of search space to find the partition solution that yield the lowest cost. A partition solution may consist of horizontal partitioning of replicated table(s), read-only table(s), secondary index(es) and stored procedure routing parameter(s).

JECB used foreign key relationships to join tables by columns to form join paths and join trees. Then, the joined columns became the partition attributes of the tables. Compatible join attributes were merged and the finer one was used to construct join paths and join trees respectively. To avoid the explosion of search space, compatible join paths and join trees were merged to reduce the number of partition solutions that were constructed. A partition solution was composed of a join tree and and an independent function. An optimal solution was a partition solution where the independent function returned the lowest distributed cost.

Coursera:
1) Programming Cloud Services for Android Handheld Systems: Submitted Quiz 6 and Assignment 2 in the past Sunday. The new assignment looked challenging at first after reading the README file and going through the source codes. Fortunately, code examples provided oAuth2 package that could directly use in the Gradle project. Furthermore, no effort to write CRUD methods to retrieve records from database because Spring Framework’s CRUDRespository class generates them automatically. My solution was create a Spring Controller to expose methods to receive HTTP requests from users. Then, the requests were delegated to CRUDRespository subclass to retrieve data and return it to users. Very simple!!!!

Programming:

2) Start my third AngularJS project that adds photo albums to store pictures taken in Open source Workshops and local meetup groups. This time, the project is bootstrap by Yeoman and Gulp because Matthew told me Gulp is better build system than Grunt. After using angular-gulp-generator to generate the skeleton project, I have to agree with his assessment.