Hi Ed,

I've provided (where I can) answers for your questions to get us
started here. Please see inline.

On Fri, Aug 24, 2012 at 1:23 PM, Ed Kohlwey <[email protected]> wrote:

> Questions:
>
>    1. Are annotations the only way to implement the desired features?

Yes AFAIK. If I'm preempting your thoughts here, I agree that this is
really restrictive (with respect to obtaining a more generalised
design approach for a Gora compiler) but annotations are essential for
for DynamoDBMapper [0] to achieve the correct mappings. As we were
operating under the restrictions of the GSoC timeline, the decision
was made to implement a DynamoDB specific compiler at this stage with
the view of developing a more widely applicable implementation as the
webservices API matured.

>    2. What if other data stores have other annotations? Will we create more
>    compilers for them?

This relates to my answer above... ideally the utopian vision would be
to use implementations which do not restrict us to annotations for
mappings but just now (and as no other options seemed immediately
available) we have the one compiler for Avro based implementations,
one for Amazon DynamoDB (with the aim of having one to cover all web
services back stores if possible) but maybe individual compilers for
other web services stores... this is far from ideal.

>    3. Renato had mentioned that Gora supports "data services" now
>    (presumably in addition to databases). I'm not sure I understand this
>    distinction. I have heard Dynamo is a managed database that implements a
>    model similar to Cassandra. Can you elaborate on this statement?

OK so this relates to the proposed addition of web services to the
gora-core API (namely classes such as QueryWSBase[1],
WSDataStoreBase[2] including specific packages for implementing web
backed datastores of varying natures e.g. file-backed and
webservice-backed) which do not rely upon Avro for serializations
between the data store. For clarification on this point Gora's
Persistent class extends from Avro's SpecificRecord which is certainly
not appropriate for DynamoDB as Amazon uses web service requests for
serializing to and from the data store and retrieving records.
Additionally Avro based stores remain implementations of
PersistentBase (still extending SpecificRecord) whilst the web
services backed stores now implement PersistentWSBase.

The reports which can be found here [4] contain commentary on all of
this as and when we became aware of it during the design and
progression of the project.

I've intentionally not included replies to your thoughts section as I
think it's best for me to leave this to simmer for a bit... also
because I'll most certainly need to read it another once or twice for
it to lodge properly ;)

Hopefully Renato can chime in here with his thoughts, if there is
anything I've failed to include or have stated incorrectly.

Thanks
Lewis

[0] 
http://docs.amazonwebservices.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/dynamodb/datamodeling/DynamoDBMapper.html
[1] 
http://svn.apache.org/repos/asf/gora/branches/goraamazon/gora-core/src/main/java/org/apache/gora/query/ws/impl/QueryWSBase.java
[2] 
http://svn.apache.org/repos/asf/gora/branches/goraamazon/gora-core/src/main/java/org/apache/gora/store/ws/impl/WSDataStoreBase.java
[3] 
http://svn.apache.org/repos/asf/gora/branches/goraamazon/gora-core/src/main/java/org/apache/gora/persistency/ws/impl/PersistentWSBase.java
[4] 
http://svn.apache.org/repos/asf/gora/branches/goraamazon/gora-dynamodb/reporting/

Reply via email to