RavenDB tempi di risposta lunghi per la query, mentre è stato elaborato sul server di molto veloce

StackOverflow https://stackoverflow.com/questions/3811804

  •  26-09-2019
  •  | 
  •  

Domanda

Raven.Server avviato e binded alla porta 8022. inizializzo DataStore nel seguente modo:

        var store = new DocumentStore() { Url = "http://localhost:8022" };
        store.Initialize();

Poi sto facendo come query:

        using (var session = store.OpenSession())
        {
            Stopwatch watch = new Stopwatch();
            watch.Start();

            var result = session.LuceneQuery<Item>("Raven/DocumentsByEntityName")
                .WhereEquals("Tag", "Items")
                .ToList();

            watch.Stop(); // watch.ElapsedMilliseconds == ~550 ms

            return result;

        }

E watch.ElapsedMilliseconds è sempre ~ 550 ms. Ma quando guardo alla console RavenDB vedo che query è stata elaborata in 3 ms:

Request # 170: GET     -    3 ms - 200 - /indexes/Raven/DocumentsByEntityName?query=Tag%253A%255B%255BItems%255D%255D&start=0&pageSize=128

Così ~ 99,5% del tempo sono stati spesi non in RavenDB. Qual è il problema? (RavenDB 147)

quando passo a self-hosting di RavenDB (vale a dire come client incorporato) tutto va bene (~ 3 ms).

Per chiarire tale questione non in rete, http debugger, DNS server, ecc ho anche testato questo:

            Stopwatch watch = new Stopwatch();
            watch.Start();

            WebClient client = new WebClient();
            var result = client.DownloadString("http://127.0.0.1:8022/indexes/Raven/DocumentsByEntityName?query=Tag%253A%255B%255BItems%255D%255D&start=0&pageSize=128");

            watch.Stop(); // watch.ElapsedMilliseconds == ~3-10ms

veloce. Ma il passaggio a Raven.Client.Lightweight tempo aumentare la risposta a 200 volte (550-600 ms)

È stato utile?

Soluzione

Il problema era che a causa del mediatore sul mio computer - NOD32. Se si utilizza anche esso - deselezionare la casella di controllo seguente:

Impostazione -> Configurazione avanzata -> Antivirus e antispyware -> Filtro Protocollo -> "Abilita applicazione contenuti protocal filtraggio"

Semplice disabilitazione di antivirus o firewall, non Aiuto!

Altri suggerimenti

Forse nitpicking e forse solo un tip-o ma a volte le cose più stupide ci può guidare noci;

la sua dichiarazione: "Raven.Server avviato e binded alla porta 8082 inizializzo DataStore nel seguente modo:".

Il tuo esempio di codice legge: "Store var = new DocumentStore () {url = "http: // localhost: 8022 "};"

la porta nel vostro titolo è 8082 e la porta nel tuo esempio è 8022 .

Mi rendo conto che il tuo tip-o non può essere nel vostro codice vero e proprio, ma non fa mai male controllare.

'm jus' sayin'

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top