Mobile databases
Handphone and mobile devices are becoming ubiquitous and
more and more powerful. Even their software can support a large ecosystem of
applications. That is where the applications vie for the limited resources on
the mobile devices. As a text book says, some of the software problems which
involve data management, transaction management and database recovery have
their origin in distributed data systems and in mobile computing these problems
become more difficult to solve –mainly because of the nature of bandwidth for
the wireless communication channels, relatively short active life of the power
supply and the changing locations of the required information (sometimes in
cache, sometimes in the air, sometimes at the server)
The mobile computing architecture is also slightly
different. It is one where mobile units and base stations communicate through
wireless channels having bandwidths significantly lower than those of a wired
network. The mobile units operate within
geographic mobility domain that is divided into smaller domains called cells.
The mobile discipline requires that the movement of mobile units be
unrestricted within the geographic mobility domain, while having information
access contiguity during movement. The average duration of a user’s stay in the
cell, referred to as the residence latency, is a parameter that is computed and
continuously adjusted.
In this world, the mobile units suffer from the drawbacks
that the database connectivity may be intermittent and may have limited power
source. Clients slip into doze mode to conserve energy. They can be woken up
when the server wants to communicate or the user keeps it active.
Moreover the type of data and data access is different for
mobile applications. Data may be classified into 1) private data – one that is
restricted to the user, 2) public data – one that can be accessed by anyone who
can read it and 3) shared data – data that is accessed both in read and write
modes by groups of users. Mobile databases can be distributed in one of two
ways: The entire database may be distributed mainly among the wired components,
possibly with full or partial replication. The database is distributed among
wired and wireless components. If the database is local to the computer, the
database may need synchronized with the remote. This environment, referred to
as the intermittently synchronized database environment have the following
characteristics: The communication between client and server is unicast or
multicast. A server cannot connect to a client at will. Flakiness of the
connection is immaterial. A client is free to manage its own data and
transactions. A client has multiple ways of connecting to the server.
While today’s application and even mobile database providers
are increasingly relying on wifi hot spots where internet ubiquity and
connection speed and bandwidth have given rise to near wired connection
environment, the classical problem of mobile databases has potential for
untapped market of non-wifi coverages.
Snapshots can provide the last saved version enabling both recovery and file synchronization services. Since snapshots can be taken at any granularity, the low disk and memory footprint for mobile device usage can be maintained. This kind of service becomes external to the database.
#codingexercise
If you are given a number find if the number is colorful. A number is colorful when all the combinations of its digits result in a different product when multiplied.
Solution first we combine, then we find the duplicates in the products resulting from the combinations.
void Combine(ref string digits, ref stringbuilder b, int start, int level, ref List<int>Products)
{
for (int I =start; I < digits.length; I++)
{
if (b[level] != digits[I]){
b[level] = digits[i];
Products.add(calculateProduct(b.toString()));
}
if (I < digits.length)
Combine(ref digits, ref b, start+1, level+1);
if (b[level] == digits[I]){
b[level] = '/0';
}
}
}
void isColorful(List<int>Products)
{
return (Products.Count == Products.distinct().count());
}
Observation the given sequence should not have the digit 1.
Observation the given sequence should not have duplicates.Snapshots can provide the last saved version enabling both recovery and file synchronization services. Since snapshots can be taken at any granularity, the low disk and memory footprint for mobile device usage can be maintained. This kind of service becomes external to the database.
#codingexercise
If you are given a number find if the number is colorful. A number is colorful when all the combinations of its digits result in a different product when multiplied.
Solution first we combine, then we find the duplicates in the products resulting from the combinations.
void Combine(ref string digits, ref stringbuilder b, int start, int level, ref List<int>Products)
{
for (int I =start; I < digits.length; I++)
{
if (b[level] != digits[I]){
b[level] = digits[i];
Products.add(calculateProduct(b.toString()));
}
if (I < digits.length)
Combine(ref digits, ref b, start+1, level+1);
if (b[level] == digits[I]){
b[level] = '/0';
}
}
}
void isColorful(List<int>Products)
{
return (Products.Count == Products.distinct().count());
}
Observation the given sequence should not have the digit 1.
No comments:
Post a Comment