--------------------------------------------
On Tue, 12/13/16, elli.valle via Google App Engine 
<[email protected]> wrote:

 Subject: Re: [google-appengine] Re: Reading DBF records from blobstore object 
is VERY SLOW
 To: [email protected]
 Date: Tuesday, December 13, 2016, 8:49 AM
 
 
 --------------------------------------------
 On Tue, 12/13/16, creekmore.william via Google App Engine
 <[email protected]>
 wrote:
 
  Subject: Re: [google-appengine] Re: Reading DBF records
 from blobstore object is VERY SLOW
  To: [email protected]
  Date: Tuesday, December 13, 2016, 6:27 AM
  
  
  --------------------------------------------
  On Tue, 12/13/16, elli.valle via Google App Engine 
<[email protected]>
  wrote:
  
   Subject: Re: [google-appengine] Re: Reading DBF
 records
  from blobstore object is VERY SLOW
   To: [email protected]
   Date: Tuesday, December 13, 2016, 5:37 AM
   
   
   --------------------------------------------
   On Mon, 12/12/16, 'Nicholas (Google Cloud Support)'
 via
   Google App Engine <[email protected]>
   wrote:
   
    Subject: Re: [google-appengine] Re: Reading DBF
  records
   from blobstore object is VERY SLOW
    To: "Google App Engine" <[email protected]>
    Date: Monday, December 12, 2016, 9:30 PM
    
    Every call
    to FetchData is issuing a small network request to
  the
    blobstore.  This will most certainly take time when
   scaling
    to 24,000 fetches.  The reason this is not
  encountered
   when
    testing in the development environment
  (dev_appserver.py)
   is
    that the dev blobstore there is hosted locally on
  you
    rmachine.  As such, the fetch takes as much time as
  a
   local
    file read, not as long as a proper network request.
   This
    latency is in this way definitely reasonable and to
  be
    expected.
    To solve this
    issue, you would need to either reduce the latency
  of
   these
    network calls or reduce the volume of them per
  request to
    this module.  56ms for these Blobstore internal
  calls is
    entirely expected so you won't really be able to cut
    that down.  Thus, we are left with reducing how many
  of
    these calls are made with each
    request.What is this task queue-issued
    request doing during it's lifespan that affects
    thousands of records?
    Is it
    possible for this request to instead be broken up
  into
    multiple requests affecting fewer records?
    If not, why must all records be
    processed in a single request?To
    provide some more practical advice, I would need to
  know
    more about your implementation as with the questions
    above.
    
    On Thursday,
    December 8, 2016 at 11:12:44 AM UTC-5, Mike Lucente
    wrote:Yes, stackdriver
    shows that the blobstore file is being accessed for
  every
    record (/blobstore.FetchData
    (56 ms) for example). But it works fine when run
    locally(?) I would have expected that the blobstore
  would
    function just as a regular file would where opening a
  file
    and reading records is a non-issue. Why is this so
   painfully
    slow when accessing blobstore? Do I have to slurp
  the
   entire
    file into memory and parse it??
    
    
    
    On Wed, Dec 7, 2016 at 4:57
    PM, 'Nicholas (Google Cloud Support)' via Google App
    Engine <google-appengine@
    googlegroups.com> wrote:
    Hey Mike,
    I'm not familiar with dbfpy or
    how it implements iteration but if no other point in
  your
    example consumes much time, it seems iterating
  through
    dbf_in
    might be the issue.  As it implements
    __getitem__ to serve as a stream, it's possible that
    this is what costs cycles by issuing many requests to
  the
    blob reader.  I would strongly recommend using
   Stackdriver
    Trace to see the life of a request and where it
  spends
    the bulk of its time.  Let me know what you find.
    Nicholas
    
    On Tuesday, December 6, 2016 at 1:45:09 PM
    UTC-5, Mike Lucente wrote:I'm using dbfpy
    to read records from a blobstore entry and am unable
  to
   read
    24K records before hitting the 10 minute wall (my
  process
   is
    in a task queue). Here's my code:
        def
    get(self):        count = 0   
        cols =
    ['R_MEM_NAME','R_MEM_ID','R_
    EXP_DATE','R_STATE','R_
    RATING1','R_RATING2']
            blobkey =
    self.request.get('blobkey')       
    blob_reader = blobstore.BlobReader(blobkey)
            dbf_in =
    dbf.Dbf(blob_reader, True)
            try:     
          if dbf_in.fieldNames[0] ==
    'R_MEM_NAME':               
    pass        except:         
      logging.info("Invalid
    record type: %s", dbf_in.fieldNames[0])   
            return
     
          mysql = mysqlConnect.connect('ratings'
    )        db = mysql.db       
    cursor = db.cursor()
            for rec in
    dbf_in:            count = count +
    1            if count == 1:   
                continue
               
    continue
    ---This simple loop
    should finish in seconds. Instead it gets through a
  few
    thousand records and then hits the wall.
    Note the last "continue"
    that I added to bypass the mysql inserts (that I
   previously
    thought were the culprit).
    I'm stumped and
    stuck.
    
    
    
    
    -- 
    
    You received this message because you are subscribed
  to a
    topic in the Google Groups "Google App Engine"
    group.
    
    To unsubscribe from this topic, visit https://groups.google.com/d/
    topic/google-appengine/L- qePUVWekU/unsubscribe.
    
    To unsubscribe from this group and all its topics,
  send an
    email to google-appengine+unsubscribe@
    googlegroups.com.
    
    To post to this group, send email to google-appengine@googlegroups.
    com.
    
    Visit this group at https://groups.google.com/
    group/google-appengine.
    
    To view this discussion on the web visit https://groups.google.com/d/
    msgid/google-appengine/ ba5b7252-e820-403d-9e60-
    df3ad1e02cbb%40googlegroups. com.
    
    For more options, visit https://groups.google.com/d/
    optout.
    
    
    
    
    
    
    
    -- 
    
    You received this message because you are subscribed
  to
   the
    Google Groups "Google App Engine" group.
    
    To unsubscribe from this group and stop receiving
  emails
    from it, send an email to [email protected].
    
    To post to this group, send email to [email protected].
    
    Visit this group at
   https://groups.google.com/group/google-appengine.
    
    To view this discussion on the web visit
  
 
https://groups.google.com/d/msgid/google-appengine/5bd3c0fa-0a14-4938-b40d-e5e2d45daf14%40googlegroups.com.
    
    For more options, visit
   https://groups.google.com/d/optout.
    03rii nationale romanesti  in care s-a solicitat
   respectarea autonomiei ului si garantarea statutului
 sau
   juridic particular  organizarea sa ca un nat
   romanesc  folosirea limbii romane ca limba
   oficiala  respectarea ii romane. Cu toate acestea 
   la 27 decembrie 1860 Habsburgii au decretat iorarea
   Banatului la Ungaria.
   
   -- 
   You received this message because you are subscribed
 to
  the
   Google Groups "Google App Engine" group.
   To unsubscribe from this group and stop receiving
 emails
   from it, send an email to [email protected].
   To post to this group, send email to [email protected].
   Visit this group at
   https://groups.google.com/group/google-appengine.
   To view this discussion on the web visit
  
 
https://groups.google.com/d/msgid/google-appengine/497268820.1604155.1481600242575%40mail.yahoo.com.
   For more options, visit
   https://groups.google.com/d/optout.NOUL
  CADRU TERITORIAL AL ROMaNIEI DUPa MAREA UNIRE 
  PRINCIPA
  
  -- 
  You received this message because you are subscribed to
 the
  Google Groups "Google App Engine" group.
  To unsubscribe from this group and stop receiving emails
  from it, send an email to [email protected].
  To post to this group, send email to [email protected].
  Visit this group at
  https://groups.google.com/group/google-appengine.
  To view this discussion on the web visit
  
https://groups.google.com/d/msgid/google-appengine/1291856725.2584346.1481603251396%40mail.yahoo.com.
  For more options, visit
  https://groups.google.com/d/optout. de
 trupele imperiale. La 21 mai 2 iunie 1848 a avut loc
 masacru  de la unde au fost impuscati 12 tarani
 romani  ceea ce a provocat o puternica a populatiei
 romanesti.
 
 -- 
 You received this message because you are subscribed to the
 Google Groups "Google App Engine" group.
 To unsubscribe from this group and stop receiving emails
 from it, send an email to [email protected].
 To post to this group, send email to [email protected].
 Visit this group at
 https://groups.google.com/group/google-appengine.
 To view this discussion on the web visit
 
https://groups.google.com/d/msgid/google-appengine/1901912163.540089.1481611762961%40mail.yahoo.com.
 For more options, visit
 https://groups.google.com/d/optout. 13   ian    -   3 15   dec    Apare   la   
lasi Romania literara   sub redactia lui Vasile Alecsandn 3 15 martie-23 mai 4 
iun   Conferinta de pace de la Viena Pentru prima data un for european   
recunoaste   importanta   europeana a problemei romanesti18553 15 mart - 23 mai 
 4 iun - Conferinta de pace de la Viena   Se cere unirea Principatelor sub un 
principe strain Rusia cere o consultare electorala populara Austria si Poarta 
se declara impotriva Unirii 4 16 dec  - Austria adreseaza Rusiei un ultimatum 
in care ii cere cedarea unei parti din   Basarabia    libertatea   navigatiei   
pe Dunare  neutralizarea Marii Negre  abolirea protectoratului   exclusiv   
asupra   Principatelor   Rusia accepta acestea drept baza pentru preliminariile 
pacii

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/google-appengine.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/929881573.1939858.1481619278735%40mail.yahoo.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to