sql >> Database >  >> NoSQL >> Redis

Wat zijn de onderliggende verschillen tussen select, epoll, kqueue en evport?

Over het algemeen hebben alle Async I/O-subsystemen verschillende interne onderdelen, maar in het huidige specifieke geval worden deze concrete asynchrone I/O-bibliotheken gebruikt om zoveel mogelijk platforms te ondersteunen. Dat is:

  • evport =Solaris 10
  • epoll =Linux
  • kqueue =OS X, FreeBSD
  • selecteer =meestal geïnstalleerd op alle platforms als een fallback

Evport , Epoll , en KQueue heb O(1) descriptorselectie-algoritme complexiteit, en ze gebruiken allemaal interne kernelruimtegeheugenstructuren. Ze kunnen ook veel serveren (honderdduizenden) bestandsbeschrijvingen.

Behalve de anderen, select kan slechts maximaal 1024 dienen descriptors, en scant de descriptors volledig (dus elke keer herhaalt het alle descriptors om er een te kiezen om mee te werken), dus de complexiteit is O(n) .




  1. MongoDB $acos

  2. php mongodb zoeken en sorteren in volledige tekst

  3. Bereken de skip-waarde voor een bepaald record voor gesorteerde paging

  4. Zoeken in waarden van een redis db