Showing posts with label comparison. Show all posts
Showing posts with label comparison. Show all posts

Wednesday, May 11, 2011

Couch DB for a MySQL User


At last I found some time to play around with Couch DB. The installation was pretty simple and while working what was striking me was that it was too simple to be true. Just like the guy in the logo of couch DB where a  guy is seated on the sofa full relaxed I was feeling the same :D.Here I have listed a brief comparison with MySQL.

Feature
MySQL
Couch DB
Type of SQL
SQL
No SQL
Which means schema definitions are not needed and querying is free of SQL
Type of database
RDBMS
Document  database
Installation
Depends on the distribution.
Usually straight forward, unless it’s a tar distribution where you need to go through certain steps
I installed on Ubuntu, was straight forward using apt-get.
Server starts up when the OS is booted as per the default configuration.
Administration
Plenty of client applications available. Mysql administrator, Mysql work bench etc.
mysql client is a command line based client.
Futon , a simple built in web tool available to manage the database and execute the views.
Or CURL utility can be used to generate the HTTP requests.
Queries
Usual SQL based queries, where group by, sort and filtering are supported
Using map and reduction functions you can write sorts, sum, average, etc . This is fun and specially who had done programming with Erlang will enjoy this.
Find below a screen shot of a map reduce function.
Security
Support for SSL available
MySQL has permission tables where the permissions are stored and managed
No SSL availability as of now
I guess security is the biggest weakness. It’s still in primitive stage. Apparently there will be some new development.
As of now, the user name password for admin should be defined in the configuration and access control need to be implemented by the application developer.
Replication
Theoretically two way replication supported, but usually not used in production systems.
Usual replication is asynchronous and it’s based on  binary logs(where changes are recorded).
Replication can be triggered from the futon UI it self. It supports two way replication and handles conflict resolution internally, these conflicts are recorded for future references. But the issue is the replication is almost like a snapshot being replicated when triggered and not a continues process by itself. To make it continuous a cron job should be set up to periodically sync the databases or write a script which will be invoked when document updates are made.
Finding server statistics
Show status on mysql command line
http://127.0.0.1:5984/_stats  in futon can be used to retrieve the server statistics
Usual architecture
Application will have  a connector to connect to the database. Applications front end will have the java scripts to render on the client.
Client(java script) -> application server -> database server
Here the calling of the database design views can be directly done by the Client(java script ) making it simple light weight and straight forward.

An example of an aggregate function written with map reduce function is show in the image below. The equivalent SQL query will be select name, average(marks) from employee;

 read my earlier post on Mongo DB for MySQL users by visiting balagowri

Saturday, May 7, 2011

What is 3.75G?

With the recent launch of 3.75G data services in Sri Lanka, there is a lot of discussion about the different numbers associated with the G's.

Almost from the day on which Marconi made the first telephone call the telecom industry has been evolving and the evolution of this is tracked in generations. The voice service was the major focus during the initial stages and a network with the ability to offer only voice service is deemed to be a 1st Generation (1G) network. Then in the second generation (2G) primary data services were introduced. The 3rd Generation was more a standardized procedure and 3GPP maintain the standards.  The 3G specification has evolved and each revision has been named in order, starting from R99 (first version is denoted by the year) , following once in the sequence starting from R4, R5 and currently you could find revisions up to R10.

In the process of commercialization the 3GPP revisions had been marked as 3.5G, 3.75G, 3.9G. I had tried to tabulate the releases, commercial terms, and the features which would make the comparisons easier I guess. Its not complete, will try to update with more details,

Tag
release
Important Feature additions
Data rates
1G

Voice

2G

SMS and Circuit Switched data services
9.6kbps peak data rate
2.5G

General Packet Radio Services (GPRS)

3G
R99
Circuit and Packet Switched
MMS Services
Location Services


R4
Enhancements

3.5G
R5
HSPDA
High-Speed Downlink Packet Access
14Mbps peak data rate
3.75G
R6
High-Speed Uplink Packet Access (HSUPA)
HSPA = HSPDA (from R5) + HSUPA
Multimedia Broadcast Multicast Services (MBMS)
Enables multimedia broadcast services like Mobile TV
14 Mbps peak data rate (HSPDA) +
5.74 Mbps peak data rate (HSUPA)
3.9G
R7
HSPA Evolution/HSPA+
28 Mbps Download peak data rate
11 Mbps Upload peak data rate
4G
R8, R9, R10
Long Term Evolution (LTE)
System Architecture Evolution (SAE)
Focused on Cell Edge User Through put, Average User Throughput, Coverage.



references:

[1] 3G Evolution HSPA and LTE for Mobile Broadband by Erik Dahlman, Stefan Parkvall, Johan Sköld and Per Beming
[2] http://www.3gpp.org/HSPA
[3] http://www.3gpp.org/LTE

Thursday, May 5, 2011

Mobile Money - Do we have a case for Sri Lanka?

Mobile money today has become a very broad term encompassing any monetary type of transaction being done using a mobile device. The GSMA tries to categorize this into 6 [1], Pay buy Mobile, Mobile Ticketing, Mobile Money Advisory Services, Mobile Money Transfer, Mobile Signatures and Mobile Money for Unbanked.


What interest me most is the concept of Mobile Money for Unbanked or to make it sound better the mobile wallet concept. Mobile wallet concept will allow the mobile operators to offer mobile wallets to its subscribers, which will be separate from the air time account. When this service is offered, just like the way we do reload/recharge/top up we can goto the agents(small shops offering top up) and ask them to deposit money to the mobile wallet. But the crucial difference is that we can also goto these agents and make withdrawals or transfers to friends, family, utility payment or purchases using the money in the mobile wallet.

I have seen few countries where this is implemented, but two countries stand out. One is the safaricom's (Kenyan) implementation of M-PESA and the other is Globes (Philiphines) G-Cash. M-Pesa's  success is mind boggling and clearly visible, you get into a taxi and the taxi driver will  be more than willing to accept the payment using a mobile wallet transfer. Cashless transaction taking place at the grass root level. It has become part of peoples lives, just like cash is part of our lives. In the same way G-Cash's implementation has been successful and now it has become an acceptable and affordable international remittance mechanism.

Although its a huge success in Kenya, mobile money hasn't still reached the commercial success of the same magnitude when implemented in its neighboring Tanzania. Lot of debate had been done on this and people are trying to find the reasons for it being successful in some countries and not being so successful in others. I have heard people tell me that its a cultural thing, it depends on the size of the country, depends on the operator who deploys it.

Mobile money has now started to spread fast and the uptake in the developing countries had been very rapid. The GSM world boasts about 100 deployments and 87 on its way [2]. In almost all the deployments, there had been two clear beneficiaries from these implementations, one of them of course are the mobile operators, this is an extra revenue stream for them and it brings in stickiness to the network. Secondly it has benefited the unbanked population, the rural masses who didn't have branches nearby and whose income levels were below a few dollars per day and banking transactions were deemed to be too expensive for them, the masses who considered having cash in hand to be insecure, the people wanted to do to remittances or transfers of small scale. With mobile money being introduced it infused a new kind of economy into the system.

Now the question here is why not in Sri Lanka?

If I am not mistaken currently operators are not allowed to implement the mobile money solution due to a Central bank regulation which doesn't allow non financial institutions to take deposits. I am sure banks will be happy with this regulation being in place, as they could view this as a way of pre-empting a possible competition.  But when the overall context is looked upon I think Sri Lanka is a country which is with a large unbanked population and due to the cost of setting up banking infrastructure reaching them will continue to be a challenge, there is a large community who are in need of having a simple way of making remittances to their loved ones in quick time, still there are places where people consider its insecure to have too much money in hand, hence would prefer to put it into a mobile wallet. this leads to think that the mobile money solution should be allowed into the system. But the challenge will be to regulate and impose a regulation on the organizations offering it. It can be considered as an additional license to the operators I guess, and a regulation where they need to show liquidity to up to a certain percentage of the total deposit they have at hand at any given time. I think as a country we need to work out a viable solution to enable this solution which could help the people at the grass root level.

[1] http://www.gsmworld.com/our-work/mobile_lifestyle/mobile_money/index.htm
[2]http://www.wirelessintelligence.com/mobile-money/unbanked/
[3] http://mmublog.org/blog/
[4] http://www.safaricom.co.ke/index.php?id=250
[5] http://site.globe.com.ph/web/gcash?sid=TcLKosuxpRYAACXipGgAAACde