Embedded Design Patterns
еще не успел почитать, но имена архитектур для меня совершенно новы:
- Hierarchical State Machine
- State Machine Inheritance
- ...
Классика паттернов, которая используется в J2EE:
- GoF patterns
- J2EE patterns
- PEAA from Fawler
но самое вкусное - distributed/multithreaded/realtime/... patterns надо искать самому.
Кста, если кто знает еще интересные паттерны - киньте в коммент.
пятница, 30 сентября 2011 г.
среда, 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
пятница, 27 мая 2011 г.
суббота, 21 мая 2011 г.
ZooKeeper - A Reliable, Scalable Distributed Coordination System
ZooKeeper - A Reliable, Scalable Distributed Coordination System
Abstract
ZooKeeper is a high available and reliable coordination system. Distributed applications use ZooKeeper to store and mediate updates key configuration information. ZooKeeper can be used for leader election, group membership, and configuration maintenance. In addition ZooKeeper can be used for event notification, locking, and as a priority queue mechanism. It's a sort of central nervous system for distributed systems where the role of the brain is played by the coordination service, axons are the network, processes are the monitored and controlled body parts, and events are the hormones and neurotransmitters used for messaging. Every complex distributed application needs a coordination and orchestration system of some sort, so the ZooKeeper folks at Yahoo decide to build a good one and open source it for everyone to use.
P.S. So ZooKeeper is open-source realization (from Yahoo) of "close-source" Chubby lock service (from Google).
Abstract
ZooKeeper is a high available and reliable coordination system. Distributed applications use ZooKeeper to store and mediate updates key configuration information. ZooKeeper can be used for leader election, group membership, and configuration maintenance. In addition ZooKeeper can be used for event notification, locking, and as a priority queue mechanism. It's a sort of central nervous system for distributed systems where the role of the brain is played by the coordination service, axons are the network, processes are the monitored and controlled body parts, and events are the hormones and neurotransmitters used for messaging. Every complex distributed application needs a coordination and orchestration system of some sort, so the ZooKeeper folks at Yahoo decide to build a good one and open source it for everyone to use.
P.S. So ZooKeeper is open-source realization (from Yahoo) of "close-source" Chubby lock service (from Google).
понедельник, 16 мая 2011 г.
Подписаться на:
Сообщения (Atom)