mongodb-user
[Arriba] [Todas las Listas]

[mongodb-Usuario] MongoDB chunk migración - "Pasos" explicación detall

To: <mongodb-user@xxxxxxxxxxxxxxxx>
Subject: [mongodb-Usuario] MongoDB chunk migración - "Pasos" explicación detallada (en Changlog)
From: JOE YU <smartjoe@xxxxxxxxx>
Date: Wed, 9 Sep 2015 17:35:38 +0000 (UTC)
Delivery-date: Wed, 09 Sep 2015 13:46:52 -0400
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20120806; h=date:from:to:message-id:subject:mime-version:content-type :x-original-sender:x-original-authentication-results:reply-to :precedence:mailing-list:list-id:x-spam-checked-in-group:list-post :list-help:list-archive:sender:list-subscribe:list-unsubscribe; bh=iO+ZIY2YdOn9RrkAPNi1LGkIEzeXvekEDnpRMyW6N+Y=; b=L0YVdcHp09Cysc7ExXW/GKhxcZPB9AmXV81fz4X41Z/NjoHyi0zYmg1jX2j5UEKwdk CrACJ0N6GaTLGExYvFjuPw3AXUFQEWniKInFroxwASdpfaG60TuUYf/AxqnPt+KWPA5n if9keAl3Im9RcBPTgeJ5yCDHn6KYNk6Lx+RX4KVBYDS8SUBChBjL1nxvzRCfRUWqCJBo Nd3/fPneiFPt7KWywnueIyEy6NCqVwUaNwL9ilanuLZgiMVSSTwXkVvyjvFCZLtvhc1a WDH1tOogHpDx+5sIigBSnOnaZ4xwbePIFNr/cwB+vQ1lgwiI9mULlGA+pBRwv3/96CUh 3HEw==
Envelope-to: traductor@xxxxxxxxxxx
List-archive: <http://groups.google.com/group/mongodb-use>
List-help: <http://groups.google.com/support/>, <mailto:mongodb-user+help@googlegroups.com>
List-id: <mongodb-user.googlegroups.com>
List-post: <http://groups.google.com/group/mongodb-user/post>, <mailto:mongodb-user@googlegroups.com>
List-subscribe: <http://groups.google.com/group/mongodb-user/subscribe>, <mailto:mongodb-user+subscribe@googlegroups.com>
List-unsubscribe: <mailto:googlegroups-manage+1044811755470+unsubscribe@googlegroups.com>, <http://groups.google.com/group/mongodb-user/subscribe>
Mailing-list: list mongodb-user@xxxxxxxxxxxxxxxx; contact mongodb-user+owners@xxxxxxxxxxxxxxxx
Reply-to: mongodb-user@xxxxxxxxxxxxxxxx
Sender: mongodb-user@xxxxxxxxxxxxxxxx
Hola Lista,
estoy analizando un *chunk problema de rendimiento de la migración de *mongodb(*v 2.4.6) *sharding grupo.

Después de que comprobar el *changelog de *config *db, *i encontró hay alguna información útil que me puede ayudar para diagnosticar el tiempo más largo utilizado en pasos de detalle.

Primer *i comprobó "*moveChunk.De y" encontrado abajo resultado:

    "paso1 de 6" : 0,
                "paso2 de 6" : 196,
                "paso3 de 6" : 18234,
                "paso4 de 6" : 1551243,
                "paso5 de 6" : 262,
                "paso6 de 6" : 0
        }

Lo parece paso4(F4:*T1-*T5) parcela utilizada de tiempo, entonces *i comprobar el correspondiente *moveChunk.A y intentar imaginar fuera de qué paso en *T1-*T5 consume tiempo loco, aquí es el resultado:

    "paso1 de 5" : 2,
                "paso2 de 5" : 0,
                "paso3 de 5" : 1448987,
                "paso4 de 5" : 0,
                "paso5 de 5" : 741

Lo parece paso3(*T3) es la mayoría de tiempo-consumiendo operación.

Tan *i probado para entender lo que es "paso3 de 5" (*T3) exactamente haciendo. 
Tengo comprueba el *http://*docs.*mongodb.*org/Núcleo/manual/*sharding-*chunk-migración/#*chunk-migración pero hay información detallada no sobre "paso3 de 5".
Y entonces *i encontró un correo similar en SO cuando aquí: *http://*stackoverflow.*com/Cuestiona/18103220/*mongodb-*chunk-migración-pasos-dentro-*changelog-colección , todavía ninguna bastante información en él.

Podría cualquiera da una pista dónde puede *i encontrar el *accurate descripción en paso3 de 5 y otro "*stepX en 6" y *stepY "en 5" o proporcionar una respuesta aquí?



He también comprobar el código de fuente de *mongodb *chunk la migración y el código correspondiente es tan abajo 

    // 3. Inicial *bulk clon  
        CLON estatal;  
        mientras ( cierto ) 
            #unknown{^*BSONObj *res; 
            si ( ! *conn->*runCommand( "*admin" , *BSON( "_*migrateClone" << 1 ) , *res ) )  // #get variedad de objetos para copiar, en estado de orden  
                del disco = FALLA;  
                *conn.Hecho();  
                regreso;  
            }            *BSONObj *arr = *res["objetos"].*Obj();  
            *int *thisTime = 0;  
            *BSONObjIterator *i( *arr );  
            mientras( *i.Más() )  
                #unknown{^*BSONObj *o = *i.Próximo().*Obj();  
                    #unknown{^*PageFaultRetryableSection *pgrs;  
                    Mientras ( 1 )  
                        #verbcj  
                            #nom::*DBWrite *lk( *ns );  
                            *Helpers::*upsert( *ns, *o, cierto );
                            rotura;  
                        }  
                        coge ( *PageFaultException& *e )  
                            #unknown{^*e.Tacto();  
                        }  
                    }  
                }  
                *thisTime++;  
                *numCloned++;  
                *clonedBytes += *o.*objsize();  
                Si ( *secondaryThrottle )  
                    #cnj ( ! *waitForReplication( *cc().*getLastOp(), 2, 60 /* segundos para esperar */ ) ) {  
                    }  
                }  
            }  
            si ( *thisTime == 0 )  
                rotura;  
        }  
    }  

parece *T3 tiene tres tiempo potencial-consumiendo procesos
1) dato leído de F(*rom) lado (I/O de red)
2) inserta a *T(*o) lado (I/O de disco
3) trata "*secondaryThrottle" proceso relacionado con el *replica

Tan en mi caso,  ["paso3 de 5" :1448987] significa mucho I/O de disco (o I/O pobre )? ( *i  No controlando el I/O de red grande y también *i ha puesto *secondaryThrottle=falso)



*Thanks,

Joe

-- 
recibiste este mensaje porque eres *subscribed al *Google Grupos "*mongodb-grupo"
de usuario.

Para otro *MongoDB opciones de apoyo técnico, ve: *http://www.mongodb.org/sobre/apoyo/.
--- 
Recibiste este mensaje porque eres *subscribed al *Google Grupos "*mongodb-grupo" de usuario.
A *unsubscribe de este grupo y la parón que recibe *emails de él, enviar un *email a *mongodb-usuario+unsubscribe@xxxxxxxxxxxxxxxx.
A correo a este grupo, envía *email a *mongodb-user@xxxxxxxxxxxxxxxx.
Visita este grupo en *http://grupos.*google.*com/Grupo/*mongodb-usuario.
Para ver esta discusión en la visita de web *https://grupos.*google.*com/*d/*msgid/*mongodb-Usuario/80Un1F782AAC5*B665.*B0*D8138F-25F4-405F-98*C7-#Uno2*B78345*E#349%40correo.*outlook.*com.
Para más opciones, visita *https://grupos.*google.*com/*d/*optout.
Hello list,
I am analyzing a chunk migration performance problem of mongodb(v 2.4.6) sharding cluster.

After check the changelog of config db, i found there are some useful information that can help me to diagnose the longest time used in detail steps.

First i checked "moveChunk.from" and found below result:

    "step1 of 6" : 0,
                "step2 of 6" : 196,
                "step3 of 6" : 18234,
                "step4 of 6" : 1551243,
                "step5 of 6" : 262,
                "step6 of 6" : 0
        }

It seems step4(F4:T1-T5) used lot of time, then i check the corresponding moveChunk.To and try to figure out which step in T1-T5 consume crazy time, here is the result:

    "step1 of 5" : 2,
                "step2 of 5" : 0,
                "step3 of 5" : 1448987,
                "step4 of 5" : 0,
                "step5 of 5" : 741

It seems step3(T3) is the most time-consuming operation.

So i tried to understand what is "step3 of 5" (T3) exactly doing. 
I have check the http://docs.mongodb.org/manual/core/sharding-chunk-migration/#chunk-migration but there is no detailed information about "step3 of 5".
And then i found a similar post on SO as here: http://stackoverflow.com/questions/18103220/mongodb-chunk-migration-steps-in-changelog-collection , still no enough information on it.

Could any one give a clue where can i find the accurate description on step3 of 5 and other "stepX on 6" and "stepY on 5" or provide a answer here?



I have also check the source code of mongodb's chunk migration and the corresponding code is as below 

    // 3. initial bulk clone  
        state = CLONE;  
        while ( true ) { 
            BSONObj res; 
            if ( ! conn->runCommand( "admin" , BSON( "_migrateClone" << 1 ) , res ) ) {  // gets array of objects to copy, in disk order  
                state = FAIL;  
                conn.done();  
                return;  
            }            BSONObj arr = res["objects"].Obj();  
            int thisTime = 0;  
            BSONObjIterator i( arr );  
            while( i.more() ) {  
                BSONObj o = i.next().Obj();  
                {  
                    PageFaultRetryableSection pgrs;  
                    while ( 1 ) {  
                        try {  
                            Lock::DBWrite lk( ns );  
                            Helpers::upsert( ns, o, true );
                            break;  
                        }  
                        catch ( PageFaultException& e ) {  
                            e.touch();  
                        }  
                    }  
                }  
                thisTime++;  
                numCloned++;  
                clonedBytes += o.objsize();  
                if ( secondaryThrottle ) {  
                    if ( ! waitForReplication( cc().getLastOp(), 2, 60 /* seconds to wait */ ) ) {  
                    }  
                }  
            }  
            if ( thisTime == 0 )  
                break;  
        }  
    }  

It seems T3 has three potential time-consuming processes
1) read data from F(rom) side (network I/O)
2) insert into T(o) side (disk I/O
3) deal with "secondaryThrottle" related process with the replica

So in my case, does ["step3 of 5" :1448987] means a lot of disk I/O (or poor I/O )? ( i did not monitoring the large network I/O and also i have set secondaryThrottle=false)



Thanks,

Joe

-- 
You received this message because you are subscribed to the Google Groups "mongodb-user"
group.

For other MongoDB technical support options, see: http://www.mongodb.org/about/support/.
--- 
You received this message because you are subscribed to the Google Groups "mongodb-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mongodb-user+unsubscribe@xxxxxxxxxxxxxxxx.
To post to this group, send email to mongodb-user@xxxxxxxxxxxxxxxx.
Visit this group at http://groups.google.com/group/mongodb-user.
To view this discussion on the web visit https://groups.google.com/d/msgid/mongodb-user/80A1F782AAC5B665.B0D8138F-25F4-405F-98C7-A2B78345E349%40mail.outlook.com.
For more options, visit https://groups.google.com/d/optout.
<Anterior por Tema] Tema Actual [Siguiente por Tema>