Letzten Blogbeiträge

Weitere Blogeinträge

NoSQL Key-Value-Stores unterstützen oft nur get, put und delete Operationen auf einen Primärschlüssel. Document-Stores ähneln den Key-Value-Stores, speichern aber den Value in einem Format. Bei MongoDb ist es ein JSON-Format. Es kann dann zusätzlich auf die Informationen im Document gefiltert werden oder sogar nur ein Teil des Documents zurückgegeben werden. Transaktionen sind in der Regel pro Document, können je nach Datenbank aber auch mehrere Documents umfassen. Ein wesentlicher Unterschied von allen NoSQL Datenbanken zu den relationalen Datenbanken ist die Transaktionssicherheit.

WEITERLESEN

Ein Bloom-Filter kann man einsetzen, wenn schnell überprüfbar sein muss, ob ein Wert nicht vorhanden ist. Man kann zum Beispiel verschiedene Wörter im Bloom-Filter speichern und schnell überprüfen, ob die Eingabe einem Wort im Filter entspricht. Der Vorteil vom Bloom-Filter ist der geringe Speicherplatz und die Geschwindigkeit. Ein Nachteil ist, dass man mithilfe des Bloom-Filters nicht sagen kann, ob der Wert vorhanden ist.

WEITERLESEN

Mittlerweile gibt es einige verteile Systeme. Die Blockchain-Technologien sind nur die Neusten. Es gibt zum Beispiel noch:

  • Verteiltes Filesystem (z.B. Hadoop, NFS, CIFS, AFP)
  • Peer to Peer Video-Plattform (z.B. PeerTube)
  • Federated Kurznachrichtendienst (z.B. Mastodon)
  • Email
  • Internet (Webserver)
  • DNS
  • Distributed Hash Tables (z.B. Kademlia, Chord, TomP2P, Paxos, Raft)
  • BitTorrent
  • Software Updates in Windows 10 und einigen Spielen
  • Browser Peer to Peer über WebRTC (Videotelefonie, Chat u.v.m.)
  • Remote Procedure Call (RPC) (z.B. gRPC, Apache Avro)
  • Peer to Peer Internet (z.B. Tor)
  • Message Queue (z.B. RabbitMQ, ActiveMQ, Qpid, ZeroMQ, Kafka)
  • Hierarchical key-value-store (z.B. Apache ZooKeeper)

Ich werde einige als Prüfungsvorbereitung beschreiben. Viel Material kann man auf der Website von Maarten van Steen finden.

WEITERLESEN

Sinn und Zweck

Die Threads selbst zu verwalten ist nicht immer nötig und für kleinere Aufgaben auch oft zu teuer. Es gibt in Java den so genannten Thread Pool, dem man Aufgaben übergeben kann. Diese Aufgaben werden ausgeführt und man erhält sofort einen Future<Ergebnis> zurück. Dieser Future enthält dann irgendwann das Ergebnis der Aufgabe oder “null”, falls kein Ergebnis gewünscht wurde.

WEITERLESEN

Sinn und Zweck der Synchronisation

Wenn mehrere Prozesse beispielsweise eine Variable lesen und schreiben, können durch unterschiedliches Timing falsche Zustände entstehen. Am Einfachsten kann man es sich mit einem Bankkonto veranschaulichen. Ein Thread erhöht jeweils den Kontostand um 10 und ein anderer Thread reduziert den Kontostand um 10. Damit man den Kontostand um 10 verändern kann, muss man den Kontostand natürlich zuerst wissen. Es könnte also zum Beispiel folgendes passieren:

  • Thread 1 liest Kontostand (0)
  • Thread 2 liest Kontostand (0)
  • Thread 2 erhöht Kontostand (10)
  • Thread 1 reduziert Kontostand (-10)

Der obige Ablauf ist möglich, weil das Betriebssystem entscheidet, wann und wie lange ein Thread laufen darf. Wenn nur eine fehlerhaften Reihenfolge möglich ist, kann es zu Fehlern kommen, aber leider nicht bei jeder Programmdurchführung. Das macht das Testen und das Debuggen schwer.

WEITERLESEN

Projekte

E-Commerce Schmuckgeschäft

Produkte von unabhängie Produzenten zu 100% aus Europa - Technische Betreeung durch mich

Fitness und Zumba

Bietet regelmässig Zumba-Kurse an - Technische Betreeung durch mich

LGBTI Verein Liechtenstein

Bezweckt die Integration sowie die rechtliche Gleichstellung der LGBTIs in Liechtenstein - Technische Betreuung durch mich

Qutebrowser - keyboard-focused browser

Ist ein Browser, der vollständig mit der Tastatur bedienbar ist, aber auch die Maus unterstützt - Habe ich bei Kickstarter unterstützt

itcc.li - IT Crowd Club Liechtenstein

Informieren, vernetzen, austauschen - Überarbeitung der Website durch mich