[
https://issues.apache.org/jira/browse/ACCUMULO-1551?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13733457#comment-13733457
]
Ed Kohlwey commented on ACCUMULO-1551:
--------------------------------------
Keith - yes I am planning to address writing as well. I will try to incorporate
some usage examples as I have the opportunity. My goal is to eventually roll
this out on the server side as well and provide similar enhancements to the
iterator API.
I think this is a little less rigid than typo - it gives the user the option
(and perhaps suggests to them) that their domain model should either
meaningfully interpret all byte arrays, or they shouldn't store data in the
table that can't be converted to their domain model, _but most importantly
gives the user the option_. My main goal is to address the "everyone always
builds some sort of wrapper around the accumulo client api" problem by baking
it into the API, and having some sane defaults available for people to use that
will work with 99% of applications, not having to build a complex wrapper
around the API.
> Introduce Generic Supertypes to Replace Text
> --------------------------------------------
>
> Key: ACCUMULO-1551
> URL: https://issues.apache.org/jira/browse/ACCUMULO-1551
> Project: Accumulo
> Issue Type: Improvement
> Reporter: Ed Kohlwey
>
> I wanted to create a new ticket for my thoughts on this. I'd like to
> introduce a paradigm similar to the object inspectors used in HIVE to get
> data in and out of accumulo.
> The base motivation for this is that the accumulo API is inconsistent. It is
> difficult to use for application developers and creates a lot of confusion to
> new developers because of the inconsistent use of Text, CharSequence, and
> byte[] for representing various parts of the keys. This is totally
> unnecessary and is in my mind a huge black eye.
> Aside from providing a mechanism that could eventually be used to increase
> read performance in the client, this would also provide a simpler paradigm
> for application developers and would accomplish some aspects of ORM, a-la the
> Typo and Gora (although distinct from the goals and scope of Gora).
> I've attached an initial pull request/code review outlining how I think the
> refactoring would work in scanner. Basically, the old API would be preserved
> by introducing generic supertypes, and a class that allows serialization
> directly from the ByteSequence objects.
> While it may be true that some people have highly heterogenous data in their
> table, the worst case scenario here is that you just use the ByteSequences
> directly. This will, however, allow substantially simpler access even in that
> base case by making the access pattern consistent. In other cases, where a
> scan is only done over a particular column, or the data is very homogenous,
> the benefit is even greater.
> https://github.com/ekohlwey/accumulo/compare/apache:trunk...ACCUMULO-1551
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira