17
Zapping ever faster Hagay Albo

Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDB

Embed Size (px)

Citation preview

Page 1: Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDB

Zapping ever faster

Hagay Albo

Page 2: Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDB

Hagay AlboC.T.O & C.I.O at Zap GroupBSc Computer Science

[email protected]

facebook.com/hagay.albo.3

linkedin.com/in/hagay-albo-605a4722

A little bit about me

Page 3: Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDB

Who we are

Page 4: Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDB

Company Profile

Page 5: Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDB

Print Vs Online Income

Page 6: Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDB

Developing Language

Search Engine

Databases

50 Web .Net Developers20 Back Office DevelopersDevelopment

Page 7: Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDB

Problems we had

• Slow queries results• Expensive• No control• Complicated to develop on• Less Data per page• To many servers• To many points of failure• No updates and improvements

So we decided to look for an alternative NOSQL database

Page 8: Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDB

Server topology

Before After

Page 9: Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDB

Reasons we decided RavenDB

• Search abilities• Custom sorters• Simple to implement replication • Performance• All in C# (linq, extensions, analyzers …)• Easy to install• Wonderful support• Grate tools for monitoring and debugging• Built-in and easy to use facets and spatial• Simple to use studio

Page 10: Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDB

Search abilities

• Analyzers• Did You Mean• More Like This• Boosting• Scoring algorithm

Page 11: Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDB

Custom Sorters

• Easy to write complex sorting• Fast results• Pass arguments from query• All in C#

Example:

Page 12: Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDB

Replication

• Simple to implement• Failover• Load balancing• More than one master• Conflict resolutions

Page 13: Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDB

Performance

• Fast reads• Built in client/server caching• Reduce amount of servers• Increase amount of data per page

Amazon found that every 100ms of latency cost them 1% in sales

Page 14: Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDB

Performance results

• Improved page load time from 0.7s to 0.3s• Reduced average query time to 10ms• Reduced amount of DB servers by half • Doubled the amount of data per page• Around 300 queries a sec per server

Page 15: Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDB

The Result

• Increase of 25% in traffic• Better engagement on site• Improved our bounce rate• Faster to develop on• Developers Love It

Page 16: Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDB

Easy to develop on

• All code in C# (Client and Server)• .NET Client API (LINQ to RavenDB)• Built-in multi level caching• Safe by default• Lazy , multi queries• Simple implementation for security• Install and run in minutes• Easy to scale (replication, sharding)

Page 17: Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDB

Hagay [email protected]