12
In a constantly changing industry you need a forward-thinking technology partner Introducing Mache – an Open Source Big Data Cache James Bowkett @techwob [email protected]

Introducing Mache

Embed Size (px)

Citation preview

In a constantly changing industry you needa forward-thinking technology partner

Introducing Mache – an Open Source Big Data Cache

James Bowkett@[email protected]

What is Mache?

2

Mache is a NoSQL near cache with eventing; built from a 'mash-up' of Open Source technologies with multiple pluggable NoSQL support and multiple pluggable messaging platforms. We have used all the well known Open-Source technologies. The heart of the system is akin to a HashMap - using Google's Guava cache and Spring Data.

The principle idea behind Mache was to abstract itself from the Database layer. As a result it allows the two to remain somewhat independent of each other, enabling concentration on development and performance rather than scaling out the data layer. It has been engineered to be as lightweight as possible, and because of the Vendor independence, Mache could offer a free caching solution to an already deployed NoSQL database. It doesn’t need to know about the volume of data which means that it can be as performant as the system allows.

It was also designed to be a piece of software which integrates well with other software. It offers support for NoSQL programmes such as Cassandra, MongoDB and Couchbase. But it also lends itself well to support integration with pre-existing systems such as Kafka, RabbitMQ and ActiveMQ message services.

3

What is Mache?

Mache(in-memory cache)

Cassandra

Mongo

Couchbase

Rabbit MQ

Kafka

Active MQ

Can write through to…

Can send notifications to…

File

4

Example Use Cases

• Generally speaking, most grid applications will have a heavy reliance on read-mostly data. More relevant to today’s challenges are MiFID II and CVA.

• Since the introduction of the MiFID II market makers must warehouse the audit data around their prices and spread calculations. This inevitably leads to the storage of large volumes of data, which also offers the opportunity for Big Data. Applications now need to read and write this data, and we believe Mache offers the opportunity to help turn a ‘data lake’ into a localised manageable view of this data deluge.

• Take for instance, today’s trades or their price points. Mache fits naturally within the speed layer in a lambda architecture.

• Credit Value Adjustment (CVA) requires large volumes of Monte Carlo data, and in some cases will need 300-400GB of data for a single day. When stress testing or back testing is being performed, you could need 30+ days’ worth of data on each compute node. 400GB * 10k = a lot of data!

Why have you built Mache?

• The original idea was to provide an open source alternative to Coherence

• Other caching API’s tend to offer their own persistence formats, instead of integrating with the leading NoSQL vendors

• The network is often the bottleneck within grid platforms, near side caching is a solution

• Filtered views will open up use cases

– E.g. only view a trader’s trades for today

– Market/reference data distribution to processing nodes

5

How does Mache improve performance?

6

How does Mache improve performance?

7

How do I use Mache?

8

How does Mache compare with other existing technologies?

The following is a list of technologies that can fulfil similar use cases to Mache. While they are all leading technologies in their field, it is important to note how they are distinctly different to Mache.

Ehcache - is a distributed JSR-107-compliant cache that has pluggable storage mechanisms (on-heap/off-heap and file-based). However it doesn't have out-of-the-box support for any NoSQL platforms.

Gridgain - is a purely in-memory data and processing grid platform. It has no current support for NoSQL platforms.

Hazelcast - is another in-memory grid implementation, often marketed as a replacement for Oracle Coherence.

Infinispan - is a single node or clustered JSR-107-compliant in-memory cache implementation. Its persistence is handled by pluggable adapters the application teams may have to write themselves. It provides no NoSQL support as standard.

Memcached - is a multi-node object cache with no persistence mechanism as standard.

Redis - is an all-purpose in-memory data store with no persistence mechanism as standard.

In our view, there was no pre-existing solution that would provide for the simplest use case of near caching to abstract away storage whilst still supporting the big 3 platforms. We proposed a solution that would adhere to the following guiding principles:

Lightweight - the Mache-core jar depends on 3 other libraries (in addition to any required vendor drivers for messaging or persistence)

Pluggable with existing NoSQL Platforms, and thereby creating no vendor lock-in

Provide a small set of valuable features, adhering to the Unix principle of 'do one thing, and do it well'

9

So what is next for Mache?

We have quite a few enhancements on our list. In no particular order:

JMX to provide configuration and management

Overflow cache - so we can overflow from memory to disk using something like Berkley DB

JSON/Rest API - to provide a platform agnostic way of accessing local cached data which is run in a service.

Eventing straight from the database

Filtered materialised views/Continuous query caches

Shared cache instance between processes

Distributed file system

10

What’s next for Mache?

For more information:

• email us at [email protected]

• https://github.com/excelian/mache

• 0.6.1 available on jcenter/bintray

• Read more on our blog – Mache – Near Side Caching for NoSQL.

11

http://www.excelian.com/blog/mache---near-side-caching-for-nosql-/#.Vl2sME02q70

Cape Town Office1st Floor, Corporate Place

13 Mispel Road, BellvilleCape Town, 7530

South Africa+27(0) 21 944 9900

Johannesburg Office4th Floor, The Firs

Cradock Avenue. RosebankJohannesburg, SA

+27 (0) 11 759 4020

New York Office8th Floor, 260 Madison Avenue

New York, NY 10016United States

+1646 216 2065

Frankfurt OfficeBrockenheimer Landstrasse 17/19

60325 FrankfurtGermany

+49 (0) 69 710455 183

London Office44 Featherstone Street

London, EC1Y 8RNUnited Kingdom

Sydney Office1 York Street

Level 2Sydney, NSW 2000

Australia+61 (2) 9191 7810

Toronto Office100 King Street West, Suite 5600

Toronto, Ontario M5X 1C9Canada

+1 (203) 295 5240

www.excelian.com