Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
agenda:a0511:mitschrift [2011/09/01 13:03]
Florian Sesser
agenda:a0511:mitschrift [2012/02/20 08:18] (aktuell)
Florian Sesser
Zeile 5: Zeile 5:
 [[http://prezi.com/xareuaotwrho/high-performance-architecture/]] [[http://prezi.com/xareuaotwrho/high-performance-architecture/]]
  
 +== Links ==
   * [[http://www.kegel.com/c10k.html|Dan Kegel on the C10K problem]] >20 Seiten, viele interessante Links.  ftp.cdrom.com auf 1 Maschine (Kegel) mit > 10K gleichzeitigen Verbindungen (1999)   * [[http://www.kegel.com/c10k.html|Dan Kegel on the C10K problem]] >20 Seiten, viele interessante Links.  ftp.cdrom.com auf 1 Maschine (Kegel) mit > 10K gleichzeitigen Verbindungen (1999)
   * [[http://pl.atyp.us/content/tech/servers.html|Jeff Darcy on High-Performance Architecture]] ~ 6 Seiten über auf was man so achten muss   * [[http://pl.atyp.us/content/tech/servers.html|Jeff Darcy on High-Performance Architecture]] ~ 6 Seiten über auf was man so achten muss
   * [[http://urbanairship.com/blog/2010/08/24/c500k-in-action-at-urban-airship/|C500k in Action at Urban Airship]] Blogartikel über (hybrid thread/evented/queue-based, NIO) Java-Server für 500K Verbindungen. Stichwörter: Comet, Push   * [[http://urbanairship.com/blog/2010/08/24/c500k-in-action-at-urban-airship/|C500k in Action at Urban Airship]] Blogartikel über (hybrid thread/evented/queue-based, NIO) Java-Server für 500K Verbindungen. Stichwörter: Comet, Push
 +  * Russ Cox sagt, [[http://swtch.com/~rsc/talks/threads07/|Threads vs. Events sei eine "nonsensical" question. Tolle slides]]!
 +    * Threads sind OK, aber Locking ist boese. Vorschlag einer einfachen Architektur mit Threads und Events:
 +      * Message-passing moves mutable state into single-threaded loop.
 +      * Isolierte Worker Threads.
 +    * Nette Geschichts-Anekdote über die Entstehung von Pipes (~ 1972) ab [[http://swtch.com/~rsc/talks/threads07/#%2823%29|Slide 23]]
 +    * Slide über related languages/Erlang: (Erlang hatte ich in [[http://prezi.com/xareuaotwrho/high-performance-architecture/|meinen Slides]] ganz vergessen)
 +      * Erlang is all message-passing, completely functional.
 +        * Developed at Ericsson telecom starting in late 1980s.
 +        * No way to create shared mutable data.
 +        * Used in many telecommunications apps, with one thread per call!
 +        * Starting to get traction for other network programming.
 +    * [[http://www.sics.se/~adam/pt/duality78.pdf|Lauer and Needham, 1979: On the Duality of Operating System Structures]]
 +      * Threads und Events sind zwei Seiten einer Medallie, und welches System man nutzt, hängt nicht vom Problem, sondern von dem System (der Maschine) ab, auf der man das Problem löst
 +  * [[http://www.usenix.org/events/hotos03/tech/full_papers/vonbehren/vonbehren_html/|Why Events Are A Bad Idea (for high-concurrency servers)]] Rob von Behren, Jeremy Condit and Eric Brewer, HotOS 2003
 +  * [[http://video.google.com/videoplay?docid=810232012617965344|Video: Advanced Topics in Programming Languages: Concurrency/message passing Newsqueak]] Rob Pike May 9, 2007
  
-  * Exkurs Memory-Allokator +Während Diskussion aufgekommen:
-    * Java/C# vs C - GC vs Malloc +
-    * Same page merging +
-    * Cache conscious, Cache oblivious +
-    * Deterministic Paged Skip List - Cache Conscious +
  
   * [[http://developer.apple.com/library/ios/#featuredarticles/Short_Practical_Guide_Blocks/_index.html|LLVM Blocks]]   * [[http://developer.apple.com/library/ios/#featuredarticles/Short_Practical_Guide_Blocks/_index.html|LLVM Blocks]]
Zeile 20: Zeile 32:
   * [[http://x264dev.multimedia.cx/archives/249|Low latency X264]]   * [[http://x264dev.multimedia.cx/archives/249|Low latency X264]]
   * [[http://memcached.org/|Memcached]]   * [[http://memcached.org/|Memcached]]
 +
 +== Notizen ==
 +
 +  * Exkurs Memory-Allokator
 +    * Java/C# vs C - GC vs Malloc
 +    * Same page merging
 +    * Cache conscious, Cache oblivious
 +    * Deterministic Paged Skip List - Cache Conscious
 +  * Wir sind uns einig: Bit indices sind cool.
  
 === Joe's Anekdote / Diskussion zu Scrum === === Joe's Anekdote / Diskussion zu Scrum ===
Zeile 39: Zeile 60:
   * Frank: Oft wird unter Zeitdruck die optimistische Schätzung genommen und dann noch das Testing gekürzt / auf Unit Tests verzichtet. Man könne ja Überstunden machen zum Ausgleich. Aber selbst, wenn die bezahlt werden -- Dass da keine Qualität rauskommen kann, ist klar.   * Frank: Oft wird unter Zeitdruck die optimistische Schätzung genommen und dann noch das Testing gekürzt / auf Unit Tests verzichtet. Man könne ja Überstunden machen zum Ausgleich. Aber selbst, wenn die bezahlt werden -- Dass da keine Qualität rauskommen kann, ist klar.
     * Joe: Stimmt. In anderen Ingenieurs-Disziplinen sieht man den Produkten leichter von außen an, wenn sie nicht fertig werden; Das ist in der Informatik ein Problem.     * Joe: Stimmt. In anderen Ingenieurs-Disziplinen sieht man den Produkten leichter von außen an, wenn sie nicht fertig werden; Das ist in der Informatik ein Problem.
 +
 +{{tag>Prezi High_Performance Dan_Kegel C10K C500K Jeff_Darcy Russ_Cox Rob_Pike Threads Events async NIO Bit_indices Erlang LLVM Memcached Cache Scrum Erfahrungswerte Zeitdruck}}