Oh, as to my claim of being able to put 2GB into the datastore...
yeah, when I looked at the test it was a unit test and not an
integration test, so the datastore was mocked and it just checked the
correct put call sequence. Sorry for getting excited over nothing :)

On May 24, 12:05 am, Tristan <[email protected]> wrote:
> Ok,
>
> Unfortunately I confirmed the same error you're getting:
>
>   @Inject
>   @Unit
>   MindashDatastoreService md;
>
>   @Test
>   public void putEntitySizeOf9MBShouldWork() {
>     Key key = KeyFactory.createKey("kind", 1);
>     Entity entity = new Entity(key);
>     /* generate ~9MB buffer */
>     byte[] buffer = generateByteBuffer(9000000);
>     Blob blob = new Blob(buffer);
>     entity.setProperty("big", blob);
>     Key result = null;
>     try {
>       result = md.put(entity);
>     } catch (Exception e) {
>       fail("failed put() with exception " + e);
>     }
>     assertTrue(result != null);
>   }
>
> java.lang.AssertionError: failed put() with exception
> com.google.apphosting.api.ApiProxy$RequestTooLargeException: The
> request to API call datastore_v3.Put() was too large.
>         at org.junit.Assert.fail(Assert.java:91)
>         at
> com.mindash.datastore.impl.integration.MindashDatastoreServiceImplIntegrati 
> onTest.putEntitySizeOf9MBShouldWork(MindashDatastoreServiceImplIntegrationT 
> est.java:
> 98)
>         ...
>
> This is discouraging. What do you think should be a good solution for
> this?. If we provide a contract of "eventual consistency" perhaps we
> could use Task Queues to get around the limitation. I'd be happy to
> collaborate.
>
> On May 20, 9:53 am, Tristan <[email protected]> wrote:
>
>
>
>
>
> > I'm looking into it, give me a bit and I will get back to you soon.
>
> > On May 19, 4:03 pm, Mouseclicker <[email protected]> wrote:
>
> > > Not sure that I have understood your code correctly, but as expected I
> > > get the same error:
>
> > > com.google.apphosting.api.ApiProxy$RequestTooLargeException: The
> > > request to API call datastore_v3.Put() was too large.
> > >         at com.google.appengine.tools.development.ApiProxyLocalImpl
> > > $AsyncApiCall.call(ApiProxyLocalImpl.java:288)
> > >         at com.google.appengine.tools.development.ApiProxyLocalImpl
> > > $AsyncApiCall.call(ApiProxyLocalImpl.java:264)
> > >         ...
>
> > > Here is my code (local unit test):
>
> > >         _ds = new
> > > MindashDatastoreServiceImpl(_testUtil.getDatastoreService(), new
> > > DatastoreHelperImpl());
>
> > >     @Test
> > >     public void testSimplePersist() {
> > >         int size = 10 * 1024 * 1000;
> > >         byte[] buf = new byte[size];
> > >         _generator.nextBytes(buf);
>
> > >         Key key = createEntity(buf);
> > >         byte[] buf2 = readEntity(key);
> > >         checkBuffersForEquality(buf, buf2);
> > >     }
>
> > >      private Key createEntity(byte[] buf) {
> > >         Entity ent = new Entity(MY_KIND);
> > >         Blob blob= new Blob(buf);
> > >         ent.setProperty(MY_PROP, blob);
> > >         Key key = _ds.put(ent);
> > >         return key;
> > >       }
>
> > >     private byte[] readEntity(Key key) {
> > >         Entity ent = null;
> > >         try {
> > >             ent = _ds.get(key);
> > >         } catch (EntityNotFoundException e) {
> > >             fail("Failed to read entity from key
> > > (EntityNotFoundException)" + key);
> > >         } catch (EntityCorruptException e) {
> > >             fail("Failed to read entity from key
> > > (EntityCorruptException)" + key);
> > >         }
> > >         Blob blob = (Blob) ent.getProperty(MY_PROP);
> > >         return blob.getBytes();
> > >       }
>
> > > --
> > > You received this message because you are subscribed to the Google Groups 
> > > "Google App Engine for Java" group.
> > > To post to this group, send email to 
> > > [email protected].
> > > To unsubscribe from this group, send email to 
> > > [email protected].
> > > For more options, visit this group 
> > > athttp://groups.google.com/group/google-appengine-java?hl=en.
>
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "Google App Engine for Java" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to 
> > [email protected].
> > For more options, visit this group 
> > athttp://groups.google.com/group/google-appengine-java?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Google App Engine for Java" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group 
> athttp://groups.google.com/group/google-appengine-java?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to