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

Post on 15-Jan-2017

205 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

Transcript

Zapping ever faster

Hagay Albo

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

Hagay@albos.co.il

facebook.com/hagay.albo.3

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

A little bit about me

Who we are

Company Profile

Print Vs Online Income

Developing Language

Search Engine

Databases

50 Web .Net Developers20 Back Office DevelopersDevelopment

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

Server topology

Before After

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

Search abilities

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

Custom Sorters

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

Example:

Replication

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

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

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

The Result

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

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)

Hagay AlboHagay@albos.co.il

top related