Skip to content
Snippets Groups Projects
  1. Jul 11, 2013
    • Marek Vavrusa's avatar
      Single poll-based lighter weight fdset implementation. · b856c6b1
      Marek Vavrusa authored
      The reasons are discussed in #71.
      Namely:
      - transfers are self-paced, TCP clients are divided among threads
      - due to the nature of DNS, most of the connections should be active
      - if not, it is probably an attack, long idling connections are disconnected
      - even then the performance degradation is not so severe
      
      fixes #71
      b856c6b1
  2. Jul 09, 2013
  3. Jun 21, 2013
  4. Jun 12, 2013
    • Marek Vavrusa's avatar
      Removed UDP queue. · 9a3fdac6
      Marek Vavrusa authored
      Two reasons:
      - There's some rare race condition in the queue implementation
      - Doesn't scale and current performance is almost the same (-~2%)
      - Created branch with the queue still retained for future inspection
      9a3fdac6
  5. Jun 07, 2013
  6. May 24, 2013
  7. May 10, 2013
    • Marek Vavrusa's avatar
      Imported mempool from libucw. · 2c5a7a3d
      Marek Vavrusa authored
      Mempool is a type of memory allocator that allows to
      free all allocated elements at once.
      Removed unnecessary string and state operations.
      Licensed under LGPL, same as lists and heap.
      
      Change-Id: I8b8f84f41dcc321f37e51894b5c121f463c4f111
      2c5a7a3d
  8. May 02, 2013
    • Marek Vavrusa's avatar
      Implemented HAT trie longest prefix match + tests. · 8d1f0569
      Marek Vavrusa authored
      General idea is regular search with keeping node stack.
      If node is found, then return current node.
      If node is htable, search for suffixes in htable.
      If anything fails, walk up the visited nodes and check if
      any visited node has value. If yes, then it is a prefix.
      
      f.e. searching for 'abcd'
      visited nodes: root -a-> {1:trie} -b-> {2:htable}
      1. search htable for 'cd', 'c'
      2. retrace to node {1}, does it have value?
      3. yes, node1 is prefix 'ab' for 'abcd'
      
      Change-Id: I622adbe9a127d8317b933af4bf56e1411e2d915f
      8d1f0569
  9. Apr 26, 2013
  10. Apr 25, 2013
    • Marek Vavrusa's avatar
      Updated networking code. · 797d931a
      Marek Vavrusa authored
      - Simplified and decoupled I/O from processing code.
      - Single reader with multiple workers.
      - Reader is bound to specific CPU for lowest possible latency.
      - Reverted to select() instead of fdset wrapper as epoll/kqueue could
        be quite slower for a single or handful of sockets.
      - Reader I/O calls are non-blocking.
      
      General idea is:
      - Reader takes free request from a rx_queue
      - Receives data and pushes it to the tx_queue
      - Worker processes the packets, sends answers and returns the request
        to the rx_queue
      
      Semi lock-free queue is used for communication.
      This is measured to be slightly better than singlethreading, as socket
      contention could be better predicted - the reader cannot check sockets
      for new events when tx_queue is full.
      
      Change-Id: Ifc40889b355404a9e78e10d77c26cb3fc4c58386
      797d931a
  11. Apr 17, 2013
  12. Apr 15, 2013
  13. Apr 06, 2013
  14. Apr 05, 2013
  15. Apr 04, 2013
  16. Mar 28, 2013
  17. Mar 22, 2013
  18. Mar 21, 2013
  19. Mar 19, 2013
  20. Mar 15, 2013
  21. Mar 06, 2013
  22. Mar 05, 2013
  23. Feb 26, 2013
    • Daniel Salzman's avatar
      Basic zone text dump · 5e1ff693
      Daniel Salzman authored
      - Move text zone dump to knot.
      - Separate rrset dump and leave it in libknot.
      - Add auxiliary function for text dump.
      
      refs @2138
      5e1ff693
  24. Feb 20, 2013
  25. Feb 19, 2013
    • Marek Vavrusa's avatar
      Initial implementation of RRL. · 3617cdb7
      Marek Vavrusa authored
      Based on memo and implementation notes from
      Vixie and Schryver.
      http://ss.vix.su/~vixie/isc-tn-2012-1.txt
      
      Basically a token bucket algorithm, no interpolation
      yet. Classification of responses based on:
      <address prefix, resp.class, name, seed>
      
      address prefix = /24 for IPv4, /56 for IPv6
      resp.class = based on rcode,question and ancount
      name = either qname or answer
      seed = secret to harden collision prediction
      
      No SLIP yet.
      3617cdb7
  26. Feb 18, 2013
  27. Feb 12, 2013
Loading