SlideShare a Scribd company logo
1 of 45
Download to read offline
High Load: If Chuck Norris is your customer
Igor Tsinko
Igor.Tsinko@gmail.com
linkedin.com/in/IgorTsinko
goo.gl/7gidp
#kranonit S06E01
23.12.2012
Igor Tsinko aka combats
● Java developer at
● In IT since 2003
● 6 years PHP using, year of Java
● linkedin.com/in/IgorTsinko
● Nur.kz (Connect.ua)
● TomTom
● VoxTelecom
Sergey Ponomarev aka stokito
● Grails developer at
● In IT since 2006
● Delphi, PHP, Java, Groovy
● Java coucher
● stokito.moikrug.ru
● stokito.blogspot.com
● HotWire.com
● Vertical vs. Horizontal scaling
● Architecture
● NoSQL vs. RDBMS
● Tools
Agenda
What is high load?
Vertical vs. Horizontal scaling
● Horizontal scaling needs stateless
● But: cookies, sessions are states
● RESTful: only HTTP methods
Architecture
RESTful: CRUD over HTTP
Create PUT example.com/articles/2
user: admin
pass: qwerty
title: Hello, #kranonit!
body: We create this article via REST
Read GET example.com/articles/1?user=admin&pass=qwerty
Update POST example.com/articles/2
user: admin
pass: qwerty
title: Hello, #kranonit!
body: Updated article text
Delete DELETE example.com/articles/2
user: admin
pass: qwerty
Load Balancer
Zero downtime
● Different versions of app on different servers
● Graceful error handling
● Backward capability
● Feature flags
CAP theorem: Consistency, Availability,
Partition tolerance – choose two
ACID vs. BASE -> NoSQL
Only CRUD
● Create
● Read
● Update
● Delete
Forget about complexity query ;(
No aggregation requests (only Map/Reduce)
NoSQL boom! 122+ solutions
Polyglot persistence
MongoDB
● Document oriented: schema less, easy to work with
● ObjectId timestamp, machine identifier, process id, counter
● JSON format:
{
"_id" : ObjectId("497ce96f395f2f052a494fd4"),
"title" : "Awesome Blog Post",
"body" : "Text text text text, text text text ...",
"created": "Tue, 3 Jan 2011 11:13:56 GMT",
"tags" : [ "css", "javascipt", "jquery" ],
"comments" : [
{
"name" : "Kelly Glover"
"text" : "This is a very good ..."
},
],
}
Adding new NoSQL node is easy
Nodes are in ring
They know about each
other
Recalculating keys/nodes
Runtime CAP-solving
Quorum read/write Fast writes
Fast reads Fast, less consistency
DEMO
Where could we use it?
● Statistics
● Messaging
● Image metadata
● and many others
Issues with NoSQL
● No standards
● Very young infrastructure
● Hard to configure
Spring DATA
● Single API
● Pretty good ORM
● Doesn't support Cassandra
● Issues with performance
● The lowest common denominator
DEMO
How to test NoSQL
● Simple Integration tests (simple like in
RDBMS)
● Storage - is a "bottleneck", but it testable
● New tools are come to us: NoSQLUnit -
simple like DBUnit in RDBMS world
● Good point for managers - just rewrite your
DAO
DEMO
Data retention policy
● What is your data lifecycle?
● How many records in table?
● How often it would be update?
● Is it read only?
● Data lifecycle: create, update, expire, clean
● More reads or writes?
● How often to clean old data?
"Cache" your DAO
● Static blocks on page
● "slow-to update" data
Levels of caching:
1. Object in DB session of application (ORM)
2. In-memory shared with process: Memcached, EhCache
3. Query caching: Sphinx, Hibernate
Memcached
SQL request for static data - is very expensive
Cheap decision:
// get object from memcached
Memchached cities = get("cities_key")
if (cities == null) {
// make your SQL or whatever you do
citiesList = query("SELECT * FROM cities")
cities.set(citiesList, 60, "cities_key")
}
return cities
Memcached proc & cons
● Really quick access
● Good for little pieces of data
● Key-value
● Not so stable on real high load
● You will loose your business if you reboot all
your memcache :)
● 1mb objects by default
Memcache: how-to: team lead to
beat shit out from you
● Cache transactional requests
● Drop data from cache
Search on site: how-to kill your
server, step-by-step manual
● SELECT * FROM ... CROSS JOIN ...
● Aggregation requests
● Wrong, or non-effective indexes
Move to Sphinx
● Optimization by requests criteria
● Full-text index
● Optimisation and management your
requests
Other search engines and cache
optimization tools
● Solr (Lucene) from Apache - Java
world
● Google search on your site :)
Store your images - Varnish
It's just yet another http accelerator
● Store and shape your images
● In-Memory based
● Manage your files
● It's not a hard drive (with 300 threads/s max)
Manage your video storages
● FFMpeg - best tool for conversion
● Always save original file
● User should understand that video doesn't
appear in seconds
● Prepare your preview - use varnish
Bandwidth and video - or how-to
save your ass from angry team lead
● Don't use default configuration
● Shape your bandwidth (include geotargeting)
● Monetisation from your shaped bandwidth
● MP4 shaping on little pieces
Storages architecture
● Always use "rings"
● Always protect your data - use 3 server per
ring with load balancer
● App servers min value >= 2
● Your SQL server - always with master-slave,
master-master replication
● What is more important data for you - pics
with cats or commercial data?
When clouds are cool and when are not...
● Ping
● Servers reliability
● Private data
Why manager kick your ass for
mongoDB in clouds
● MongoDB has master-node, in clouds you
can't control servers reliability
● Every technology - is good decision for
clouds... unless you don't care about 30's
downtime
Technologies that uses our colleagues
● Google map-reduce
● Google Big Data
Open source:
● Hadoop
● HBase
● ZooKeeper
Dependencies and limitations on the High
Load architecture
● A lot of convention over configuration
● Turn off your cache - turn off your business
● You live in crashing world
● Much more qualified developer need
Conclusions
● Use technologies only if it's business require
● You're lucky if you have High Load
● Persistence is bottleneck in any project: make
sure that you have good architecture - use
DAO, decompose as more as you can
● Use SQL and vertical scale as much as
possible
Что почитать?
● NoSQL DB - большой взрыв и расширяющаяся
вселенная практических применений
● NoSQL базы данных: понимаем суть
● Записи встреч Клуба анонимных разработчиков
#uadevclub
● Кайл Бэнкер: MongoDB в действии
● myforce.ru
● insight-it.ru/highload
● highload.ru
Igor.Tsinko@gmail.com
linkedin.com/in/IgorTsinko
This
presentation
goo.gl/7gidp

More Related Content

What's hot

Next Generation DevOps in Drupal: DrupalCamp London 2014
Next Generation DevOps in Drupal: DrupalCamp London 2014Next Generation DevOps in Drupal: DrupalCamp London 2014
Next Generation DevOps in Drupal: DrupalCamp London 2014Barney Hanlon
 
Elephant Roads: a tour of Postgres forks
Elephant Roads: a tour of Postgres forksElephant Roads: a tour of Postgres forks
Elephant Roads: a tour of Postgres forksCommand Prompt., Inc
 
MySQL on AWS RDS
MySQL on AWS RDSMySQL on AWS RDS
MySQL on AWS RDSMydbops
 
Scaling Up with PHP and AWS
Scaling Up with PHP and AWSScaling Up with PHP and AWS
Scaling Up with PHP and AWSHeath Dutton ☕
 
Level Up: 5 Expert Tips for Optimizing WordPress Performance
Level Up: 5 Expert Tips for Optimizing WordPress PerformanceLevel Up: 5 Expert Tips for Optimizing WordPress Performance
Level Up: 5 Expert Tips for Optimizing WordPress PerformancePantheon
 
ASP.NET Scalability - WebDD
ASP.NET Scalability - WebDDASP.NET Scalability - WebDD
ASP.NET Scalability - WebDDPhil Pursglove
 
Design a scalable site: Problem and solutions
Design a scalable site: Problem and solutionsDesign a scalable site: Problem and solutions
Design a scalable site: Problem and solutionsChau Thanh
 
ASP.NET Scalability - NxtGen Oxford
ASP.NET Scalability - NxtGen OxfordASP.NET Scalability - NxtGen Oxford
ASP.NET Scalability - NxtGen OxfordPhil Pursglove
 
From One to a Cluster
From One to a ClusterFrom One to a Cluster
From One to a Clusterguestd34230
 
Is It Fast? : Measuring MongoDB Performance
Is It Fast? : Measuring MongoDB PerformanceIs It Fast? : Measuring MongoDB Performance
Is It Fast? : Measuring MongoDB PerformanceTim Callaghan
 
Zingme practice for building scalable website with PHP
Zingme practice for building scalable website with PHPZingme practice for building scalable website with PHP
Zingme practice for building scalable website with PHPChau Thanh
 
ASP.NET Scalability - DDD7
ASP.NET Scalability - DDD7ASP.NET Scalability - DDD7
ASP.NET Scalability - DDD7Phil Pursglove
 
Optimizing Your Frontend Performance
Optimizing Your Frontend PerformanceOptimizing Your Frontend Performance
Optimizing Your Frontend PerformanceThomas Weinert
 
Migrating from MySQL to MongoDB at Wordnik
Migrating from MySQL to MongoDB at WordnikMigrating from MySQL to MongoDB at Wordnik
Migrating from MySQL to MongoDB at WordnikTony Tam
 
Scylla Summit 2018: How We Made Large Partition Scans Over Two Times Faster
Scylla Summit 2018: How We Made Large Partition Scans Over Two Times FasterScylla Summit 2018: How We Made Large Partition Scans Over Two Times Faster
Scylla Summit 2018: How We Made Large Partition Scans Over Two Times FasterScyllaDB
 

What's hot (17)

Performance Web
Performance WebPerformance Web
Performance Web
 
Next Generation DevOps in Drupal: DrupalCamp London 2014
Next Generation DevOps in Drupal: DrupalCamp London 2014Next Generation DevOps in Drupal: DrupalCamp London 2014
Next Generation DevOps in Drupal: DrupalCamp London 2014
 
Elephant Roads: a tour of Postgres forks
Elephant Roads: a tour of Postgres forksElephant Roads: a tour of Postgres forks
Elephant Roads: a tour of Postgres forks
 
MySQL on AWS RDS
MySQL on AWS RDSMySQL on AWS RDS
MySQL on AWS RDS
 
Scaling Up with PHP and AWS
Scaling Up with PHP and AWSScaling Up with PHP and AWS
Scaling Up with PHP and AWS
 
Level Up: 5 Expert Tips for Optimizing WordPress Performance
Level Up: 5 Expert Tips for Optimizing WordPress PerformanceLevel Up: 5 Expert Tips for Optimizing WordPress Performance
Level Up: 5 Expert Tips for Optimizing WordPress Performance
 
ASP.NET Scalability - WebDD
ASP.NET Scalability - WebDDASP.NET Scalability - WebDD
ASP.NET Scalability - WebDD
 
Design a scalable site: Problem and solutions
Design a scalable site: Problem and solutionsDesign a scalable site: Problem and solutions
Design a scalable site: Problem and solutions
 
ASP.NET Scalability - NxtGen Oxford
ASP.NET Scalability - NxtGen OxfordASP.NET Scalability - NxtGen Oxford
ASP.NET Scalability - NxtGen Oxford
 
From One to a Cluster
From One to a ClusterFrom One to a Cluster
From One to a Cluster
 
Is It Fast? : Measuring MongoDB Performance
Is It Fast? : Measuring MongoDB PerformanceIs It Fast? : Measuring MongoDB Performance
Is It Fast? : Measuring MongoDB Performance
 
Zingme practice for building scalable website with PHP
Zingme practice for building scalable website with PHPZingme practice for building scalable website with PHP
Zingme practice for building scalable website with PHP
 
ASP.NET Scalability - DDD7
ASP.NET Scalability - DDD7ASP.NET Scalability - DDD7
ASP.NET Scalability - DDD7
 
Optimizing Your Frontend Performance
Optimizing Your Frontend PerformanceOptimizing Your Frontend Performance
Optimizing Your Frontend Performance
 
Migrating from MySQL to MongoDB at Wordnik
Migrating from MySQL to MongoDB at WordnikMigrating from MySQL to MongoDB at Wordnik
Migrating from MySQL to MongoDB at Wordnik
 
How to Monitor MySQL
How to Monitor MySQLHow to Monitor MySQL
How to Monitor MySQL
 
Scylla Summit 2018: How We Made Large Partition Scans Over Two Times Faster
Scylla Summit 2018: How We Made Large Partition Scans Over Two Times FasterScylla Summit 2018: How We Made Large Partition Scans Over Two Times Faster
Scylla Summit 2018: How We Made Large Partition Scans Over Two Times Faster
 

Viewers also liked

Auftakt Socialbar Bremen
Auftakt Socialbar BremenAuftakt Socialbar Bremen
Auftakt Socialbar Bremenclhanken
 
El libro
El libroEl libro
El libroBonie18
 
Issues in brainmapping...hepatic encephalopathy
Issues in brainmapping...hepatic encephalopathyIssues in brainmapping...hepatic encephalopathy
Issues in brainmapping...hepatic encephalopathyProfessor Yasser Metwally
 
Raising the awareness of learners towards modularization a case study of wola...
Raising the awareness of learners towards modularization a case study of wola...Raising the awareness of learners towards modularization a case study of wola...
Raising the awareness of learners towards modularization a case study of wola...Alexander Decker
 
2012 03 19 screen shots for program and installation webinars feb 2012
2012 03 19 screen shots for program and installation webinars feb 20122012 03 19 screen shots for program and installation webinars feb 2012
2012 03 19 screen shots for program and installation webinars feb 2012Navy CYP
 
Fredrik Reinfeldts 100 Resor i verkligheten Jpg
Fredrik Reinfeldts 100 Resor i verkligheten JpgFredrik Reinfeldts 100 Resor i verkligheten Jpg
Fredrik Reinfeldts 100 Resor i verkligheten JpgModeraterna
 

Viewers also liked (6)

Auftakt Socialbar Bremen
Auftakt Socialbar BremenAuftakt Socialbar Bremen
Auftakt Socialbar Bremen
 
El libro
El libroEl libro
El libro
 
Issues in brainmapping...hepatic encephalopathy
Issues in brainmapping...hepatic encephalopathyIssues in brainmapping...hepatic encephalopathy
Issues in brainmapping...hepatic encephalopathy
 
Raising the awareness of learners towards modularization a case study of wola...
Raising the awareness of learners towards modularization a case study of wola...Raising the awareness of learners towards modularization a case study of wola...
Raising the awareness of learners towards modularization a case study of wola...
 
2012 03 19 screen shots for program and installation webinars feb 2012
2012 03 19 screen shots for program and installation webinars feb 20122012 03 19 screen shots for program and installation webinars feb 2012
2012 03 19 screen shots for program and installation webinars feb 2012
 
Fredrik Reinfeldts 100 Resor i verkligheten Jpg
Fredrik Reinfeldts 100 Resor i verkligheten JpgFredrik Reinfeldts 100 Resor i verkligheten Jpg
Fredrik Reinfeldts 100 Resor i verkligheten Jpg
 

Similar to kranonit S06E01 Игорь Цинько: High load

PGConf APAC 2018 - High performance json postgre-sql vs. mongodb
PGConf APAC 2018 - High performance json  postgre-sql vs. mongodbPGConf APAC 2018 - High performance json  postgre-sql vs. mongodb
PGConf APAC 2018 - High performance json postgre-sql vs. mongodbPGConf APAC
 
Big Data in 200 km/h | AWS Big Data Demystified #1.3
Big Data in 200 km/h | AWS Big Data Demystified #1.3  Big Data in 200 km/h | AWS Big Data Demystified #1.3
Big Data in 200 km/h | AWS Big Data Demystified #1.3 Omid Vahdaty
 
Evolution of DBA in the Cloud Era
 Evolution of DBA in the Cloud Era Evolution of DBA in the Cloud Era
Evolution of DBA in the Cloud EraMydbops
 
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB Atlas
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB AtlasMongoDB World 2019: Packing Up Your Data and Moving to MongoDB Atlas
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB AtlasMongoDB
 
High performance json- postgre sql vs. mongodb
High performance json- postgre sql vs. mongodbHigh performance json- postgre sql vs. mongodb
High performance json- postgre sql vs. mongodbWei Shan Ang
 
AWS Big Data Demystified #1: Big data architecture lessons learned
AWS Big Data Demystified #1: Big data architecture lessons learned AWS Big Data Demystified #1: Big data architecture lessons learned
AWS Big Data Demystified #1: Big data architecture lessons learned Omid Vahdaty
 
The Professional Programmer
The Professional ProgrammerThe Professional Programmer
The Professional ProgrammerDave Cross
 
NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1Ruslan Meshenberg
 
AWS big-data-demystified #1.1 | Big Data Architecture Lessons Learned | English
AWS big-data-demystified #1.1  | Big Data Architecture Lessons Learned | EnglishAWS big-data-demystified #1.1  | Big Data Architecture Lessons Learned | English
AWS big-data-demystified #1.1 | Big Data Architecture Lessons Learned | EnglishOmid Vahdaty
 
Silverstripe at scale - design & architecture for silverstripe applications
Silverstripe at scale - design & architecture for silverstripe applicationsSilverstripe at scale - design & architecture for silverstripe applications
Silverstripe at scale - design & architecture for silverstripe applicationsBrettTasker
 
MySQL X protocol - Talking to MySQL Directly over the Wire
MySQL X protocol - Talking to MySQL Directly over the WireMySQL X protocol - Talking to MySQL Directly over the Wire
MySQL X protocol - Talking to MySQL Directly over the WireSimon J Mudd
 
MongoDB: Advantages of an Open Source NoSQL Database
MongoDB: Advantages of an Open Source NoSQL DatabaseMongoDB: Advantages of an Open Source NoSQL Database
MongoDB: Advantages of an Open Source NoSQL DatabaseFITC
 
OSMC 2019 | How to improve database Observability by Charles Judith
OSMC 2019 | How to improve database Observability by Charles JudithOSMC 2019 | How to improve database Observability by Charles Judith
OSMC 2019 | How to improve database Observability by Charles JudithNETWAYS
 

Similar to kranonit S06E01 Игорь Цинько: High load (20)

Cloud arch patterns
Cloud arch patternsCloud arch patterns
Cloud arch patterns
 
Lean and mean MongoDB
Lean and mean MongoDBLean and mean MongoDB
Lean and mean MongoDB
 
PGConf APAC 2018 - High performance json postgre-sql vs. mongodb
PGConf APAC 2018 - High performance json  postgre-sql vs. mongodbPGConf APAC 2018 - High performance json  postgre-sql vs. mongodb
PGConf APAC 2018 - High performance json postgre-sql vs. mongodb
 
Big Data in 200 km/h | AWS Big Data Demystified #1.3
Big Data in 200 km/h | AWS Big Data Demystified #1.3  Big Data in 200 km/h | AWS Big Data Demystified #1.3
Big Data in 200 km/h | AWS Big Data Demystified #1.3
 
The Accidental DBA
The Accidental DBAThe Accidental DBA
The Accidental DBA
 
Evolution of DBA in the Cloud Era
 Evolution of DBA in the Cloud Era Evolution of DBA in the Cloud Era
Evolution of DBA in the Cloud Era
 
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB Atlas
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB AtlasMongoDB World 2019: Packing Up Your Data and Moving to MongoDB Atlas
MongoDB World 2019: Packing Up Your Data and Moving to MongoDB Atlas
 
High performance json- postgre sql vs. mongodb
High performance json- postgre sql vs. mongodbHigh performance json- postgre sql vs. mongodb
High performance json- postgre sql vs. mongodb
 
AWS Big Data Demystified #1: Big data architecture lessons learned
AWS Big Data Demystified #1: Big data architecture lessons learned AWS Big Data Demystified #1: Big data architecture lessons learned
AWS Big Data Demystified #1: Big data architecture lessons learned
 
The Professional Programmer
The Professional ProgrammerThe Professional Programmer
The Professional Programmer
 
NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1NetflixOSS Meetup season 3 episode 1
NetflixOSS Meetup season 3 episode 1
 
AWS big-data-demystified #1.1 | Big Data Architecture Lessons Learned | English
AWS big-data-demystified #1.1  | Big Data Architecture Lessons Learned | EnglishAWS big-data-demystified #1.1  | Big Data Architecture Lessons Learned | English
AWS big-data-demystified #1.1 | Big Data Architecture Lessons Learned | English
 
Silverstripe at scale - design & architecture for silverstripe applications
Silverstripe at scale - design & architecture for silverstripe applicationsSilverstripe at scale - design & architecture for silverstripe applications
Silverstripe at scale - design & architecture for silverstripe applications
 
MySQL X protocol - Talking to MySQL Directly over the Wire
MySQL X protocol - Talking to MySQL Directly over the WireMySQL X protocol - Talking to MySQL Directly over the Wire
MySQL X protocol - Talking to MySQL Directly over the Wire
 
Netty training
Netty trainingNetty training
Netty training
 
MongoDB: Advantages of an Open Source NoSQL Database
MongoDB: Advantages of an Open Source NoSQL DatabaseMongoDB: Advantages of an Open Source NoSQL Database
MongoDB: Advantages of an Open Source NoSQL Database
 
Shootout at the PAAS Corral
Shootout at the PAAS CorralShootout at the PAAS Corral
Shootout at the PAAS Corral
 
OSMC 2019 | How to improve database Observability by Charles Judith
OSMC 2019 | How to improve database Observability by Charles JudithOSMC 2019 | How to improve database Observability by Charles Judith
OSMC 2019 | How to improve database Observability by Charles Judith
 
Netty training
Netty trainingNetty training
Netty training
 
MongoDB Online Training.pdf
MongoDB Online Training.pdfMongoDB Online Training.pdf
MongoDB Online Training.pdf
 

More from Krivoy Rog IT Community

kranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективноkranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективноKrivoy Rog IT Community
 
Kranonit S18 Chernomorov Vasiliy "Как создать игру и не сойти с ума "
Kranonit S18 Chernomorov Vasiliy "Как создать игру и не сойти с ума "Kranonit S18 Chernomorov Vasiliy "Как создать игру и не сойти с ума "
Kranonit S18 Chernomorov Vasiliy "Как создать игру и не сойти с ума "Krivoy Rog IT Community
 
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDkranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDKrivoy Rog IT Community
 
kranonit S14E02 Серёжа Пономарёв: kranonit’у уже год. Полёт нормальный?
kranonit S14E02 Серёжа Пономарёв: kranonit’у уже год. Полёт нормальный?kranonit S14E02 Серёжа Пономарёв: kranonit’у уже год. Полёт нормальный?
kranonit S14E02 Серёжа Пономарёв: kranonit’у уже год. Полёт нормальный?Krivoy Rog IT Community
 
kranonit S14E01 Эдуард Лобас Management & IT Industry
kranonit S14E01 Эдуард Лобас Management & IT Industrykranonit S14E01 Эдуард Лобас Management & IT Industry
kranonit S14E01 Эдуард Лобас Management & IT IndustryKrivoy Rog IT Community
 
kranonit S12E02 Артур Титов: Юзабилити форм
kranonit S12E02 Артур Титов: Юзабилити формkranonit S12E02 Артур Титов: Юзабилити форм
kranonit S12E02 Артур Титов: Юзабилити формKrivoy Rog IT Community
 
kranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Java
kranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Javakranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Java
kranonit S11E01 Андрей Пономарёв: Тренинг по TDD в JavaKrivoy Rog IT Community
 
kranonit S10E01 Андрей Бабак- Запускаем стартап
kranonit S10E01 Андрей Бабак- Запускаем стартапkranonit S10E01 Андрей Бабак- Запускаем стартап
kranonit S10E01 Андрей Бабак- Запускаем стартапKrivoy Rog IT Community
 
kranonit S07E01 Евгений Василенко: Методы криптографической защиты информации
kranonit S07E01 Евгений Василенко: Методы криптографической защиты информацииkranonit S07E01 Евгений Василенко: Методы криптографической защиты информации
kranonit S07E01 Евгений Василенко: Методы криптографической защиты информацииKrivoy Rog IT Community
 
kranonit S06E02 Артём Юрков: Как все успеть и не слететь с катушек
kranonit S06E02 Артём Юрков: Как все успеть и не слететь с катушекkranonit S06E02 Артём Юрков: Как все успеть и не слететь с катушек
kranonit S06E02 Артём Юрков: Как все успеть и не слететь с катушекKrivoy Rog IT Community
 
kranonit S05E01 Sergey Burma: Welcome to cloud!
kranonit S05E01 Sergey Burma: Welcome to cloud!kranonit S05E01 Sergey Burma: Welcome to cloud!
kranonit S05E01 Sergey Burma: Welcome to cloud!Krivoy Rog IT Community
 
kranonit S04E02 Кирил Jstor: Hacking .NET applications
kranonit S04E02 Кирил Jstor: Hacking .NET applicationskranonit S04E02 Кирил Jstor: Hacking .NET applications
kranonit S04E02 Кирил Jstor: Hacking .NET applicationsKrivoy Rog IT Community
 
kranonit S04E01 Антон: Защита от Master Boot Record Locker
kranonit S04E01 Антон: Защита от Master Boot Record Lockerkranonit S04E01 Антон: Защита от Master Boot Record Locker
kranonit S04E01 Антон: Защита от Master Boot Record LockerKrivoy Rog IT Community
 
kranonit S03E01 Эдуард Лобас: Freelance
kranonit S03E01 Эдуард Лобас: Freelancekranonit S03E01 Эдуард Лобас: Freelance
kranonit S03E01 Эдуард Лобас: FreelanceKrivoy Rog IT Community
 
kranonit S07E02 nixoid: Будущее электронных денег
kranonit S07E02 nixoid: Будущее электронных денегkranonit S07E02 nixoid: Будущее электронных денег
kranonit S07E02 nixoid: Будущее электронных денегKrivoy Rog IT Community
 

More from Krivoy Rog IT Community (20)

kranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективноkranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
kranonitS20 Сергей Бурма. Django - легко, быстро, эффективно
 
Kranonit S18 Pavlov Evgeniy
Kranonit S18 Pavlov Evgeniy Kranonit S18 Pavlov Evgeniy
Kranonit S18 Pavlov Evgeniy
 
Kranonit S18 Chernomorov Vasiliy "Как создать игру и не сойти с ума "
Kranonit S18 Chernomorov Vasiliy "Как создать игру и не сойти с ума "Kranonit S18 Chernomorov Vasiliy "Как создать игру и не сойти с ума "
Kranonit S18 Chernomorov Vasiliy "Как создать игру и не сойти с ума "
 
Kranonit S18 Lobova Elena
Kranonit S18 Lobova ElenaKranonit S18 Lobova Elena
Kranonit S18 Lobova Elena
 
Kranonit s16 (python). sergey burma
Kranonit s16 (python). sergey burmaKranonit s16 (python). sergey burma
Kranonit s16 (python). sergey burma
 
Kranonit s16 (python). dmitry furzenko
Kranonit s16 (python). dmitry furzenkoKranonit s16 (python). dmitry furzenko
Kranonit s16 (python). dmitry furzenko
 
Kranonit sponsorskoe predlozhenie
Kranonit sponsorskoe predlozhenieKranonit sponsorskoe predlozhenie
Kranonit sponsorskoe predlozhenie
 
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDkranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
 
kranonit S14E02 Серёжа Пономарёв: kranonit’у уже год. Полёт нормальный?
kranonit S14E02 Серёжа Пономарёв: kranonit’у уже год. Полёт нормальный?kranonit S14E02 Серёжа Пономарёв: kranonit’у уже год. Полёт нормальный?
kranonit S14E02 Серёжа Пономарёв: kranonit’у уже год. Полёт нормальный?
 
kranonit S14E01 Эдуард Лобас Management & IT Industry
kranonit S14E01 Эдуард Лобас Management & IT Industrykranonit S14E01 Эдуард Лобас Management & IT Industry
kranonit S14E01 Эдуард Лобас Management & IT Industry
 
kranonit S12E02 Артур Титов: Юзабилити форм
kranonit S12E02 Артур Титов: Юзабилити формkranonit S12E02 Артур Титов: Юзабилити форм
kranonit S12E02 Артур Титов: Юзабилити форм
 
kranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Java
kranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Javakranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Java
kranonit S11E01 Андрей Пономарёв: Тренинг по TDD в Java
 
kranonit S10E01 Андрей Бабак- Запускаем стартап
kranonit S10E01 Андрей Бабак- Запускаем стартапkranonit S10E01 Андрей Бабак- Запускаем стартап
kranonit S10E01 Андрей Бабак- Запускаем стартап
 
kranonit S07E01 Евгений Василенко: Методы криптографической защиты информации
kranonit S07E01 Евгений Василенко: Методы криптографической защиты информацииkranonit S07E01 Евгений Василенко: Методы криптографической защиты информации
kranonit S07E01 Евгений Василенко: Методы криптографической защиты информации
 
kranonit S06E02 Артём Юрков: Как все успеть и не слететь с катушек
kranonit S06E02 Артём Юрков: Как все успеть и не слететь с катушекkranonit S06E02 Артём Юрков: Как все успеть и не слететь с катушек
kranonit S06E02 Артём Юрков: Как все успеть и не слететь с катушек
 
kranonit S05E01 Sergey Burma: Welcome to cloud!
kranonit S05E01 Sergey Burma: Welcome to cloud!kranonit S05E01 Sergey Burma: Welcome to cloud!
kranonit S05E01 Sergey Burma: Welcome to cloud!
 
kranonit S04E02 Кирил Jstor: Hacking .NET applications
kranonit S04E02 Кирил Jstor: Hacking .NET applicationskranonit S04E02 Кирил Jstor: Hacking .NET applications
kranonit S04E02 Кирил Jstor: Hacking .NET applications
 
kranonit S04E01 Антон: Защита от Master Boot Record Locker
kranonit S04E01 Антон: Защита от Master Boot Record Lockerkranonit S04E01 Антон: Защита от Master Boot Record Locker
kranonit S04E01 Антон: Защита от Master Boot Record Locker
 
kranonit S03E01 Эдуард Лобас: Freelance
kranonit S03E01 Эдуард Лобас: Freelancekranonit S03E01 Эдуард Лобас: Freelance
kranonit S03E01 Эдуард Лобас: Freelance
 
kranonit S07E02 nixoid: Будущее электронных денег
kranonit S07E02 nixoid: Будущее электронных денегkranonit S07E02 nixoid: Будущее электронных денег
kranonit S07E02 nixoid: Будущее электронных денег
 

Recently uploaded

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 

kranonit S06E01 Игорь Цинько: High load

  • 1. High Load: If Chuck Norris is your customer Igor Tsinko Igor.Tsinko@gmail.com linkedin.com/in/IgorTsinko goo.gl/7gidp #kranonit S06E01 23.12.2012
  • 2. Igor Tsinko aka combats ● Java developer at ● In IT since 2003 ● 6 years PHP using, year of Java ● linkedin.com/in/IgorTsinko ● Nur.kz (Connect.ua) ● TomTom ● VoxTelecom
  • 3. Sergey Ponomarev aka stokito ● Grails developer at ● In IT since 2006 ● Delphi, PHP, Java, Groovy ● Java coucher ● stokito.moikrug.ru ● stokito.blogspot.com ● HotWire.com
  • 4. ● Vertical vs. Horizontal scaling ● Architecture ● NoSQL vs. RDBMS ● Tools Agenda
  • 5. What is high load?
  • 7. ● Horizontal scaling needs stateless ● But: cookies, sessions are states ● RESTful: only HTTP methods Architecture
  • 8. RESTful: CRUD over HTTP Create PUT example.com/articles/2 user: admin pass: qwerty title: Hello, #kranonit! body: We create this article via REST Read GET example.com/articles/1?user=admin&pass=qwerty Update POST example.com/articles/2 user: admin pass: qwerty title: Hello, #kranonit! body: Updated article text Delete DELETE example.com/articles/2 user: admin pass: qwerty
  • 10. Zero downtime ● Different versions of app on different servers ● Graceful error handling ● Backward capability ● Feature flags
  • 11. CAP theorem: Consistency, Availability, Partition tolerance – choose two
  • 12. ACID vs. BASE -> NoSQL
  • 13. Only CRUD ● Create ● Read ● Update ● Delete Forget about complexity query ;( No aggregation requests (only Map/Reduce)
  • 14. NoSQL boom! 122+ solutions
  • 16. MongoDB ● Document oriented: schema less, easy to work with ● ObjectId timestamp, machine identifier, process id, counter ● JSON format: { "_id" : ObjectId("497ce96f395f2f052a494fd4"), "title" : "Awesome Blog Post", "body" : "Text text text text, text text text ...", "created": "Tue, 3 Jan 2011 11:13:56 GMT", "tags" : [ "css", "javascipt", "jquery" ], "comments" : [ { "name" : "Kelly Glover" "text" : "This is a very good ..." }, ], }
  • 17.
  • 18. Adding new NoSQL node is easy Nodes are in ring They know about each other Recalculating keys/nodes
  • 19. Runtime CAP-solving Quorum read/write Fast writes Fast reads Fast, less consistency
  • 20. DEMO
  • 21. Where could we use it? ● Statistics ● Messaging ● Image metadata ● and many others
  • 22. Issues with NoSQL ● No standards ● Very young infrastructure ● Hard to configure
  • 23. Spring DATA ● Single API ● Pretty good ORM ● Doesn't support Cassandra ● Issues with performance ● The lowest common denominator
  • 24. DEMO
  • 25. How to test NoSQL ● Simple Integration tests (simple like in RDBMS) ● Storage - is a "bottleneck", but it testable ● New tools are come to us: NoSQLUnit - simple like DBUnit in RDBMS world ● Good point for managers - just rewrite your DAO
  • 26. DEMO
  • 27. Data retention policy ● What is your data lifecycle? ● How many records in table? ● How often it would be update? ● Is it read only? ● Data lifecycle: create, update, expire, clean ● More reads or writes? ● How often to clean old data?
  • 28. "Cache" your DAO ● Static blocks on page ● "slow-to update" data Levels of caching: 1. Object in DB session of application (ORM) 2. In-memory shared with process: Memcached, EhCache 3. Query caching: Sphinx, Hibernate
  • 29. Memcached SQL request for static data - is very expensive Cheap decision: // get object from memcached Memchached cities = get("cities_key") if (cities == null) { // make your SQL or whatever you do citiesList = query("SELECT * FROM cities") cities.set(citiesList, 60, "cities_key") } return cities
  • 30. Memcached proc & cons ● Really quick access ● Good for little pieces of data ● Key-value ● Not so stable on real high load ● You will loose your business if you reboot all your memcache :) ● 1mb objects by default
  • 31. Memcache: how-to: team lead to beat shit out from you ● Cache transactional requests ● Drop data from cache
  • 32. Search on site: how-to kill your server, step-by-step manual ● SELECT * FROM ... CROSS JOIN ... ● Aggregation requests ● Wrong, or non-effective indexes
  • 33. Move to Sphinx ● Optimization by requests criteria ● Full-text index ● Optimisation and management your requests
  • 34. Other search engines and cache optimization tools ● Solr (Lucene) from Apache - Java world ● Google search on your site :)
  • 35. Store your images - Varnish It's just yet another http accelerator ● Store and shape your images ● In-Memory based ● Manage your files ● It's not a hard drive (with 300 threads/s max)
  • 36. Manage your video storages ● FFMpeg - best tool for conversion ● Always save original file ● User should understand that video doesn't appear in seconds ● Prepare your preview - use varnish
  • 37. Bandwidth and video - or how-to save your ass from angry team lead ● Don't use default configuration ● Shape your bandwidth (include geotargeting) ● Monetisation from your shaped bandwidth ● MP4 shaping on little pieces
  • 38. Storages architecture ● Always use "rings" ● Always protect your data - use 3 server per ring with load balancer ● App servers min value >= 2 ● Your SQL server - always with master-slave, master-master replication ● What is more important data for you - pics with cats or commercial data?
  • 39. When clouds are cool and when are not... ● Ping ● Servers reliability ● Private data
  • 40. Why manager kick your ass for mongoDB in clouds ● MongoDB has master-node, in clouds you can't control servers reliability ● Every technology - is good decision for clouds... unless you don't care about 30's downtime
  • 41. Technologies that uses our colleagues ● Google map-reduce ● Google Big Data Open source: ● Hadoop ● HBase ● ZooKeeper
  • 42. Dependencies and limitations on the High Load architecture ● A lot of convention over configuration ● Turn off your cache - turn off your business ● You live in crashing world ● Much more qualified developer need
  • 43. Conclusions ● Use technologies only if it's business require ● You're lucky if you have High Load ● Persistence is bottleneck in any project: make sure that you have good architecture - use DAO, decompose as more as you can ● Use SQL and vertical scale as much as possible
  • 44. Что почитать? ● NoSQL DB - большой взрыв и расширяющаяся вселенная практических применений ● NoSQL базы данных: понимаем суть ● Записи встреч Клуба анонимных разработчиков #uadevclub ● Кайл Бэнкер: MongoDB в действии ● myforce.ru ● insight-it.ru/highload ● highload.ru