2013-05-01 1 views
1

Я заметил, что кто-то задал этот вопрос здесь (slow inserts into a capped collection?), но никакого лучшего ответа.написать данные в ограниченную коллекцию слишком медленно

журнал с ударом - мой сборный ввод вставки.

Tue Apr 30 13:12:19.172 [conn870] insert shopbot_slurp.requestLogs ninserted:1 keyUpdates:0 locks(micros) w:53 872ms 
Tue Apr 30 13:12:19.175 [conn1093] insert shopbot_slurp.requestLogs ninserted:1 keyUpdates:0 locks(micros) w:70 1792ms 
Tue Apr 30 13:12:19.182 [conn843] insert shopbot_slurp.requestLogs ninserted:1 keyUpdates:0 locks(micros) w:245206 256ms 
Tue Apr 30 13:12:19.690 [conn886] insert shopbot_slurp.requestLogs ninserted:1 keyUpdates:0 locks(micros) w:64 1392ms 
Tue Apr 30 13:12:19.691 [conn1087] insert shopbot_slurp.requestLogs ninserted:1 keyUpdates:0 locks(micros) w:55 512ms 
Tue Apr 30 13:12:19.692 [conn922] insert shopbot_slurp.requestLogs ninserted:1 keyUpdates:0 locks(micros) w:63 1874ms 
Tue Apr 30 13:12:19.693 [conn937] insert shopbot_slurp.requestLogs ninserted:1 keyUpdates:0 locks(micros) w:503479 511ms 
Tue Apr 30 13:12:19.694 [conn879] insert shopbot_slurp.requestLogs ninserted:1 keyUpdates:0 locks(micros) w:63 1776ms 
Tue Apr 30 13:12:20.475 [conn879] insert shopbot_slurp.requestLogs ninserted:1 keyUpdates:0 locks(micros) w:82 779ms 
........ 

я бегу приложение, которое будет автоматическое ведение журнала операций, что означает, что есть много лога нужно писать в БД от запроса клиента.

> db.requestLogs.stats(); 
{ 
    "ns" : "shopbot_slurp.requestLogs", 
    "count" : 1105917, 
    "size" : 192024340, 
    "avgObjSize" : 173.63359094760276, 
    "storageSize" : 209719296, 
    "numExtents" : 1, 
    "nindexes" : 0, 
    "lastExtentSize" : 209719296, 
    "paddingFactor" : 1, 
    "systemFlags" : 0, 
    "userFlags" : 0, 
    "totalIndexSize" : 0, 
    "indexSizes" : { 

    }, 
    "capped" : true, 
    "max" : NumberLong("9223372036854775807"), 
    "ok" : 1 
} 


>db.system.namespaces.find() 
{ "name" : "shopbot_slurp.requestLogs", "options" : 
{ "create" : "requestLogs","capped" : true, "size" : 209715200, "autoIndexId" : false } } 

ниже мой код вставки:

var doc = new BsonDocument() 
     { 
      {"url",url}, 
      {"verb",verbs}, 
      {"action",action}, 
      {"time",DateTime.Now} 
     };     
var collection = this._database.GetCollection(RequestLogCollectionName); 
collection.Insert(doc, WriteConcern.Unacknowledged); 

MongoDB: 2.4.2 водитель MongoDB: c# 1.7

спасибо за некоторое предложение.

ответ