Hello, I'm new to HBase, so excuse me if I make odd questions.
I'm evaluating HBase from its documentation, and am attracted by its broad functionality such as transaction support, secondary index, REST API, MapReduce integration, etc. When I recommended HBase to my colleagues for the internal project, I was asked a question about how column timestamp (version) is useful. They said "One of the good things of key-value stores is the simple and flexible data structure. But HBase has more structural elements than RDB, column family and timestamp, and those additional elements HBase a bit more difficult than RDB. I understand the usefulness of column family, however, in what situations is timestamp used? Is it really necessary?" I couldn't answer their question. Then I searched HBase web site, HBase user mailing list archive, other web sites with keyword "HBase timestamp", and Cassandra's web site for help. But I could not find any information about how the column timestamp (versioning) is useful. Could you tell me in what situations the timestamp is absolutely necessary or at least desirable? Some real world examples are much appreciated. >From the search results, many people don't seem to use the timestamp feature. However, the default maximum versions for each column is 3. If versioning is rarely utilized, doesn't it mean that the storage space for extra two versions is wasted and the default should be one? Please give me your opinions. Is HBase's timestamp feature intended for the following "temporal database"? If so, how do you structure the Person table in the following page? http://en.wikipedia.org/wiki/Temporal_database Regards