SlideShare ist ein Scribd-Unternehmen logo
1 von 56
Downloaden Sie, um offline zu lesen
How NoSQL Paid Off for Telenor
JavaZone
13 September 2012 - Oslo
Sebastian Verheughe


         Architect and developer
Telenor - mobile middleware services (COS)




           Katrina Sponheim


         Architect and developer
 Telenor – business self service solutions
Telenor NoSQL Experience


            o The problem

            o The business case

            o The solution

            o The challenges

            o The results

            o My 5 cents
The Problem
Min Bedrift




   Self service portal where Telenor's corporate
  customers can manage their entire portfolio of
                     products.



 From   small businesses   to   large corporations
Telenor's Corporate Customer Structure



    Customer Acme Corporation
         Customer Acme Consulting
         Customer Acme Development
              Account Construction
              Account Demolition
                   Subscription Huey
                   Subscription Dewey
                   Subscription Louie
The Challenge With Large Corporate Customers

Customers with large portfolios presented a couple of
challenges for the self service solution Min Bedrift:


1. Middleware Services - Not Designed for Search
   The middleware services were not designed for managing
   large data volumes, resulting in a lot of processing in the
   client, and the need for extensive caching there.


2. Resource Authorization – Long Calculation Time
   User access to resources required the middleware to
   calculate and cache all accesses at logon, something that
   could take up to many minutes.
The Nightly Logon & Pre-fetch Solution

In order to achieve acceptable response times in MinBedrift,
administrators were logged on and customer data was pre-
fetched and put in a cache each night.


However, as the usage of the solution grew, it became obvious
that the time window available for pre-fetching each night was
closing fast.

            0                   0                   0



     9             3     9             3      9            3



            6                   6                   6

          2012                2013                2014
The Future - Unhandled

Telenor calculated that the pre-fetch time window would soon
be filled, and a increasing percentage of the customers would
experience logon response times above the acceptable x sec.


    Login     Not pre-fetched   Pre-fetched
    time




                                      Portfolio Size
x

                                        Customer Portfolio Size
The Business Impact

In the end, Telenor would risk losing corporate customers due
to deteriorated customer experience
Other Caching Drawbacks

o Stale data up to 24 hours old


o Refresh/login for new users still takes a lot of time


o Memory challenges in Min Bedrift


o Unwanted network/middleware/database load
The Business Case
Business Case

The business case is built on the negative consequence of NOT
addressing the problem.




                             Loss of customers (revenue)

                             Reduced sales transactions (revenue)

                             Increased manual support (expenses)

                             Other
The Solution
Solution Requirements - High Level



The middleware search services should be designed to support
large data sets in a better way for the all clients.




Resource authorization must be fast enough to deliver real time
calculations on demand.
The Previous Architecture


 Client   Client   Client            Client   Client   Client




                   Middleware Services




                            Master
                             Data
                            RDBMS




                     Multiple Sources
The New Architecture
One Master (r/w) – Several Replicas (r)

  Client          Client   Client            Client   Client           Client




                           Middleware Services




                                    Master
                                     Data
                               Sybase RDBMS
           Search                                         Res Auth
           Solr / Lucene                                       Neo4j

                             Multiple Sources
Domain Event Messaging




                  Domain                    Domain
                   Event                     Event


  Search                   Messaging                 Res Auth
  Solr / Lucene            Apache   Camel              Neo4j




                                Raw DB
                                 Event




                              Master
                               Data
                              RDBMS
Putting it All Together



Min Bedrift                 MW Search                    MW Auth


          search
                                  getAuthorizedResources




                                        filteredSearch

         authorized match
Lucene / Solr
    Solution
Search Service
Today implemented in Min Bedrift


 o Cached nightly


 o Simple, and iterates over the nodes when searching


 o With memory/GC challenges
New Search Service
Data stored in Solr/Lucene search engine


 o New middleware module exposing WS using tomcat


 o Everything indexed makes search extremely fast


 o De-normalized data does not require joins


 o Search by relevance, paging, sorting and much more
Solr Cores



                           Customer



                Search
Client                      Account
                Service



                          Subscription
Entity Denormalization
An entity may include data from several tables



     Customer




      Account      also contains customer name & id



    Subscription   also contains account name & id
Solr/Lucene - Denormalized List View


                                                has
                              Subscription

       Customer
                                                Account
                               user




    Arthur | Jackson   Total      555 21 1234     2341
    Lisa | Simpson     Youth      555 64 3634     3435
     John | Brown       Pro       555 25 5433     5352
Searching by Relevance

Search some or all rows, and return hits by relevance (or sorted)


  Subscription
  User Name   Subscription   Phone Number       Account Ref.   Score        Rank

  Jane        Youth          555 21 3253    5   3253     10            15     1
  Paul        Premium        555 23 4365        5262

  John        Standard       555 95 1436        7346

  Nina        Standard       555 15 3263        3734

  Lydia       Youth          555 92 3253
                                            5   7334                   5
                                                                              2
  Tom         Standard       555 02 6394        3212

  Neil        Premium        555 03 2583        3523
Neo4j
Solution
Resource Authorization Service
Stored procedure in RDBMS calculating all accesses


 o Uses several minutes to calculate for large customers


 o Cached for up to 24 hours


 o Extremely complex to understand (1500 lines of sql)


 o Tightly coupled with other services querying the database
New Resource Authorization Service
Customer structure stored in Neo4j graph database


 o New middleware module exposing WS using tomcat


 o Designed to focus on the relationships between objects


 o Very fast – independent of total amount of objects stored
Nodes and Relationships
      o Relationships with type and direction
      o Nodes (with type as property)

                                       U
                                            USER_ACCESS (with prop inherit: true/false)

                                       C
                                                PART_OF
C
                                                  C
                                                        CONTROLLED_BY
           A
                              A
                                            A              A
S              S                                                  SUBSCRIBED_BY
           S             S         S              S
                              S                                    S
                                            S               S



    User           Customer       Account               Subscription
Traversal (query)
    All traversals start from a single node


                                                The start node is often the
                                       U
                                                user node in our case


                                       C
C
                                                 C
           A
                              A                                               A
                                            A           A
S              S
           S             S         S             S                   S
                              S                                 S             S
                                            S           S



    User           Customer       Account            Subscription
Following the Relationships


One custom PathExpander class

   o Only follow valid relationships and direction

   o Only follow necessary relationships

   o Check inheritance rules for current path



Just override the expand method

      Iterable<Relationship> expand(Path, BranchState)
Picking the Nodes


Custom Evaluator

   o Decide to include or exclude

   o Delegate to filter that fits your search

   o Filter may further evaluate neighbor nodes

Just override the evaluate method
      Evaluation evaluate(Path path){
             if (resourceFilter.filter(path)
                    return Evaluation.INCLUDE_AND_CONTINUE
             return Evaluation.EXCLUDE_AND_CONTINUE
      }
Example Access Authorization
    Retrieve all subscriptions using a fan out search



                   U


                                       C
C
                                                C
           A
                              A                                        A
                                            A          A
S              S
           S             S         S            S                  S
                              S                                S       S
                                            S           S



    User           Customer       Account           Subscription
Example Access Authorization
    Has access to resource using a reverse search to limit number
    of nodes to evaluate. Find all paths, and validate one of them.

                   U


                                       C
C
                                                C
           A
                              A                                        A
                                            A          A
S              S
           S             S         S            S                  S
                              S                                S       S
                                            S           S



    User           Customer       Account           Subscription
The Challenges
Lucene/Solr

o   Using a document store in a relational world – updates


o   Change mindset to search by relevance, not sorting


o   The time is in the small stuff – not difficult but needs learning


o   What type of queries to search on this platform, and NOT


o   Scaling & Distribution – Actually, not a challenge…
Neo4j

o Competence


o New way of thinking


o Making them really fast (profile & understand graph impl)


o Getting the classic middleware take use of the new service


o What type of queries to search on this platform, and NOT


o Scaling, not easy across servers (not needed for now)
Messaging


o Mapping from a relational model (need cache)
The Results
Project State


 o Phase 1 in production (subscription only, nightly populated)


 o Phase 2 in system test (the rest + live population)


The following results are from the test environment now
Neo4J Runtime Environment

Initial State:    Prewarmed at startup, all data in heap


Population:       ~20 M nodes (all indexed)
                  ~20 M node properties (only 1 per node)
                  ~50 M relationships
                  Batchwise (50 K nodes) in 35 minutes


Base heap usage: 10 GB (of 16 GB)


Load:             Minimal (not measured with heavy load)
Neo4J Measured Performance

Customers measured for performance:
Corporation    Customer      Accounts   Subscriptions
X              160           1 300      147 000
Y              32 000        23 000     52 000
Z              7             18         95 000




          X                  Y             Z
Neo4J Measured Performance

Find accounts




      10 ms       260 ms     2 ms




     X: 1 300    Y: 23 000   Z: 18
Neo4J Measured Performance

Find subscriptions




     1 700 ms         750 ms      1300 ms




    X: 147 000       Y: 52 000   Z: 95 000
Neo4J Measured Performance

Has access to subscription




      2 ms            2 ms   2 ms




       X               Y      Z
Solr/Lucene Measured Performance

Find subscriptions




       7 ms          58 ms     4 ms




        X             Y            Z
Service Performance from Min Bedrift

“Google” search for corporation x: 120 ms

                    Min Bedrift


                            searchAllResources


           120 ms   Search Solr


                            findAuthorizedResources


            55 ms   Auth Graph
Old vs. New Resource Authorization Service



Calculate All Resources      RDBMS            Graph
X                         12 min     18 sec     < 2 sec
Y                         22 min     58 sec     < 2 sec
Z                          3 min     15 sec     < 2 sec
                            Cold     Warm         Heap
Min Bedrift

Demo
Summary


 Scalable     It allows customer growth


 Fast logon   On demand resource authorization


 Fast search Server side search engine much faster


 Reusable     All clients may use new services


 Fresh data   Not up to 24 hours old – almost live
Alternatives

In-Memory Database (Sybase)
This option was discussed, but license cost and the uncertainty
if it would be enough made us go for the NoSQL option.


Other NoSQL Solutions
We chose to prototype Neo4j and Lucene/Solr because they
were popular and seemed to fit us well, and since it worked we
stuck with them.
How We Started Using NoSQL Technology

 o Downloaded and prototyped technology very early
 o Got training on site to accelerate the development startup
 o At the end of development, did a review/QA of the solution




For Lucene/Solr, we got training and support from local Solr/Lucene
expert consultant Jan Høydahl


For Neo4j, we got training and excellent support from NeoTech directly
My 5 Cents
Think About…
New Technology
Do you have enough in-house competence, or can you easily buy the
necessary competence? Also when maintaining the code.

No Language Standard for Graph Databases
How simple (or possible) is it to change the NoSQL provider?


Working With Relationships
Graph databases are intuitive and fast to work with when interested
in how objects are related to each other.

Gentle NoSQL Introduction
Easier to start using when supporting a specific and limited services

Complexity
You introduce complexity, so make sure it is worth it!
The End
Questions?

Weitere ähnliche Inhalte

Was ist angesagt?

Event Driven-Architecture from a Scalability perspective
Event Driven-Architecture from a Scalability perspectiveEvent Driven-Architecture from a Scalability perspective
Event Driven-Architecture from a Scalability perspectiveJonas Bonér
 
Agile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAgile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAraf Karsh Hamid
 
Databus - LinkedIn's Change Data Capture Pipeline
Databus - LinkedIn's Change Data Capture PipelineDatabus - LinkedIn's Change Data Capture Pipeline
Databus - LinkedIn's Change Data Capture PipelineSunil Nagaraj
 
Increase Profits with Better Vehicle Listing Data
Increase Profits with Better Vehicle Listing DataIncrease Profits with Better Vehicle Listing Data
Increase Profits with Better Vehicle Listing DataConnotate
 
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at DatabricksLessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at DatabricksDatabricks
 
Cloudstate - Towards Stateful Serverless
Cloudstate - Towards Stateful ServerlessCloudstate - Towards Stateful Serverless
Cloudstate - Towards Stateful ServerlessLightbend
 
Unlocking the Power of Salesforce Integrations with Confluent
Unlocking the Power of Salesforce Integrations with ConfluentUnlocking the Power of Salesforce Integrations with Confluent
Unlocking the Power of Salesforce Integrations with ConfluentAaronLieberman5
 
What is happening with my microservices?
What is happening with my microservices?What is happening with my microservices?
What is happening with my microservices?Israel Blancas
 
Databus: LinkedIn's Change Data Capture Pipeline SOCC 2012
Databus: LinkedIn's Change Data Capture Pipeline SOCC 2012Databus: LinkedIn's Change Data Capture Pipeline SOCC 2012
Databus: LinkedIn's Change Data Capture Pipeline SOCC 2012Shirshanka Das
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services ArchitectureAraf Karsh Hamid
 
Microservices, Kafka Streams and KafkaEsque
Microservices, Kafka Streams and KafkaEsqueMicroservices, Kafka Streams and KafkaEsque
Microservices, Kafka Streams and KafkaEsqueconfluent
 
Oracle ZDM KamaleshRamasamy Sangam2020
Oracle ZDM KamaleshRamasamy Sangam2020Oracle ZDM KamaleshRamasamy Sangam2020
Oracle ZDM KamaleshRamasamy Sangam2020Kamalesh Ramasamy
 
Webinar: Large Scale Graph Processing with IBM Power Systems & Neo4j
Webinar: Large Scale Graph Processing with IBM Power Systems & Neo4jWebinar: Large Scale Graph Processing with IBM Power Systems & Neo4j
Webinar: Large Scale Graph Processing with IBM Power Systems & Neo4jNeo4j
 
50 Shades of Data - how, when and why Big, Fast, Relational, NoSQL, Elastic, ...
50 Shades of Data - how, when and why Big, Fast, Relational, NoSQL, Elastic, ...50 Shades of Data - how, when and why Big, Fast, Relational, NoSQL, Elastic, ...
50 Shades of Data - how, when and why Big, Fast, Relational, NoSQL, Elastic, ...Lucas Jellema
 
Lessons from Large-Scale Cloud Software at Databricks
Lessons from Large-Scale Cloud Software at DatabricksLessons from Large-Scale Cloud Software at Databricks
Lessons from Large-Scale Cloud Software at DatabricksMatei Zaharia
 
Oracle Service Bus and Oracle SOA Suite in the Mobile World
Oracle Service Bus and Oracle SOA Suite in the Mobile WorldOracle Service Bus and Oracle SOA Suite in the Mobile World
Oracle Service Bus and Oracle SOA Suite in the Mobile WorldGuido Schmutz
 
Lean Enterprise, Microservices and Big Data
Lean Enterprise, Microservices and Big DataLean Enterprise, Microservices and Big Data
Lean Enterprise, Microservices and Big DataStylight
 

Was ist angesagt? (20)

Event Driven-Architecture from a Scalability perspective
Event Driven-Architecture from a Scalability perspectiveEvent Driven-Architecture from a Scalability perspective
Event Driven-Architecture from a Scalability perspective
 
Agile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAgile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven Design
 
Databus - LinkedIn's Change Data Capture Pipeline
Databus - LinkedIn's Change Data Capture PipelineDatabus - LinkedIn's Change Data Capture Pipeline
Databus - LinkedIn's Change Data Capture Pipeline
 
Increase Profits with Better Vehicle Listing Data
Increase Profits with Better Vehicle Listing DataIncrease Profits with Better Vehicle Listing Data
Increase Profits with Better Vehicle Listing Data
 
Oracle GoldenGate
Oracle GoldenGate Oracle GoldenGate
Oracle GoldenGate
 
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at DatabricksLessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
 
Cloudstate - Towards Stateful Serverless
Cloudstate - Towards Stateful ServerlessCloudstate - Towards Stateful Serverless
Cloudstate - Towards Stateful Serverless
 
Unlocking the Power of Salesforce Integrations with Confluent
Unlocking the Power of Salesforce Integrations with ConfluentUnlocking the Power of Salesforce Integrations with Confluent
Unlocking the Power of Salesforce Integrations with Confluent
 
What is happening with my microservices?
What is happening with my microservices?What is happening with my microservices?
What is happening with my microservices?
 
Databus: LinkedIn's Change Data Capture Pipeline SOCC 2012
Databus: LinkedIn's Change Data Capture Pipeline SOCC 2012Databus: LinkedIn's Change Data Capture Pipeline SOCC 2012
Databus: LinkedIn's Change Data Capture Pipeline SOCC 2012
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services Architecture
 
Microservices, Kafka Streams and KafkaEsque
Microservices, Kafka Streams and KafkaEsqueMicroservices, Kafka Streams and KafkaEsque
Microservices, Kafka Streams and KafkaEsque
 
Oracle ZDM KamaleshRamasamy Sangam2020
Oracle ZDM KamaleshRamasamy Sangam2020Oracle ZDM KamaleshRamasamy Sangam2020
Oracle ZDM KamaleshRamasamy Sangam2020
 
Webinar: Large Scale Graph Processing with IBM Power Systems & Neo4j
Webinar: Large Scale Graph Processing with IBM Power Systems & Neo4jWebinar: Large Scale Graph Processing with IBM Power Systems & Neo4j
Webinar: Large Scale Graph Processing with IBM Power Systems & Neo4j
 
50 Shades of Data - how, when and why Big, Fast, Relational, NoSQL, Elastic, ...
50 Shades of Data - how, when and why Big, Fast, Relational, NoSQL, Elastic, ...50 Shades of Data - how, when and why Big, Fast, Relational, NoSQL, Elastic, ...
50 Shades of Data - how, when and why Big, Fast, Relational, NoSQL, Elastic, ...
 
Lessons from Large-Scale Cloud Software at Databricks
Lessons from Large-Scale Cloud Software at DatabricksLessons from Large-Scale Cloud Software at Databricks
Lessons from Large-Scale Cloud Software at Databricks
 
IBM Cloud Direct Link 2.0
IBM Cloud Direct Link 2.0IBM Cloud Direct Link 2.0
IBM Cloud Direct Link 2.0
 
Oracle Service Bus and Oracle SOA Suite in the Mobile World
Oracle Service Bus and Oracle SOA Suite in the Mobile WorldOracle Service Bus and Oracle SOA Suite in the Mobile World
Oracle Service Bus and Oracle SOA Suite in the Mobile World
 
Lean Enterprise, Microservices and Big Data
Lean Enterprise, Microservices and Big DataLean Enterprise, Microservices and Big Data
Lean Enterprise, Microservices and Big Data
 
Oracle Coherence
Oracle CoherenceOracle Coherence
Oracle Coherence
 

Andere mochten auch

Managing Genetic Ancestry at Scale with Neo4j and Kafka - StampedeCon 2015
Managing Genetic Ancestry at Scale with Neo4j and Kafka - StampedeCon 2015Managing Genetic Ancestry at Scale with Neo4j and Kafka - StampedeCon 2015
Managing Genetic Ancestry at Scale with Neo4j and Kafka - StampedeCon 2015StampedeCon
 
Graph cafe-lightning
Graph cafe-lightningGraph cafe-lightning
Graph cafe-lightningVolker Pacher
 
Strategic Design by Architecture and Organisation @ FINN.no - JavaZone 2016
Strategic Design by Architecture and Organisation @ FINN.no - JavaZone 2016Strategic Design by Architecture and Organisation @ FINN.no - JavaZone 2016
Strategic Design by Architecture and Organisation @ FINN.no - JavaZone 2016Sebastian Verheughe
 
Using Graph Databases in Real-time to Solve Resource Authorization at Telenor...
Using Graph Databases in Real-time to Solve Resource Authorization at Telenor...Using Graph Databases in Real-time to Solve Resource Authorization at Telenor...
Using Graph Databases in Real-time to Solve Resource Authorization at Telenor...Neo4j
 
GraphConnect Europe 2016 - Semantic PIM: Using a Graph Data Model at Toy Manu...
GraphConnect Europe 2016 - Semantic PIM: Using a Graph Data Model at Toy Manu...GraphConnect Europe 2016 - Semantic PIM: Using a Graph Data Model at Toy Manu...
GraphConnect Europe 2016 - Semantic PIM: Using a Graph Data Model at Toy Manu...Neo4j
 
Building a Distributed Reservation System with Cassandra (Andrew Baker & Jeff...
Building a Distributed Reservation System with Cassandra (Andrew Baker & Jeff...Building a Distributed Reservation System with Cassandra (Andrew Baker & Jeff...
Building a Distributed Reservation System with Cassandra (Andrew Baker & Jeff...DataStax
 
Automotive community platform - My Garage
Automotive community platform - My GarageAutomotive community platform - My Garage
Automotive community platform - My GarageDejan Restak
 
Telenor Group Q3 2014 financial results
Telenor Group Q3 2014 financial resultsTelenor Group Q3 2014 financial results
Telenor Group Q3 2014 financial resultsTelenor_Group
 
Why paperless lab is just the first step towards a smart lab
Why paperless lab is just the first step towards a smart labWhy paperless lab is just the first step towards a smart lab
Why paperless lab is just the first step towards a smart labOSTHUS
 
Sharepoint conf 5 - g mills
Sharepoint conf 5 - g millsSharepoint conf 5 - g mills
Sharepoint conf 5 - g millsMIchael Carey
 
2010 01 27 Surveying the ELN Landscape
2010 01 27 Surveying the ELN Landscape2010 01 27 Surveying the ELN Landscape
2010 01 27 Surveying the ELN LandscapeSimon Coles
 
2005 04 05 SRI ELN Architecture
2005 04 05 SRI ELN Architecture2005 04 05 SRI ELN Architecture
2005 04 05 SRI ELN ArchitectureSimon Coles
 
P&g presentation
P&g presentationP&g presentation
P&g presentationElisa Reyes
 
Heiner Oberkampf: Semantics for Integrated Analytical Laboratory Processes – ...
Heiner Oberkampf: Semantics for Integrated Analytical Laboratory Processes – ...Heiner Oberkampf: Semantics for Integrated Analytical Laboratory Processes – ...
Heiner Oberkampf: Semantics for Integrated Analytical Laboratory Processes – ...Semantic Web Company
 
Electronic Lab Notebooks
Electronic Lab NotebooksElectronic Lab Notebooks
Electronic Lab NotebooksKristin Briney
 
Most important features when choosing an electronic lab notebook
Most important features when choosing an electronic lab notebookMost important features when choosing an electronic lab notebook
Most important features when choosing an electronic lab notebooksciNote LLC
 
Lab Notebooks as Data Management (SLA Winter Virtual Conference 2012)
Lab Notebooks as Data Management (SLA Winter Virtual Conference 2012)Lab Notebooks as Data Management (SLA Winter Virtual Conference 2012)
Lab Notebooks as Data Management (SLA Winter Virtual Conference 2012)Kristin Briney
 
Wanderu - Lessons from Building a Travel Site with Neo4j
Wanderu - Lessons from Building a Travel Site with Neo4jWanderu - Lessons from Building a Travel Site with Neo4j
Wanderu - Lessons from Building a Travel Site with Neo4jNeo4j
 

Andere mochten auch (20)

Managing Genetic Ancestry at Scale with Neo4j and Kafka - StampedeCon 2015
Managing Genetic Ancestry at Scale with Neo4j and Kafka - StampedeCon 2015Managing Genetic Ancestry at Scale with Neo4j and Kafka - StampedeCon 2015
Managing Genetic Ancestry at Scale with Neo4j and Kafka - StampedeCon 2015
 
Graph cafe-lightning
Graph cafe-lightningGraph cafe-lightning
Graph cafe-lightning
 
Strategic Design by Architecture and Organisation @ FINN.no - JavaZone 2016
Strategic Design by Architecture and Organisation @ FINN.no - JavaZone 2016Strategic Design by Architecture and Organisation @ FINN.no - JavaZone 2016
Strategic Design by Architecture and Organisation @ FINN.no - JavaZone 2016
 
Using Graph Databases in Real-time to Solve Resource Authorization at Telenor...
Using Graph Databases in Real-time to Solve Resource Authorization at Telenor...Using Graph Databases in Real-time to Solve Resource Authorization at Telenor...
Using Graph Databases in Real-time to Solve Resource Authorization at Telenor...
 
GraphConnect Europe 2016 - Semantic PIM: Using a Graph Data Model at Toy Manu...
GraphConnect Europe 2016 - Semantic PIM: Using a Graph Data Model at Toy Manu...GraphConnect Europe 2016 - Semantic PIM: Using a Graph Data Model at Toy Manu...
GraphConnect Europe 2016 - Semantic PIM: Using a Graph Data Model at Toy Manu...
 
Building a Distributed Reservation System with Cassandra (Andrew Baker & Jeff...
Building a Distributed Reservation System with Cassandra (Andrew Baker & Jeff...Building a Distributed Reservation System with Cassandra (Andrew Baker & Jeff...
Building a Distributed Reservation System with Cassandra (Andrew Baker & Jeff...
 
Telenor
TelenorTelenor
Telenor
 
Automotive community platform - My Garage
Automotive community platform - My GarageAutomotive community platform - My Garage
Automotive community platform - My Garage
 
Telenor Group Q3 2014 financial results
Telenor Group Q3 2014 financial resultsTelenor Group Q3 2014 financial results
Telenor Group Q3 2014 financial results
 
My Garage - Pitch
My Garage - PitchMy Garage - Pitch
My Garage - Pitch
 
Why paperless lab is just the first step towards a smart lab
Why paperless lab is just the first step towards a smart labWhy paperless lab is just the first step towards a smart lab
Why paperless lab is just the first step towards a smart lab
 
Sharepoint conf 5 - g mills
Sharepoint conf 5 - g millsSharepoint conf 5 - g mills
Sharepoint conf 5 - g mills
 
2010 01 27 Surveying the ELN Landscape
2010 01 27 Surveying the ELN Landscape2010 01 27 Surveying the ELN Landscape
2010 01 27 Surveying the ELN Landscape
 
2005 04 05 SRI ELN Architecture
2005 04 05 SRI ELN Architecture2005 04 05 SRI ELN Architecture
2005 04 05 SRI ELN Architecture
 
P&g presentation
P&g presentationP&g presentation
P&g presentation
 
Heiner Oberkampf: Semantics for Integrated Analytical Laboratory Processes – ...
Heiner Oberkampf: Semantics for Integrated Analytical Laboratory Processes – ...Heiner Oberkampf: Semantics for Integrated Analytical Laboratory Processes – ...
Heiner Oberkampf: Semantics for Integrated Analytical Laboratory Processes – ...
 
Electronic Lab Notebooks
Electronic Lab NotebooksElectronic Lab Notebooks
Electronic Lab Notebooks
 
Most important features when choosing an electronic lab notebook
Most important features when choosing an electronic lab notebookMost important features when choosing an electronic lab notebook
Most important features when choosing an electronic lab notebook
 
Lab Notebooks as Data Management (SLA Winter Virtual Conference 2012)
Lab Notebooks as Data Management (SLA Winter Virtual Conference 2012)Lab Notebooks as Data Management (SLA Winter Virtual Conference 2012)
Lab Notebooks as Data Management (SLA Winter Virtual Conference 2012)
 
Wanderu - Lessons from Building a Travel Site with Neo4j
Wanderu - Lessons from Building a Travel Site with Neo4jWanderu - Lessons from Building a Travel Site with Neo4j
Wanderu - Lessons from Building a Travel Site with Neo4j
 

Ähnlich wie How NOSQL Paid off for Telenor

Ebs architecture con9036_pdf_9036_0001
Ebs architecture con9036_pdf_9036_0001Ebs architecture con9036_pdf_9036_0001
Ebs architecture con9036_pdf_9036_0001jucaab
 
Day Of Cloud - Windows Azure Platform
Day Of Cloud - Windows Azure PlatformDay Of Cloud - Windows Azure Platform
Day Of Cloud - Windows Azure PlatformWade Wegner
 
Making communication across boundaries simple with Azure Service Bus
Making communication across boundaries simple with Azure Service BusMaking communication across boundaries simple with Azure Service Bus
Making communication across boundaries simple with Azure Service BusParticular Software
 
Service Discovery and Registration in a Microservices Architecture
Service Discovery and Registration in a Microservices ArchitectureService Discovery and Registration in a Microservices Architecture
Service Discovery and Registration in a Microservices ArchitecturePLUMgrid
 
Cloud Architecture Tutorial - Running in the Cloud (3of3)
Cloud Architecture Tutorial - Running in the Cloud (3of3)Cloud Architecture Tutorial - Running in the Cloud (3of3)
Cloud Architecture Tutorial - Running in the Cloud (3of3)Adrian Cockcroft
 
From AWS to Series A in 5 Easy Pieces
From AWS to Series A in 5 Easy PiecesFrom AWS to Series A in 5 Easy Pieces
From AWS to Series A in 5 Easy PiecesAmazon Web Services
 
Overcoming the Top Four Challenges to Real‐Time Performance in Large‐Scale, D...
Overcoming the Top Four Challenges to Real‐Time Performance in Large‐Scale, D...Overcoming the Top Four Challenges to Real‐Time Performance in Large‐Scale, D...
Overcoming the Top Four Challenges to Real‐Time Performance in Large‐Scale, D...SL Corporation
 
Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)Rick Hightower
 
How SMB's benefit from cloud
How SMB's benefit from cloudHow SMB's benefit from cloud
How SMB's benefit from cloudAlessandro Guli
 
Transitioning to the Cloud: Implications for Reliability, Redundancy & Recove...
Transitioning to the Cloud: Implications for Reliability, Redundancy & Recove...Transitioning to the Cloud: Implications for Reliability, Redundancy & Recove...
Transitioning to the Cloud: Implications for Reliability, Redundancy & Recove...RightScale
 
Micro services - Practicalities & things to watch out for
Micro services - Practicalities & things to watch out forMicro services - Practicalities & things to watch out for
Micro services - Practicalities & things to watch out forParthiban J
 
Ymens - Bouncing off clouds - Rapid Development for Cloud Ready Applications...
Ymens - Bouncing off clouds - Rapid Development for Cloud Ready Applications...Ymens - Bouncing off clouds - Rapid Development for Cloud Ready Applications...
Ymens - Bouncing off clouds - Rapid Development for Cloud Ready Applications...Vlad Mihnea
 
Overcoming the Top Four Challenges to Real-Time Performance in Large-Scale, D...
Overcoming the Top Four Challenges to Real-Time Performance in Large-Scale, D...Overcoming the Top Four Challenges to Real-Time Performance in Large-Scale, D...
Overcoming the Top Four Challenges to Real-Time Performance in Large-Scale, D...SL Corporation
 
Build A Website on AWS for Your First 10 Million Users
Build A Website on AWS for Your First 10 Million UsersBuild A Website on AWS for Your First 10 Million Users
Build A Website on AWS for Your First 10 Million UsersAmazon Web Services
 
Spring cloud Service-Discovery
Spring cloud Service-DiscoverySpring cloud Service-Discovery
Spring cloud Service-DiscoveryNikhil Hiremath
 
Enterprise Service Delivery from the AWS Cloud (ARC208) | AWS re:Invent 2013
Enterprise Service Delivery from the AWS Cloud (ARC208) | AWS re:Invent 2013Enterprise Service Delivery from the AWS Cloud (ARC208) | AWS re:Invent 2013
Enterprise Service Delivery from the AWS Cloud (ARC208) | AWS re:Invent 2013Amazon Web Services
 
AWS Cloud Kata | Manila - Getting to Profitability on AWS
AWS Cloud Kata | Manila - Getting to Profitability on AWSAWS Cloud Kata | Manila - Getting to Profitability on AWS
AWS Cloud Kata | Manila - Getting to Profitability on AWSAmazon Web Services
 

Ähnlich wie How NOSQL Paid off for Telenor (20)

Ebs architecture con9036_pdf_9036_0001
Ebs architecture con9036_pdf_9036_0001Ebs architecture con9036_pdf_9036_0001
Ebs architecture con9036_pdf_9036_0001
 
Day Of Cloud - Windows Azure Platform
Day Of Cloud - Windows Azure PlatformDay Of Cloud - Windows Azure Platform
Day Of Cloud - Windows Azure Platform
 
Making communication across boundaries simple with Azure Service Bus
Making communication across boundaries simple with Azure Service BusMaking communication across boundaries simple with Azure Service Bus
Making communication across boundaries simple with Azure Service Bus
 
Service Discovery and Registration in a Microservices Architecture
Service Discovery and Registration in a Microservices ArchitectureService Discovery and Registration in a Microservices Architecture
Service Discovery and Registration in a Microservices Architecture
 
Cloud Architecture Tutorial - Running in the Cloud (3of3)
Cloud Architecture Tutorial - Running in the Cloud (3of3)Cloud Architecture Tutorial - Running in the Cloud (3of3)
Cloud Architecture Tutorial - Running in the Cloud (3of3)
 
From AWS to Series A in 5 Easy Pieces
From AWS to Series A in 5 Easy PiecesFrom AWS to Series A in 5 Easy Pieces
From AWS to Series A in 5 Easy Pieces
 
FederatedAccessOpenStack.pdf
FederatedAccessOpenStack.pdfFederatedAccessOpenStack.pdf
FederatedAccessOpenStack.pdf
 
Overcoming the Top Four Challenges to Real‐Time Performance in Large‐Scale, D...
Overcoming the Top Four Challenges to Real‐Time Performance in Large‐Scale, D...Overcoming the Top Four Challenges to Real‐Time Performance in Large‐Scale, D...
Overcoming the Top Four Challenges to Real‐Time Performance in Large‐Scale, D...
 
Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)
 
How SMB's benefit from cloud
How SMB's benefit from cloudHow SMB's benefit from cloud
How SMB's benefit from cloud
 
Transitioning to the Cloud: Implications for Reliability, Redundancy & Recove...
Transitioning to the Cloud: Implications for Reliability, Redundancy & Recove...Transitioning to the Cloud: Implications for Reliability, Redundancy & Recove...
Transitioning to the Cloud: Implications for Reliability, Redundancy & Recove...
 
Micro services
Micro servicesMicro services
Micro services
 
Micro services - Practicalities & things to watch out for
Micro services - Practicalities & things to watch out forMicro services - Practicalities & things to watch out for
Micro services - Practicalities & things to watch out for
 
Ymens - Bouncing off clouds - Rapid Development for Cloud Ready Applications...
Ymens - Bouncing off clouds - Rapid Development for Cloud Ready Applications...Ymens - Bouncing off clouds - Rapid Development for Cloud Ready Applications...
Ymens - Bouncing off clouds - Rapid Development for Cloud Ready Applications...
 
Overcoming the Top Four Challenges to Real-Time Performance in Large-Scale, D...
Overcoming the Top Four Challenges to Real-Time Performance in Large-Scale, D...Overcoming the Top Four Challenges to Real-Time Performance in Large-Scale, D...
Overcoming the Top Four Challenges to Real-Time Performance in Large-Scale, D...
 
Cliser
CliserCliser
Cliser
 
Build A Website on AWS for Your First 10 Million Users
Build A Website on AWS for Your First 10 Million UsersBuild A Website on AWS for Your First 10 Million Users
Build A Website on AWS for Your First 10 Million Users
 
Spring cloud Service-Discovery
Spring cloud Service-DiscoverySpring cloud Service-Discovery
Spring cloud Service-Discovery
 
Enterprise Service Delivery from the AWS Cloud (ARC208) | AWS re:Invent 2013
Enterprise Service Delivery from the AWS Cloud (ARC208) | AWS re:Invent 2013Enterprise Service Delivery from the AWS Cloud (ARC208) | AWS re:Invent 2013
Enterprise Service Delivery from the AWS Cloud (ARC208) | AWS re:Invent 2013
 
AWS Cloud Kata | Manila - Getting to Profitability on AWS
AWS Cloud Kata | Manila - Getting to Profitability on AWSAWS Cloud Kata | Manila - Getting to Profitability on AWS
AWS Cloud Kata | Manila - Getting to Profitability on AWS
 

Kürzlich hochgeladen

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
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
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
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
 
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
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"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
 
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
 
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
 

Kürzlich hochgeladen (20)

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
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
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
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
 
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
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 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
 
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
 
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
 

How NOSQL Paid off for Telenor

  • 1. How NoSQL Paid Off for Telenor JavaZone 13 September 2012 - Oslo
  • 2. Sebastian Verheughe Architect and developer Telenor - mobile middleware services (COS) Katrina Sponheim Architect and developer Telenor – business self service solutions
  • 3. Telenor NoSQL Experience o The problem o The business case o The solution o The challenges o The results o My 5 cents
  • 5. Min Bedrift Self service portal where Telenor's corporate customers can manage their entire portfolio of products. From small businesses to large corporations
  • 6. Telenor's Corporate Customer Structure Customer Acme Corporation Customer Acme Consulting Customer Acme Development Account Construction Account Demolition Subscription Huey Subscription Dewey Subscription Louie
  • 7. The Challenge With Large Corporate Customers Customers with large portfolios presented a couple of challenges for the self service solution Min Bedrift: 1. Middleware Services - Not Designed for Search The middleware services were not designed for managing large data volumes, resulting in a lot of processing in the client, and the need for extensive caching there. 2. Resource Authorization – Long Calculation Time User access to resources required the middleware to calculate and cache all accesses at logon, something that could take up to many minutes.
  • 8. The Nightly Logon & Pre-fetch Solution In order to achieve acceptable response times in MinBedrift, administrators were logged on and customer data was pre- fetched and put in a cache each night. However, as the usage of the solution grew, it became obvious that the time window available for pre-fetching each night was closing fast. 0 0 0 9 3 9 3 9 3 6 6 6 2012 2013 2014
  • 9. The Future - Unhandled Telenor calculated that the pre-fetch time window would soon be filled, and a increasing percentage of the customers would experience logon response times above the acceptable x sec. Login Not pre-fetched Pre-fetched time Portfolio Size x Customer Portfolio Size
  • 10. The Business Impact In the end, Telenor would risk losing corporate customers due to deteriorated customer experience
  • 11. Other Caching Drawbacks o Stale data up to 24 hours old o Refresh/login for new users still takes a lot of time o Memory challenges in Min Bedrift o Unwanted network/middleware/database load
  • 13. Business Case The business case is built on the negative consequence of NOT addressing the problem. Loss of customers (revenue) Reduced sales transactions (revenue) Increased manual support (expenses) Other
  • 15. Solution Requirements - High Level The middleware search services should be designed to support large data sets in a better way for the all clients. Resource authorization must be fast enough to deliver real time calculations on demand.
  • 16. The Previous Architecture Client Client Client Client Client Client Middleware Services Master Data RDBMS Multiple Sources
  • 17. The New Architecture One Master (r/w) – Several Replicas (r) Client Client Client Client Client Client Middleware Services Master Data Sybase RDBMS Search Res Auth Solr / Lucene Neo4j Multiple Sources
  • 18. Domain Event Messaging Domain Domain Event Event Search Messaging Res Auth Solr / Lucene Apache Camel Neo4j Raw DB Event Master Data RDBMS
  • 19. Putting it All Together Min Bedrift MW Search MW Auth search getAuthorizedResources filteredSearch authorized match
  • 20. Lucene / Solr Solution
  • 21. Search Service Today implemented in Min Bedrift o Cached nightly o Simple, and iterates over the nodes when searching o With memory/GC challenges
  • 22. New Search Service Data stored in Solr/Lucene search engine o New middleware module exposing WS using tomcat o Everything indexed makes search extremely fast o De-normalized data does not require joins o Search by relevance, paging, sorting and much more
  • 23. Solr Cores Customer Search Client Account Service Subscription
  • 24. Entity Denormalization An entity may include data from several tables Customer Account also contains customer name & id Subscription also contains account name & id
  • 25. Solr/Lucene - Denormalized List View has Subscription Customer Account user Arthur | Jackson Total 555 21 1234 2341 Lisa | Simpson Youth 555 64 3634 3435 John | Brown Pro 555 25 5433 5352
  • 26. Searching by Relevance Search some or all rows, and return hits by relevance (or sorted) Subscription User Name Subscription Phone Number Account Ref. Score Rank Jane Youth 555 21 3253 5 3253 10 15 1 Paul Premium 555 23 4365 5262 John Standard 555 95 1436 7346 Nina Standard 555 15 3263 3734 Lydia Youth 555 92 3253 5 7334 5 2 Tom Standard 555 02 6394 3212 Neil Premium 555 03 2583 3523
  • 28. Resource Authorization Service Stored procedure in RDBMS calculating all accesses o Uses several minutes to calculate for large customers o Cached for up to 24 hours o Extremely complex to understand (1500 lines of sql) o Tightly coupled with other services querying the database
  • 29. New Resource Authorization Service Customer structure stored in Neo4j graph database o New middleware module exposing WS using tomcat o Designed to focus on the relationships between objects o Very fast – independent of total amount of objects stored
  • 30. Nodes and Relationships o Relationships with type and direction o Nodes (with type as property) U USER_ACCESS (with prop inherit: true/false) C PART_OF C C CONTROLLED_BY A A A A S S SUBSCRIBED_BY S S S S S S S S User Customer Account Subscription
  • 31. Traversal (query) All traversals start from a single node The start node is often the U user node in our case C C C A A A A A S S S S S S S S S S S S User Customer Account Subscription
  • 32. Following the Relationships One custom PathExpander class o Only follow valid relationships and direction o Only follow necessary relationships o Check inheritance rules for current path Just override the expand method Iterable<Relationship> expand(Path, BranchState)
  • 33. Picking the Nodes Custom Evaluator o Decide to include or exclude o Delegate to filter that fits your search o Filter may further evaluate neighbor nodes Just override the evaluate method Evaluation evaluate(Path path){ if (resourceFilter.filter(path) return Evaluation.INCLUDE_AND_CONTINUE return Evaluation.EXCLUDE_AND_CONTINUE }
  • 34. Example Access Authorization Retrieve all subscriptions using a fan out search U C C C A A A A A S S S S S S S S S S S S User Customer Account Subscription
  • 35. Example Access Authorization Has access to resource using a reverse search to limit number of nodes to evaluate. Find all paths, and validate one of them. U C C C A A A A A S S S S S S S S S S S S User Customer Account Subscription
  • 37. Lucene/Solr o Using a document store in a relational world – updates o Change mindset to search by relevance, not sorting o The time is in the small stuff – not difficult but needs learning o What type of queries to search on this platform, and NOT o Scaling & Distribution – Actually, not a challenge…
  • 38. Neo4j o Competence o New way of thinking o Making them really fast (profile & understand graph impl) o Getting the classic middleware take use of the new service o What type of queries to search on this platform, and NOT o Scaling, not easy across servers (not needed for now)
  • 39. Messaging o Mapping from a relational model (need cache)
  • 41. Project State o Phase 1 in production (subscription only, nightly populated) o Phase 2 in system test (the rest + live population) The following results are from the test environment now
  • 42. Neo4J Runtime Environment Initial State: Prewarmed at startup, all data in heap Population: ~20 M nodes (all indexed) ~20 M node properties (only 1 per node) ~50 M relationships Batchwise (50 K nodes) in 35 minutes Base heap usage: 10 GB (of 16 GB) Load: Minimal (not measured with heavy load)
  • 43. Neo4J Measured Performance Customers measured for performance: Corporation Customer Accounts Subscriptions X 160 1 300 147 000 Y 32 000 23 000 52 000 Z 7 18 95 000 X Y Z
  • 44. Neo4J Measured Performance Find accounts 10 ms 260 ms 2 ms X: 1 300 Y: 23 000 Z: 18
  • 45. Neo4J Measured Performance Find subscriptions 1 700 ms 750 ms 1300 ms X: 147 000 Y: 52 000 Z: 95 000
  • 46. Neo4J Measured Performance Has access to subscription 2 ms 2 ms 2 ms X Y Z
  • 47. Solr/Lucene Measured Performance Find subscriptions 7 ms 58 ms 4 ms X Y Z
  • 48. Service Performance from Min Bedrift “Google” search for corporation x: 120 ms Min Bedrift searchAllResources 120 ms Search Solr findAuthorizedResources 55 ms Auth Graph
  • 49. Old vs. New Resource Authorization Service Calculate All Resources RDBMS Graph X 12 min 18 sec < 2 sec Y 22 min 58 sec < 2 sec Z 3 min 15 sec < 2 sec Cold Warm Heap
  • 51. Summary Scalable It allows customer growth Fast logon On demand resource authorization Fast search Server side search engine much faster Reusable All clients may use new services Fresh data Not up to 24 hours old – almost live
  • 52. Alternatives In-Memory Database (Sybase) This option was discussed, but license cost and the uncertainty if it would be enough made us go for the NoSQL option. Other NoSQL Solutions We chose to prototype Neo4j and Lucene/Solr because they were popular and seemed to fit us well, and since it worked we stuck with them.
  • 53. How We Started Using NoSQL Technology o Downloaded and prototyped technology very early o Got training on site to accelerate the development startup o At the end of development, did a review/QA of the solution For Lucene/Solr, we got training and support from local Solr/Lucene expert consultant Jan Høydahl For Neo4j, we got training and excellent support from NeoTech directly
  • 55. Think About… New Technology Do you have enough in-house competence, or can you easily buy the necessary competence? Also when maintaining the code. No Language Standard for Graph Databases How simple (or possible) is it to change the NoSQL provider? Working With Relationships Graph databases are intuitive and fast to work with when interested in how objects are related to each other. Gentle NoSQL Introduction Easier to start using when supporting a specific and limited services Complexity You introduce complexity, so make sure it is worth it!