Part 1
Part 2
Link from part 1
четверг, 17 ноября 2011 г.
среда, 16 ноября 2011 г.
Top 10 Reasons Java Programs Envy Scala
"Top 10 Reasons Java Programs Envy Scala"
Черт побери!
Это действительно те вещи, которых мне не хватает в java по несколько раз в день ...
P.S. Для пользования презентацией надо интенсивно использовать zoom in/zoom out.
Черт побери!
Это действительно те вещи, которых мне не хватает в java по несколько раз в день ...
P.S. Для пользования презентацией надо интенсивно использовать zoom in/zoom out.
Ярлыки:
scala
понедельник, 7 ноября 2011 г.
10 Core Architecture Pattern Variations for Achieving Scalability
10 Core Architecture Pattern Variations for Achieving Scalability
LB (Load Balancers) + Shared nothing Units. Units that do not share anything with each other fronted with a load balancer that routes incoming messages to a unit based on some criteria.
LB + Stateless Nodes + Scalable Storage. Several stateless nodes talking to a scalable storage, and a load balancer distributes load among the nodes.
Peer to Peer Architectures (Distributed Hash Table (DHT) and Content Addressable Networks (CAN)). Algorithm for scaling up logarithmically.
Distributed Queues. Queue implementation (FIFO delivery) implemented as a network service.
Publish/Subscribe Paradigm. Network publish subscribe brokers that route messages to each other.
Gossip and Nature-inspired Architectures. Each node randomly pick and exchange information with follow nodes.
Map Reduce/ Data flows. Scalable pattern to describe and execute Jobs.
Tree of responsibility. Break the problem down recursively and assign to a tree, each parent node delegating work to children nodes.
Stream processing. Process data streams, data that is keeps coming.
Scalable Storages. Ranges from Databases, NoSQL storages, Service Registries, to File systems.
P.S. Thanks highscalability.com for link.
LB (Load Balancers) + Shared nothing Units. Units that do not share anything with each other fronted with a load balancer that routes incoming messages to a unit based on some criteria.
LB + Stateless Nodes + Scalable Storage. Several stateless nodes talking to a scalable storage, and a load balancer distributes load among the nodes.
Peer to Peer Architectures (Distributed Hash Table (DHT) and Content Addressable Networks (CAN)). Algorithm for scaling up logarithmically.
Distributed Queues. Queue implementation (FIFO delivery) implemented as a network service.
Publish/Subscribe Paradigm. Network publish subscribe brokers that route messages to each other.
Gossip and Nature-inspired Architectures. Each node randomly pick and exchange information with follow nodes.
Map Reduce/ Data flows. Scalable pattern to describe and execute Jobs.
Tree of responsibility. Break the problem down recursively and assign to a tree, each parent node delegating work to children nodes.
Stream processing. Process data streams, data that is keeps coming.
Scalable Storages. Ranges from Databases, NoSQL storages, Service Registries, to File systems.
P.S. Thanks highscalability.com for link.
пятница, 30 сентября 2011 г.
Embedded Design Patterns
Embedded Design Patterns
еще не успел почитать, но имена архитектур для меня совершенно новы:
- Hierarchical State Machine
- State Machine Inheritance
- ...
Классика паттернов, которая используется в J2EE:
- GoF patterns
- J2EE patterns
- PEAA from Fawler
но самое вкусное - distributed/multithreaded/realtime/... patterns надо искать самому.
Кста, если кто знает еще интересные паттерны - киньте в коммент.
еще не успел почитать, но имена архитектур для меня совершенно новы:
- Hierarchical State Machine
- State Machine Inheritance
- ...
Классика паттернов, которая используется в J2EE:
- GoF patterns
- J2EE patterns
- PEAA from Fawler
но самое вкусное - distributed/multithreaded/realtime/... patterns надо искать самому.
Кста, если кто знает еще интересные паттерны - киньте в коммент.
среда, 31 августа 2011 г.
пятница, 5 августа 2011 г.
Практичные регулярки: современные движки рвут и мечут
Практичные регулярки: современные движки рвут и мечут
Пост содержит ряд дельных (как я понимаю) ссылок.
Пост содержит ряд дельных (как я понимаю) ссылок.
Ярлыки:
regexp
среда, 20 июля 2011 г.
Distributed Algorithms: Time
Тезисы к моему докладу на Java Club #2:
Многие современных "Большие Игроки" для обеспечения задачи хранения состояния в cloud-системах используют кастомные нереляционные решения:
Amazon
- SimpleDB
- Dynamo
Google
- GFS + BigTable + MapReduce
- Megastore
Yahoo
- HDFS + HBase + Hadoop
- PNUTS
Facebook
- Cassandra
Не рассматривая вызвавшие это причины, можно констатировать факт, что задача анализа реализованных или проектирования и разработки своего "in cloud" nonrelational хранилища актуальна для R&D отделов больших корпорация.
Но, в таком случае, нам придется "выйти за пределы реляционного словаря": ACID, optimistic/pessimistic locking, read uncommitted, read committed, repeatable read, serializable, two phase commit (2PL), two phase locking (2PL), normal forms, primary/foreign key...
И оперировать более фундаментальными понятиями. На основе которых, в том числе, возможно строить и реляционные решения.
Time:
- 0-d Scalar Lamport Logical Time
- 1-d Scalar Virtual Time
- 1-d Vector Time
- 2-d Matrix time
P.S. В целом про Time in Distributed Algorithms (в том числе про Vector Time) отлично прочитать Chapter #3 из книги "Distributed Computing: Principles, Algorithms, and Systems"
Многие современных "Большие Игроки" для обеспечения задачи хранения состояния в cloud-системах используют кастомные нереляционные решения:
Amazon
- SimpleDB
- Dynamo
- GFS + BigTable + MapReduce
- Megastore
Yahoo
- HDFS + HBase + Hadoop
- PNUTS
- Cassandra
Не рассматривая вызвавшие это причины, можно констатировать факт, что задача анализа реализованных или проектирования и разработки своего "in cloud" nonrelational хранилища актуальна для R&D отделов больших корпорация.
Но, в таком случае, нам придется "выйти за пределы реляционного словаря": ACID, optimistic/pessimistic locking, read uncommitted, read committed, repeatable read, serializable, two phase commit (2PL), two phase locking (2PL), normal forms, primary/foreign key...
И оперировать более фундаментальными понятиями. На основе которых, в том числе, возможно строить и реляционные решения.
Time:
- 0-d Scalar Lamport Logical Time
- 1-d Scalar Virtual Time
- 1-d Vector Time
- 2-d Matrix time
P.S. В целом про Time in Distributed Algorithms (в том числе про Vector Time) отлично прочитать Chapter #3 из книги "Distributed Computing: Principles, Algorithms, and Systems"
пятница, 17 июня 2011 г.
Architecture of a Database System
Short book "Architecture of a Database System" from Joseph M. Hellerstein, Michael Stonebraker and James Hamilton.
Ярлыки:
Hamilton,
Hellerstein,
RDBMS,
Stonebraker
Oracle Real Application Clusters and Industry Trends in Cluster Parallelism and Availability
"Oracle Real Application Clusters and Industry Trends in Cluster Parallelism and Availability" from James Hamilton, Architect of Microsoft SQL Server:)
Ярлыки:
Hamilton,
Oracle,
Oracle RAC
четверг, 16 июня 2011 г.
Game theory for automatic device driver synthesis
Article "Automatic Device Driver Synthesis with Termite" from scientists [EN].
ABSTRACT
Faulty device drivers cause significant damage through down time and data loss. The problem can be mitigated by an improved driver development process that guarantees correctness by construction. We achieve this by synthesising drivers automatically from formal specifications of device interfaces, thus reducing the impact of human error on driver reliability and potentially cutting down on development costs.
We present a concrete driver synthesis approach and tool called Termite. We discuss the methodology, the technical and practical limitations of driver synthesis, and provide an evaluation of nontrivial drivers for Linux, generated using our tool. We show that the performance of the generated drivers is on par with the equivalent manually developed drivers. Furthermore, we demonstrate that device specifications can be reused across different operating systems by generating a driver for FreeBSD from the same specification as used for Linux.
Short description [RU].
ABSTRACT
Faulty device drivers cause significant damage through down time and data loss. The problem can be mitigated by an improved driver development process that guarantees correctness by construction. We achieve this by synthesising drivers automatically from formal specifications of device interfaces, thus reducing the impact of human error on driver reliability and potentially cutting down on development costs.
We present a concrete driver synthesis approach and tool called Termite. We discuss the methodology, the technical and practical limitations of driver synthesis, and provide an evaluation of nontrivial drivers for Linux, generated using our tool. We show that the performance of the generated drivers is on par with the equivalent manually developed drivers. Furthermore, we demonstrate that device specifications can be reused across different operating systems by generating a driver for FreeBSD from the same specification as used for Linux.
Short description [RU].
суббота, 11 июня 2011 г.
Cloud Computing Papers
Some Cloud Computing Papers from Illinois University.
Ярлыки:
cloud computing,
Distributed
вторник, 7 июня 2011 г.
Spring + NoSQL
Spring Data project
Subprojects:
- Blob-Stores
- Column Stores
- Document Stores
- Graph Databases
- Key Value Stores
- Map-Reduce
- Relational Databases
- Common Infrastructure
P.S. Один мой друг, который всерьез занимается Cloud, утверждает, что VmWare (Spring owner) мечтает свой стек технологий сделать стандартом для "облаков". И, вроде как, все к тому и идет. Спринговский доступ ко всякого рода "облачным хранилищам данных" фактически станем стандартом de facto.
P.P.S. Мой личный интерес в следующем:
Cloud - это абстракция над кластером. "Степаныч, скока щас?" - "100" - "подымай еще 100". Всякое приложение под cloud - stateless app, который все данные хранит в некотором распределенном хранилище. Это может быть Azure Table Storage, Google Datastore API, Amazon SimpleDB. Вот, по-моему, проектировать и реализовывать такие хранилища под заказ - самое интересное. Не использовать то, что уже есть, сидя на чужом public cloud, а реализовывать новое хранилище для заказного private cloud.
Subprojects:
- Blob-Stores
- Column Stores
- Document Stores
- Graph Databases
- Key Value Stores
- Map-Reduce
- Relational Databases
- Common Infrastructure
P.S. Один мой друг, который всерьез занимается Cloud, утверждает, что VmWare (Spring owner) мечтает свой стек технологий сделать стандартом для "облаков". И, вроде как, все к тому и идет. Спринговский доступ ко всякого рода "облачным хранилищам данных" фактически станем стандартом de facto.
P.P.S. Мой личный интерес в следующем:
Cloud - это абстракция над кластером. "Степаныч, скока щас?" - "100" - "подымай еще 100". Всякое приложение под cloud - stateless app, который все данные хранит в некотором распределенном хранилище. Это может быть Azure Table Storage, Google Datastore API, Amazon SimpleDB. Вот, по-моему, проектировать и реализовывать такие хранилища под заказ - самое интересное. Не использовать то, что уже есть, сидя на чужом public cloud, а реализовывать новое хранилище для заказного private cloud.
Ярлыки:
NoSQL
NoSQL Databases
NoSQL Databases
Lecture
Selected Topics on Software-Technology
Ultra-Large Scale Sites
Contents
1 Introduction 1
1.1 Introduction and Overview
1.2 Uncovered Topics
2 The NoSQL-Movement
2.1 Motives and Main Drivers
2.2 Criticism
2.3 Classifications and Comparisons of NoSQL Databases
3 Basic Concepts, Techniques and Patterns
3.1 Consistency
3.2 Partitioning
3.3 Storage Layout
3.4 Query Models
3.5 Distributed Data Processing via MapReduce
4 Key-/Value-Stores
4.1 Amazon’s Dynamo
4.2 Project Voldemort
4.3 Other Key-/Value-Stores
5 Document Databases
5.1 Apache CouchDB
5.2 MongoDB
6 Column-Oriented Databases
6.1 Google’s Bigtable
6.2 Bigtable Derivatives
6.3 Cassandra
7 Conclusion
A Further Reading, Listening and Watching
B List of abbreviations
C Bibliography
P.S. Many thanks to Mark for the link.
Lecture
Selected Topics on Software-Technology
Ultra-Large Scale Sites
Contents
1 Introduction 1
1.1 Introduction and Overview
1.2 Uncovered Topics
2 The NoSQL-Movement
2.1 Motives and Main Drivers
2.2 Criticism
2.3 Classifications and Comparisons of NoSQL Databases
3 Basic Concepts, Techniques and Patterns
3.1 Consistency
3.2 Partitioning
3.3 Storage Layout
3.4 Query Models
3.5 Distributed Data Processing via MapReduce
4 Key-/Value-Stores
4.1 Amazon’s Dynamo
4.2 Project Voldemort
4.3 Other Key-/Value-Stores
5 Document Databases
5.1 Apache CouchDB
5.2 MongoDB
6 Column-Oriented Databases
6.1 Google’s Bigtable
6.2 Bigtable Derivatives
6.3 Cassandra
7 Conclusion
A Further Reading, Listening and Watching
B List of abbreviations
C Bibliography
P.S. Many thanks to Mark for the link.
Ярлыки:
NoSQL
Подписаться на:
Сообщения (Atom)