2012-06-15 8 views
5

ho la configurazione di opzioni mongo seguente chiave in primavera:primavera MongoDB scrivere-preoccupazione Valori

<mongo:mongo host="${db.hostname}" > 
    <mongo:options 
    connections-per-host="40" 
    threads-allowed-to-block-for-connection-multiplier="1500" 
    connect-timeout="15000" 
    auto-connect-retry="true" 
    socket-timeout="60000" 
    write-number="1" 
    write-fsync="false"/> 
</mongo:mongo> 

Quello che voglio sapere è sulle diverse opzioni di scrittura numero che è rilevante per scrivere preoccupazione come nessuno, normale, sicuro ecc.

Posso supporre che la mappatura del numero di scrittura sia scritta come segue?

NONE: -1 
NORMAL: 0 
SAFE: 1 (default) 
FSYNC_SAFE: 2 
REPLICAS_SAFE: 3 
JOURNAL_SAFE: 4 
MAJORITY: 5 

seguito collegamento ha fornito un buon aiuto per impostare le opzioni Mongo in primavera, ma non abbastanza specifico per i valori write-numero: How to configure MongoDB Java driver MongoOptions for production use?

risposta

3

Il numero di scrittura-preoccupazione è il valore di "w", che esegue il mapping al numero di repliche a cui deve essere propagata la scrittura prima di essere considerato riuscito quando w> 1.

FSYNC_SAFE esegue l'associazione a write-fsync (true o false) e poiché JOURNAL_SAFE è anche un valore booleano, sospetto che ci sia un ambiente booleano simile in primavera ma non riuscivo a trovarlo in nessuno dei loro d ocs.

Se hai tutto installato per testare il tutto empiricamente, basta provare diverse configurazioni e verificare l'impostazione attuale della preoccupazione scrittura risultante con qualcosa di simile:

 WriteConcern wc = new WriteConcern(); // should get your default write concern 
     System.out.println(wc.getJ()); 
     System.out.println(wc.getFsync()); 
     System.out.println(wc.getW()); 

Questo dovrebbe mostrare impostazione Journal, l'impostazione Fsync (sia booleano), W (come int).

1

È possibile confiture write-preoccupazione = "Riconosciuta".

<mongo:mongo id="replicaSetMongo" replica-set="${mongo.replicaSetSevers}" /> 
    <mongo:db-factory dbname="${mongo.dbname}" mongo-ref="replicaSetMongo" write-concern="ACKNOWLEDGED" /> 
    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"> 
     <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" /> 
    </bean> 

Spero che questo possa essere d'aiuto.

Problemi correlati