Book Image

Neo4j High Performance

By : Sonal Raj
Book Image

Neo4j High Performance

By: Sonal Raj

Overview of this book

Table of Contents (15 chapters)
Neo4j High Performance
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Index

A

  • ACID compliance
    • about / ACID compliance
    • Atomicity (A) / ACID compliance
    • Consistency (C) / ACID compliance
    • Isolation (I) / ACID compliance
    • Durability (D) / ACID compliance
  • ACID transactions
    • Atomicity / Managing transactions
    • Consistency / Managing transactions
    • Isolation / Managing transactions
    • Durability / Managing transactions
  • AdaptiveCacheManager
    • about / AdaptiveCacheManager
  • admin tricks
    • about / Admin tricks
    • server configuration / Server configuration
    • JVM configurations / JVM configurations
    • caches / Caches
  • aggregated data model
    • about / The aggregated data model
  • Amazon clusters
    • configuring / Configure Neo4j for Amazon clusters
  • Amazon EC2 / Configure Neo4j for Amazon clusters
  • Amazon Web Services (AWS) / Configure Neo4j for Amazon clusters
  • Apache Giraph
    • URL / Big data and graphs
  • automatic indexing
    • about / Manual and automatic indexing
  • automatic sharding
    • about / Automatic sharding

B

  • batch importer
    • URL / The result
  • batch inserter / Design constraints in Neo4j
  • benchmarking performance
    • Gatling used / Benchmarking performance with Gatling
  • built-in caching
    • about / Built-in caching
  • Bulk Synchronous Processing (BSP) model / Graph processing

C

  • cache parameters
    • cache.memory_ratio / Caches
    • node_cache_array_fraction / Caches
    • relationship_cache_array_fraction / Caches
    • node_cache_size / Caches
    • relationship_cache_size / Caches
  • caches
    • about / Caches
    • file buffer cache / Caches
    • object cache / Caches
  • cache sharding
    • about / Scaling Neo4j applications
  • cache types
    • about / Cache types
    • NoCache / Cache types
    • LruCache / Cache types
    • SoftLruCache / Cache types
    • WeakLruCache / Cache types
    • none / Caches
    • soft / Caches
    • weak / Caches
    • strong / Caches
    • hpc / Caches
  • Cassandra / Column family stores
  • Cloud deployment
    • performing, with Azure / Cloud deployment with Azure
  • code
    • Hello World application code / Working of your code
    • NodeManger / Node and relationship management
    • relationship management / Node and relationship management
    • specifics, implementing / Implementation specifics
  • code snippets
    • about / Useful code snippets
    • data, importing to Neo4j / Importing data to Neo4j
    • data, exporting from Neo4j / Exporting data from Neo4j
  • Collaborative Filtering
    • about / Collaborative filtering
  • column-based NoSQL databases
    • about / Column family stores
    • use cases / Column family stores
  • Command-line Interface (CLI) tools / Cloud deployment with Azure
  • command class
    • about / Commands
  • commands
    • TransactionImpl / Commands
    • TxManager / Commands
    • TxLog / Commands
  • connected data models
    • about / Connected data models
  • content-based filtering
    • about / Content-based filtering
  • Couchbase / Document databases
  • CouchDB / Document databases
  • create, read, update and delete (CRUD) operation / Graph databases
  • CREATE clause
    • about / More useful clauses
  • Cypher / GraphUnit-based unit testing
    • about / Introduction to Cypher, Building a recommendation system
    • graph operations / Cypher graph operations
    • benefits / Building a recommendation system
  • Cypher clauses
    • about / Cypher clauses
    • START clause / Cypher clauses
    • MATCH clause / Cypher clauses
    • RETURN clause / Cypher clauses
    • CREATE / More useful clauses
    • MERGE / More useful clauses
    • WHERE / More useful clauses
    • SET / More useful clauses
    • WITH / More useful clauses
    • UNION / More useful clauses
    • DELETE / More useful clauses
    • FOREACH / More useful clauses
  • Cypher tricks
    • about / Advanced Cypher tricks
    • query optimizations / Query optimizations
    • graph model optimizations / Graph model optimizations

D

  • database / GraphUnit-based unit testing
  • data modeling
    • accross, multiple domains / Modeling across multiple domains
  • deadlock handling
    • about / Deadlock handling
  • deadlocks
    • detecting / Detecting deadlocks
    • RWLock / RWLock
    • RAGManager / RAGManager
    • LockManager / LockManager
  • DELETE clause
    • about / More useful clauses
  • DER format / Support for HTTPS
  • design constraints
    • about / Design constraints in Neo4j
    • file size / Design constraints in Neo4j
    • data size / Design constraints in Neo4j
    • security / Design constraints in Neo4j
  • Distributed denial of service (DDOS) attacks
    • about / Design constraints in Neo4j
  • document-based NoSQL databases
    • about / Document databases
    • use cases / Document databases
  • dynamic schemas
    • about / Dynamic schemas

E

  • eclipse IDE
    • download link / Modes of setup – the embedded mode
  • embedded database
    • unit testing / Unit testing an embedded database

F

  • file buffer cache
    • about / Caches
  • file size, design constraints
    • data read speed / Design constraints in Neo4j
    • data write speed / Design constraints in Neo4j
  • FOREACH clause
    • about / More useful clauses

G

  • garbage collection logging
    • about / Garbage collection logging
  • Garbage Collector (GC) / Cache types
  • Gatling
    • used, for benchmarking performance / Benchmarking performance with Gatling
    • URL / Benchmarking performance with Gatling
  • GBASE / Big data and graphs
  • generic common log format
    • URL / HTTP logging configurations
  • gephi open source project / Visualization of graphs
  • GraphAlgoFactory class
    • allPaths() method / The graphalgo package
    • allSimplePaths() method / The graphalgo package
    • aStar() method / The graphalgo package
    • dijkstrar() method / The graphalgo package
    • pathsWithLength() method / The graphalgo package
    • shortestPath() method / The graphalgo package
  • graphalgo package
    • about / The graphalgo package
  • GraphAware / Testing Neo4j applications
    • URL / Testing Neo4j applications
  • graph compute engine
    • about / Graph compute engines
  • graph databases
    • about / Graph databases
    • use cases / Graph databases
    • criteria / Graph databases
  • graph data models
    • property graph / Characteristics of Neo4j
    • hypergraph / Characteristics of Neo4j
    • triples / Characteristics of Neo4j
  • graph modeling techniques
    • about / Graph modeling techniques
    • aggregation / Aggregation in graphs
    • adjacency lists / Graphs for adjacency lists
    • materialized paths / Materialized paths
    • nested sets / Modeling with nested sets
    • flattening, with ordered field names / Flattening with ordered field names
  • graph model optimizations
    • about / Graph model optimizations
    • explicit definition / Graph model optimizations
    • property refactoring / Graph model optimizations
  • graph operations, Cypher
    • about / Cypher graph operations
    • clauses / Cypher clauses, More useful clauses
  • graph processing
    • about / Graph processing
    • with Hadoop or Neo4j / Processing with Hadoop or Neo4j
  • graphs
    • about / Graphs and their utilities
    • utilities / Graphs and their utilities
    • NoSQL databases / Introducing NoSQL databases
    • dynamic schemas / Dynamic schemas
    • automatic sharding / Automatic sharding
    • built-in caching / Built-in caching
    • replication / Replication
  • Gremlin
    • about / Gremlin – an overview
    • clauses / Gremlin – an overview
  • Groovy
    • about / Gremlin – an overview
    • URL / Gremlin – an overview

H

  • Hadoop
    • about / Big data and graphs
    • graph processing, with / Processing with Hadoop or Neo4j
  • HBase / Column family stores
  • high availability
    • about / High availability
    • master, need for / HA and the need for a master
    • master election / The master election
  • high volume applications
    • graph processing / Graph processing
    • big data and graphs / Big data and graphs
    • transactions, managing / Managing transactions
    • graphalgo package / The graphalgo package
  • HTTP logging configurations
    • about / HTTP logging configurations
  • hybrid approach
    • about / The hybrid approach
  • hypergraph
    • about / Characteristics of Neo4j

I

  • indexing
    • about / Indexing in Neo4j
    • manual indexing / Manual and automatic indexing
    • automatic indexing / Manual and automatic indexing
    • schema-based Indexing / Schema-based indexing
    • benefits / Indexing benefits and trade-offs
    • trade-offs / Indexing benefits and trade-offs
  • INFO
    • about / Server logging configurations

J

  • Java Persistence API (JPA) data model / Introduction to Spring Data Neo4j
  • JavaScriptNeo4j adapter
    • about / The JavaScript Neo4j adapter
  • JVM configurations
    • about / JVM configurations
    • properties / JVM configurations

K

  • Key-value databases
    • about / Key-value stores
    • use cases / Key-value stores

L

  • Least Recently Used (LRU)
    • about / Caching internals
  • LinkBench
    • about / Performance testing
    • URL / Performance testing
  • Linkurious
    • about / Visualization of graphs
    • URL / Visualization of graphs
  • LockManager
    • about / LockManager
  • LogEntry state
    • about / The Write Ahead log
  • logical logs
    • about / Logical logs

M

  • manual indexing
    • about / Manual and automatic indexing
  • map data
    • about / Recommendations on map data
    • recommendations / Recommendations on map data
  • MATCH clause
    • about / Cypher clauses
  • Maven
    • URL / Modes of setup – the embedded mode
    / Testing Neo4j applications
  • MemcacheDB
    • about / Key-value stores
  • memory mapped I/O configuration
    • about / Memory mapped I/O configuration
    • nodestore / Memory mapped I/O configuration
    • relationshipstore / Memory mapped I/O configuration
    • propertystore / Memory mapped I/O configuration
    • propertystore strings / Memory mapped I/O configuration
    • propertystore arrays / Memory mapped I/O configuration
    • configuring / Memory mapped I/O configuration
    • traversal speed optimization example / Traversal speed optimization example
    • batch insert example / Batch insert example
  • MERGE clause
    • about / More useful clauses
  • migration techniques, for SQL users
    • about / Migration techniques for SQL users
    • dual data stores, handling / Handling dual data stores
    • model, analyzing / Analyzing the model
    • initial import / Initial import
    • data sync / Keeping data in sync
    • result / The result
  • MongoDB / Document databases

N

  • Neo4j
    • graphs / Graphs and their utilities
    • about / Graph databases
    • characteristics / Characteristics of Neo4j
    • storage within / Characteristics of Neo4j
    • processing engine / Characteristics of Neo4j
    • CRUD operations / The basic CRUD operations
    • download link / Modes of setup – the embedded mode
    • configuring, for Amazon clusters / Configure Neo4j for Amazon clusters
    • Cloud deployment, with Azure / Cloud deployment with Azure
    • indexing / Indexing in Neo4j
    • design constraints / Design constraints in Neo4j
    • interfacing, with tools / Interfacing with the tools and frameworks
    • interfacing, with frameworks / Interfacing with the tools and frameworks
    • using, for PHP developers / Using Neo4j for PHP developers
    • interfacing, with Python / Neo4j with Python
    • storage file / Caches
  • Neo4j applications
    • testing / Testing Neo4j applications
    • unit testing / Unit testing
    • performance testing / Performance testing
    • benchmarking performance, with Gatling / Benchmarking performance with Gatling
    • scaling / Scaling Neo4j applications
  • Neo4j configurations
    • about / The Neo4j setup and configurations
    • embedded mode / Modes of setup – the embedded mode
    • server mode / Modes of setup – the server mode
  • Neo4j Enterprise
    • URL / Neo4j high availability
  • Neo4j graph database
    • about / The Neo4j graph database
    • ACID compliance / ACID compliance
    • characteristics / Characteristics of Neo4j
  • Neo4j HA
    • setting up / Neo4j high availability
    • neo4j-01.local / MachineNeo4j HAneo4j-01.local #1 – neo4j-01.local
    • about / Scaling Neo4j applications
    • cache sharding / Scaling Neo4j applications
    • issues / Scaling Neo4j applications
  • Neo4j interface
    • about / The Neo4j interface
    • Cypher queries, running / Running Cypher queries
    • results, visualization / Visualization of results
  • Neo4j internals
    • about / Introduction to Neo4j internals
    • URL, for source code / Introduction to Neo4j internals
    • Hello World application code / Working of your code
    • property storage / Storage for properties
    • caching / Caching internals
    • transactions / Transactions
    • high availability / High availability
  • Neo4J server
    • unit testing / Unit testing a Neo4J server
  • Neo4j server logging
    • about / Neo4j server logging
    • configurations / Server logging configurations
    • HTTP logging configurations / HTTP logging configurations
    • garbage collection logging / Garbage collection logging
    • logical logs / Logical logs
    • open file size limit, on Linux / Open file size limit on Linux
  • Neo4j server security
    • about / Neo4j server security
    • port security / Port and remote connection security
    • remote connection security / Port and remote connection security
    • support, for HTTPS / Support for HTTPS
    • server authorization rules / Server authorization rules
    • security options / Other security options
  • Netflix / The hybrid approach
  • NoSQL databases
    • about / Introducing NoSQL databases
    • types / Types of NoSQL databases

O

  • object cache
    • about / Caches
  • Online Analytical Processing (OLAP)
    • about / Graph processing
  • Online Transaction Processing (OLTP)
    • about / Graph processing
  • OrientDB
    • about / Graph databases

P

  • Pandora Radio / Content-based filtering
  • performance testing
    • about / Performance testing
    • performing / Performance testing
  • PHP developers
    • Neo4j, using for / Using Neo4j for PHP developers
  • Plain Old Java Object (POJO) model / Introduction to Spring Data Neo4j
  • Pregel / Big data and graphs
  • Project Object Model (POM) / Modes of setup – the embedded mode
  • property graph
    • about / Characteristics of Neo4j
    • characteristics / Characteristics of Neo4j
  • property graphs
    • about / Property graphs
  • property storage
    • about / Storage for properties
    • structure / The storage structure
    • migrating, to new storage / Migrating to the new storage

Q

  • query optimizations
    • about / Query optimizations
    • global data scans, avoiding / Query optimizations
    • indexing and constraints for faster search / Query optimizations
    • cartesian products generation, avoiding / Query optimizations
    • patterns, using in MATCH clause / Query optimizations
    • MATCH patterns, splitting / Query optimizations
    • queries, profiling / Query optimizations
    • parameters, in queries / Query optimizations

R

  • RAGManager
    • about / RAGManager
  • recommendation engine
    • basics / The why and how of recommendations
    • Collaborative Filtering / Collaborative filtering
    • content-based filtering / Content-based filtering
    • hybrid approach / The hybrid approach
    • building / Building a recommendation system
  • Redis
    • about / Key-value stores
  • replication
    • about / Replication
  • Representational State Transfer (REST) API applications / Testing Neo4j applications
  • RETURN clause
    • about / Cypher clauses
  • Riak
    • about / Key-value stores
  • rrdb (round robin database directory) / Server configuration
  • RWLock
    • about / RWLock

S

  • scaling techniques, Neo4j applications
    • implementing / Scaling Neo4j applications
    • summary / Scaling Neo4j applications
  • schema-based Indexing
    • about / Schema-based indexing
  • schema design patterns
    • about / Schema design patterns
    • hyper edges / Hyper edges
    • linked lists, implementing / Implementing linked lists
    • complex similarity computations / Complex similarity computations
    • route generation algorithms / Route generation algorithms
  • server authorization rules
    • about / Server authorization rules
    • enforcement, setting up / Setup server authorization rules enforcement
    • targeting, with wildcards / Security rules targeting with wildcards
  • server configuration
    • about / Server configuration
  • server logging configurations
    • about / Server logging configurations
  • SET clause
    • about / More useful clauses
  • sharding
    • about / Automatic sharding
  • simpler algorithms
    • about / Benchmarking performance with Gatling
  • Spring Data Neo4j
    • about / Introduction to Spring Data Neo4j
    • features / Introduction to Spring Data Neo4j
    • setting up / Introduction to Spring Data Neo4j
  • START clause
    • about / Cypher clauses
  • Storage Area Networks (SANs)
    • about / Automatic sharding
  • structr graph application platform
    • URL / Exporting data from Neo4j
  • Surfer / Big data and graphs

T

  • techniques, for hybrid system
    • switching / The hybrid approach
    • weighted / The hybrid approach
    • mixed / The hybrid approach
    • augmentation of features / The hybrid approach
    • combination of features / The hybrid approach
    • cascading / The hybrid approach
  • techniques, for improving Neo4j subsystem performance
    • warm caching / Benchmarking performance with Gatling
    • simpler algorithms / Benchmarking performance with Gatling
  • transactions, high volume application
    • managing / Managing transactions
    • transaction state, monitoring / Managing transactions
    • deadlock handling / Deadlock handling
    • uniqueness, of entities / Uniqueness of entities
    • event handlers / Events for transactions
  • transactions, Neo4j internals
    • Wait-For Graph (WFG) / Transactions
    • Write-Ahead Log (WAL) / The Write Ahead log
    • deadlocks, detecting / Detecting deadlocks
    • commands / Commands
  • triples
    • about / Characteristics of Neo4j
  • TwoPhaseCommit (2PC) protocol / Commands
  • types, NoSQL databases
    • about / Types of NoSQL databases
    • Key-value data store / Key-value stores
    • column-based data stores / Column family stores
    • document databases / Document databases
    • graph databases / Graph databases
    • graph compute engines / Graph compute engines

U

  • UNION clause
    • about / More useful clauses
  • unit testing, Neo4j applications
    • performing / Unit testing
    • Java API, using / Using the Java API
    • GraphUnit-based unit testing / GraphUnit-based unit testing
    • embedded database, unit testing / Unit testing an embedded database
    • Neo4J server, unit testing / Unit testing a Neo4J server

V

  • visualization, of graphs
    • about / Visualization of graphs

W

  • warm caching
    • about / Benchmarking performance with Gatling
  • WHERE clause
    • about / More useful clauses
  • WITH clause
    • about / More useful clauses
  • Write-Ahead Log (WAL)
    • about / The Write Ahead log
  • WriteTransaction transactions
    • record field / LockManager
    • commands field / LockManager

X

  • XaTransaction class
    • about / LockManager