To jest pytanie dotyczące projektowania oprogramowania
Pracowałem nad następującą regułą prędkości
cache memory > memory > disk > network
Każdy krok jest 5–10 razy większy od poprzedniego (np. Pamięć podręczna jest 10 razy szybsza niż pamięć główna).
Wygląda na to, że gigabit Ethernet ma opóźnienie mniejsze niż dysk lokalny. Może więc operacje odczytu z dużej zdalnej bazy danych w pamięci są szybsze niż odczyty z dysku lokalnego. To jest jak herezja dla starego timera, takiego jak ja. (Właśnie spędziłem trochę czasu budując lokalną pamięć podręczną na dysku, aby uniknąć konieczności robienia połączeń sieciowych - stąd moje pytanie)
Czy ktoś ma jakieś doświadczenie / liczby / porady w tej dziedzinie?
I tak, wiem, że jedynym prawdziwym sposobem na to jest budowanie i mierzenie, ale zastanawiałem się nad ogólną zasadą.
edycja :
Oto interesujące dane z pierwszej odpowiedzi:
Podróż w obie strony w tym samym centrum danych 500 000 ns
Wyszukiwanie dysku 10 000 000 ns
To dla mnie szok; moim modelem mentalnym jest to, że okrążenie sieci jest z natury wolne. I nie jest - jest 10 razy szybszy niż dysk w obie strony.
Jeff Attwood opublikował ten dobry blog na temat http://blog.codinghorror.com/the-infinite-space-between-words/