[ 
https://issues.apache.org/jira/browse/BEAM-9822?focusedWorklogId=435599&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-435599
 ]

ASF GitHub Bot logged work on BEAM-9822:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 20/May/20 18:49
            Start Date: 20/May/20 18:49
    Worklog Time Spent: 10m 
      Work Description: nielm commented on a change in pull request #11529:
URL: https://github.com/apache/beam/pull/11529#discussion_r428235563



##########
File path: 
sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/spanner/SpannerIOWriteTest.java
##########
@@ -263,6 +263,17 @@ private void verifyBatches(Iterable<Mutation>... batches) {
 
   @Test
   public void noBatching() throws Exception {
+
+    // This test uses a different mock/fake because it explicitly does not 
want to populate the
+    // Spanner schema.
+    FakeServiceFactory fakeServiceFactory = new FakeServiceFactory();
+    ReadOnlyTransaction tx = mock(ReadOnlyTransaction.class);
+    
when(fakeServiceFactory.mockDatabaseClient().readOnlyTransaction()).thenReturn(tx);
+
+    // Capture batches sent to writeAtLeastOnce.
+    
when(fakeServiceFactory.mockDatabaseClient().writeAtLeastOnce(mutationBatchesCaptor.capture()))
+        .thenReturn(null);
+

Review comment:
       This test specifically tests that the pipeline stage for reading the 
schema (required for grouping/batching) are not being used, verifying that the 
batching is being bypassed. Yes, this is an implementation detail, but I added 
this part of the test so that future changes do not break this behaviour.
   
   I cannot use the already-created serviceFactory here because that does not 
give me access to the mock ReadOnlyTransaction that I need to verify that 
executeQuery() is never called.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Issue Time Tracking
-------------------

    Worklog Id:     (was: 435599)
    Time Spent: 7h 10m  (was: 7h)

> SpannerIO: Reduce memory usage - especially when streaming
> ----------------------------------------------------------
>
>                 Key: BEAM-9822
>                 URL: https://issues.apache.org/jira/browse/BEAM-9822
>             Project: Beam
>          Issue Type: Bug
>          Components: io-java-gcp
>    Affects Versions: 2.20.0, 2.21.0
>            Reporter: Niel Markwick
>            Assignee: Niel Markwick
>            Priority: P2
>              Labels: google-cloud-spanner
>             Fix For: 2.22.0
>
>          Time Spent: 7h 10m
>  Remaining Estimate: 0h
>
> SpannerIO uses a lot of memory. 
> In Streaming Dataflow, it uses many times as much (because dataflow creates 
> many worker threads)
> Lower the memory use, and change default parameters during streaming to use 
> smaller batches and disable grouping.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to