NoSQL at Gumtree

43
Andy Summers, Software Engineer @ NoSQL (or Not Only SQL)

description

Presentation on the usage of NoSQL technologies at Gumtree.com Covers experiences of using Riak, Redis and MongoDB

Transcript of NoSQL at Gumtree

Page 1: NoSQL at Gumtree

Andy Summers, Software Engineer

@NoSQL (or Not Only SQL)

Page 2: NoSQL at Gumtree
Page 3: NoSQL at Gumtree
Page 4: NoSQL at Gumtree

We are the UK’s #1 classifieds website

and in the UK top 30 websites

with over 7 million visitors a month*

Which means almost 1 in 5 UK internet users visit us every month

* Average unique visitors according to ComScore data in 2013

Page 5: NoSQL at Gumtree

A place which connects people to the things they need…

Page 6: NoSQL at Gumtree

• 1.7 million live adverts

• 150 million adverts posted in all time

• 100,000 new adverts per day

• Approx 300,000 replies per day

Source: Gumtree data, November 2013

Page 7: NoSQL at Gumtree

Gumtree Tech

Page 8: NoSQL at Gumtree

Gumtree Tech

• 15 Back End devs• 6 Front End devs• 3 Mobile App devs• 5 Site Ops• 5 Product Managers• 6 QA• 3 Designers

Page 9: NoSQL at Gumtree

Redis

RiakCassandra

mongoDBCouchDB

Neo4j

Page 10: NoSQL at Gumtree

•Replies

•Sessions

•A few other things

Page 11: NoSQL at Gumtree

Replies

Page 12: NoSQL at Gumtree

v.1Mail

ServerMail

Server

REST API

Anony-mizer

CassandraMy

SQL

MobileApps

Page 13: NoSQL at Gumtree

• OSGI

• Two sources of truth?!

Page 14: NoSQL at Gumtree

MySQL MySQL

Scalability?

Page 15: NoSQL at Gumtree

Cassandra

?

Page 16: NoSQL at Gumtree

‘We need something better’

Page 17: NoSQL at Gumtree

v.2Mail

ServerMail

Server

REST API

Anony-mizer

ElasticSearch

RIAK

MobileApps

Page 18: NoSQL at Gumtree

‘Just a Key-Value Store’

• Real-time Querying?

• Reporting?

• My manager wants to know how many of x happened in y?

Page 19: NoSQL at Gumtree

“But all of this

works fine in

MySQL…”

Page 20: NoSQL at Gumtree

Use the Right Tool

for the Right Job

Page 21: NoSQL at Gumtree

The German Story

Page 22: NoSQL at Gumtree

Using iak for ReplyTS

15TB

18Nodes

2Data

centers

Page 23: NoSQL at Gumtree

And then we Launched.

And everything was fine!

Page 24: NoSQL at Gumtree

Well, at least 3 Months…

Page 25: NoSQL at Gumtree
Page 26: NoSQL at Gumtree
Page 27: NoSQL at Gumtree

alwaysNew Technology

fails!

Page 28: NoSQL at Gumtree

Backup... and if you can’t: have a backup plan

Have a

Page 29: NoSQL at Gumtree

Dear Basho Devs,

Page 30: NoSQL at Gumtree

So where are Gumtree in all this?

• Keeping a close eye on eBay Kleinanzeigen’s experiences

• Acknowledging that staying with the MySQL and Cassandra solution, is not suitable for Gumtree’s long term needs

Page 31: NoSQL at Gumtree

Sessions

Page 32: NoSQL at Gumtree

Richard

Gumtree servers

Interweb

Improving support for regular software releases

Page 33: NoSQL at Gumtree

Oh… That’s not good.

• Off-peak release times only

• Sticky sessions have a lot to answer for

• Have to restart instance => Kill everyone on it

Page 34: NoSQL at Gumtree

redis

Page 35: NoSQL at Gumtree

Redis

• ‘Just another key-value store’

• Data typing

• TTL support

• Support for master-slave, monitoring, publish-subscribe

Page 36: NoSQL at Gumtree

Richard

Gumtree servers

Interweb

Success!

Redis

Page 37: NoSQL at Gumtree

Redis – all good?• Single master = single point of failure

• Sentinel – potential 66 seconds of downtime when master fails?

• Sharding is never easy

• Not tested dual data centre setup

Page 38: NoSQL at Gumtree

The Other Stuff

Page 39: NoSQL at Gumtree

mongoDB

Page 40: NoSQL at Gumtree

• Popular Search Tracking

– High realtime write-traffic

– Regretting this a lot

• Some low traffic use cases

– Low traffic, low read

• Some batch event analysis

– Batched reads and writes

Page 41: NoSQL at Gumtree

In Conclusion

• Data consistency vs. High availability

• NoSQL comes in many different guises, technologies suited for different use cases

• No technology is perfect

Page 42: NoSQL at Gumtree

If you enjoyed this talk and like Gumtree

• eBay Tech Meetups across Europe– http://www.meetup.com/eBay-Europe-Technology

• Gumtree Careers via LinkedIn– http://linkd.in/1eu4rK5

Page 43: NoSQL at Gumtree

Thank You!

…Questions or comments?