SlideShare a Scribd company logo
Apache Accumulo 1.4 & 1.5
Features
Inaugural Accumulo DC Meetup
Keith Turner
What is Accumulo?
A re-implementation of Big Table
● Distributed Database
● Does not support SQL
● Data is arranged by
● Row
● Column
● Time
● No need to declare columns, types
Massively Distributed
Key Structure
Key Value
Row Column
Family
Column
Qualifier
Column
Visibility
Time Stamp Value
Primary
Partitioning
Component
Secondary
Partitioning
Component
Uniqueness
Control
Access
Control
Versioning
Control
Value
Tablet Organization
System Processes
Tablet Data Flow
Rfile Multi-level index
1.3 Rfile Index
● Index is an array of keys
● One key per data block
● Complete index loaded into memory when file
opened
● Complete index kept in memory when writing
file
● Slow load times
● Memory exhaustion
Index
1.3 RFile
Data
Block
Data
Block
Data
Block
Non multi-level 9G file
Locality group : <DEFAULT>
Start block : 0
Num blocks : 182,691
Index level 0 size : 8,038,404 bytes
First key : 00000008611ae5d6 0e94:74e1 [] 1310491465052 false
Last key : 7ffffff7daec0b4e 43ee:1c1e [] 1310491475396 false
Num entries : 172,014,468
Column families : <UNKNOWN>
Meta block : BCFile.index
Raw size : 2,148,491 bytes
Compressed size : 1,485,697 bytes
Compression type : lzo
Meta block : RFile.index
Raw size : 8,038,470 bytes
Compressed size : 5,664,704 bytes
Compression type : lzo
Index Level 1
Index Level 0
1.4 RFile
Data
Block
Data
Block
Data
Block
Data
Block
Data
Block
File layout
Data Data
Index
L0
Data Data
Index
L0
Data Data
Index
L0
Index
L1
● Index blocks written as data is written
● complete index not kept in memory during write
● Index block for each level kept in memory
Multi-level 9G file
Locality group : <DEFAULT>
Start block : 0
Num blocks : 187,070
Index level 1 : 4,573 bytes 1 blocks
Index level 0 : 10,431,126 bytes 82 blocks
First key : 00000008611ae5d6 0e94:74e1 [] 1310491465052 false
Last key : 7ffffff7daec0b4e 43ee:1c1e [] 1310491475396 false
Num entries : 172,014,468
Column families : <UNKNOWN>
Meta block : BCFile.index
Raw size : 5 bytes
Compressed size : 17 bytes
Compression type : lzo
Meta block : RFile.index
Raw size : 4,652 bytes
Compressed size : 3,745 bytes
Compression type : lzo
Test Setup
● Files in FS cache for test (cat test.rf > /dev/null)
● Too much variability when some of file was in
FS cache and some was not
● Easier to force all of file into cache than out
Open, seek 9G file
Multilevel Index Cache Avg Time
N N 139.48 ms
N Y 37.55 ms
Y N 8.48 ms
Y Y 3.90 ms
Randomly seeking 9G file
Multilevel Index Cache Avg Time
N N 2.08 ms
N Y 2.32 ms
Y N 4.33 ms
Y Y 2.14 ms
Configuration
● Index block size configurable per table
● Make index block size large and it will behave
like old rfile
● Enabled index cache by default in 1.4
Cache hit rate on monitor page
Fault tolerant concurrent table operations
Problematic situations
● Master dies during create table
● Create and delete table run concurrently
● Client dies during bulk ingest
● Table deleted while writing or scanning
Create table fault
● Master dies during
● Could leave accumulo metadata in bad state
● Master creates table, but then dies before
notifying client
● If client retries, it gets table exist exception
FATE
Fault Tolerant Executor
● If process dies, previously submitted operations
continue to execute on restart.
● Serializes operation in zookeeper before
execution
● Master uses FATE to execute table operations
Bulk import test
● Create table with summation aggregator
● Bulk import files of +1 or -1, graph ensures final
sum is 0
● Concurrently merge, split, compact, and
consistency check table
● Exit point verifies 0
Adampotent
● Idempotent f(f(x)) = f(x)
● Adampotent f(f'(x)) = f(x)
● f'(x) denotes partial execution of f(x)
REPO
Repeatable Persisted Operation
public interface Repo<T> extends Serializable {
long isReady(long tid, T environment) throws Exception;
Repo<T> call(long tid, T environment) throws Exception;
void undo(long tid, T environment) throws Exception;
}
● call() returns next op, null if done
● call() and undo() must be adampotent
● undo() should clean up partial execution of
isReady() or call()
FATE interface
long startTransaction();
void seedTransaction(long tid, Repo op);
TStatus waitForCompletion(long tid);
Exception getException(long tid);
void delete(long tid);
Client calling FATE on master
Start Tx
Seed Tx
Wait Tx
Delete Tx
FATE transaction states
NEW
FAILED
IN
PROGRESS
FAILED
IN
PROGRESS
SUCCESSFUL
FATE Persistent store
public interface TStore {
long reserve();
Repo top(long tid);
void push(long tid, Repo repo);
void pop(long tid);
Tstatus getStatus(long tid);
void setStatus(long tid, Tstatus status);
.
.
.
}
Seeding
void seedTransaction(long tid, Repo repo){
if(store.getStatus(tid) == NEW){
if(store.top(tid) == null)
store.push(tid, repo);
store.setStatus(tid, IN_PROGRESS);
}
}
FATE transaction execution
Execute
top op
Reserve
tx
Push
op
Undo
top op
Pop
op
Mark
success
Mark
fail
Save
Exception
Mark
failed
in progress
Concurrent table ops
● Per-table read/write lock in zookeeper
● Zookeeper recipe with slight modification :
● store fate tid as lock data
● Use persistent sequential instead of ephemeral
sequential
Concurrent delete table
● Table deleted during read or write 1.3
● Most likely, scan hangs forever
● Rarely, permission exception thrown (seen in test)
● In 1.4 check if table exists when :
● Nothing in !METADATA
● See a permission exception
Rogue threads
● Bulk import fate op pushes work to tservers
● Threads on tserver execute after fate op done
● Master deletes WID in ZK, waits until counts 0
Tablet server worker thread
SynchronizedSynchronized
Start
WID
Exist?
cnt[WID]++
Do
work
cnt[WID]--
exit
Create Table Ops
1. CreateTable
● Allocates table id
2. SetupPermissions
3. PopulateZookeeper
● Reentrantly lock table in isReady()
● Relate table name to table id
4. CreateDir
5. PopulateMetadata
6. FinishCreateTable
Random walk concurrent test
● Perform all table operation on 5 well known
tables
● Run multiple test clients concurrently
● Ensure accumulo or test client does not crash
or hang
● Too chaotic to verify data correctness
● Found many bugs
Future Work
● Allow multiple processes to run fate operations
● Stop polling
● Hulk Smash Tolerant
Other 1.4 Features
Tablet Merging
● Splits exists forever; data is often aged off
● Admin requested, not automatic
● Merge by range or size
Merging Minor Compaction
● 1.3: minor compactions always add new files:
● 1.4: limits the total of new files:
Merging Minor Compactions
● Slows down minor compactions
● Memory fills up
● Creates back-pressure on ingest
● Prevents “unable to open enough files to scan”
Table Cloning
● Create a new table using the same read-only
files
● Fast
● Testing
● At scale, with representative data
● Compaction with a broken iterator: no more data
● Offline and Copy
● create an consistent snapshot in minutes
Range Operations
● Compact Range
● Compact all tablets that fall within a row range down
to a single file
● Useful for tail-insert indexes
● Data purge
● Delete Range
● Delete all the content within a row range
● Uses split and will delete whole tablets for efficiency
● Useful for data purge
Logical Time for Bulk Import
● Bulk files created on different machines will get
different actual times (hours)
● Bulk files always contain the timestamp created
by the client
● A single bulk import request can set a
consistent time across all files
● Implemented using iterators
Roadmap
1.4.1 Improvements
● Snappy, LZ4
● HDFS Kerberos compatability
● Bloom filter improvements
● Map Reduce directly over Accumulo files
● Server side row select iterator
● Bulk ingest support for map only jobs
● BigTop support
● Wikisearch example improvements
Possible 1.5 features
Performance
● Multiple namenode support
● WAL performance improvements
● In-memory map locality groups
● Timestamp visibility filter optimization
● Prefix encoding
● Distributed FATE ops
API
● Stats API
● Automatic deployment of iterators
● Tuplestream support
● Coprocessor integration
● Support other client languages
● Client session migration
Admin/Security
● Kerberos support/pluggable authentication
● Administration monitor page
● Data center replication
● Rollback/snapshot backup/recovery
Reliability
● Decentralize master operations
● Tablet server state model
Testing
● Mini-cluster test harness
● Continuous random walk testing

More Related Content

What's hot

Ceph Day New York 2014: Future of CephFS
Ceph Day New York 2014:  Future of CephFS Ceph Day New York 2014:  Future of CephFS
Ceph Day New York 2014: Future of CephFS
Ceph Community
 
High Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando PatroniHigh Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando Patroni
Zalando Technology
 
Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)
Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)
Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)
Red Hat Developers
 
Practical SystemTAP basics: Perl memory profiling
Practical SystemTAP basics: Perl memory profilingPractical SystemTAP basics: Perl memory profiling
Practical SystemTAP basics: Perl memory profiling
Lubomir Rintel
 
PostgreSQL 8.4 TriLUG 2009-11-12
PostgreSQL 8.4 TriLUG 2009-11-12PostgreSQL 8.4 TriLUG 2009-11-12
PostgreSQL 8.4 TriLUG 2009-11-12Andrew Dunstan
 
PHP at Density and Scale (Lone Star PHP 2014)
PHP at Density and Scale (Lone Star PHP 2014)PHP at Density and Scale (Lone Star PHP 2014)
PHP at Density and Scale (Lone Star PHP 2014)
David Timothy Strauss
 
protothread and its usage in contiki OS
protothread and its usage in contiki OSprotothread and its usage in contiki OS
protothread and its usage in contiki OS
Salah Amean
 
Performance optimization 101 - Erlang Factory SF 2014
Performance optimization 101 - Erlang Factory SF 2014Performance optimization 101 - Erlang Factory SF 2014
Performance optimization 101 - Erlang Factory SF 2014
lpgauth
 
Flink Forward Berlin 2017: Stefan Richter - A look at Flink's internal data s...
Flink Forward Berlin 2017: Stefan Richter - A look at Flink's internal data s...Flink Forward Berlin 2017: Stefan Richter - A look at Flink's internal data s...
Flink Forward Berlin 2017: Stefan Richter - A look at Flink's internal data s...
Flink Forward
 
Lock free programming- pro tips
Lock free programming- pro tipsLock free programming- pro tips
Lock free programming- pro tips
Jean-Philippe BEMPEL
 
OpenTSDB for monitoring @ Criteo
OpenTSDB for monitoring @ CriteoOpenTSDB for monitoring @ Criteo
OpenTSDB for monitoring @ Criteo
Nathaniel Braun
 
pgDay Asia 2016 - Swapping Pacemaker-Corosync for repmgr (1)
pgDay Asia 2016 - Swapping Pacemaker-Corosync for repmgr (1)pgDay Asia 2016 - Swapping Pacemaker-Corosync for repmgr (1)
pgDay Asia 2016 - Swapping Pacemaker-Corosync for repmgr (1)Wei Shan Ang
 
Update on OpenTSDB and AsyncHBase
Update on OpenTSDB and AsyncHBase Update on OpenTSDB and AsyncHBase
Update on OpenTSDB and AsyncHBase
HBaseCon
 

What's hot (14)

Ceph Day New York 2014: Future of CephFS
Ceph Day New York 2014:  Future of CephFS Ceph Day New York 2014:  Future of CephFS
Ceph Day New York 2014: Future of CephFS
 
High Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando PatroniHigh Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando Patroni
 
Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)
Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)
Shenandoah GC: Java Without The Garbage Collection Hiccups (Christine Flood)
 
Practical SystemTAP basics: Perl memory profiling
Practical SystemTAP basics: Perl memory profilingPractical SystemTAP basics: Perl memory profiling
Practical SystemTAP basics: Perl memory profiling
 
PostgreSQL 8.4 TriLUG 2009-11-12
PostgreSQL 8.4 TriLUG 2009-11-12PostgreSQL 8.4 TriLUG 2009-11-12
PostgreSQL 8.4 TriLUG 2009-11-12
 
PHP at Density and Scale (Lone Star PHP 2014)
PHP at Density and Scale (Lone Star PHP 2014)PHP at Density and Scale (Lone Star PHP 2014)
PHP at Density and Scale (Lone Star PHP 2014)
 
protothread and its usage in contiki OS
protothread and its usage in contiki OSprotothread and its usage in contiki OS
protothread and its usage in contiki OS
 
Performance optimization 101 - Erlang Factory SF 2014
Performance optimization 101 - Erlang Factory SF 2014Performance optimization 101 - Erlang Factory SF 2014
Performance optimization 101 - Erlang Factory SF 2014
 
Flink Forward Berlin 2017: Stefan Richter - A look at Flink's internal data s...
Flink Forward Berlin 2017: Stefan Richter - A look at Flink's internal data s...Flink Forward Berlin 2017: Stefan Richter - A look at Flink's internal data s...
Flink Forward Berlin 2017: Stefan Richter - A look at Flink's internal data s...
 
Lock free programming- pro tips
Lock free programming- pro tipsLock free programming- pro tips
Lock free programming- pro tips
 
OpenTSDB for monitoring @ Criteo
OpenTSDB for monitoring @ CriteoOpenTSDB for monitoring @ Criteo
OpenTSDB for monitoring @ Criteo
 
pgDay Asia 2016 - Swapping Pacemaker-Corosync for repmgr (1)
pgDay Asia 2016 - Swapping Pacemaker-Corosync for repmgr (1)pgDay Asia 2016 - Swapping Pacemaker-Corosync for repmgr (1)
pgDay Asia 2016 - Swapping Pacemaker-Corosync for repmgr (1)
 
The Accidental DBA
The Accidental DBAThe Accidental DBA
The Accidental DBA
 
Update on OpenTSDB and AsyncHBase
Update on OpenTSDB and AsyncHBase Update on OpenTSDB and AsyncHBase
Update on OpenTSDB and AsyncHBase
 

Viewers also liked

Sqrrl June Webinar: An Accumulo Love Story
Sqrrl June Webinar: An Accumulo Love StorySqrrl June Webinar: An Accumulo Love Story
Sqrrl June Webinar: An Accumulo Love Story
Sqrrl
 
Oct 2012 HUG: Apache Accumulo: Unlocking the Power of Big Data
Oct 2012 HUG: Apache Accumulo: Unlocking the Power of Big DataOct 2012 HUG: Apache Accumulo: Unlocking the Power of Big Data
Oct 2012 HUG: Apache Accumulo: Unlocking the Power of Big Data
Yahoo Developer Network
 
Introduction to Accumulo
Introduction to AccumuloIntroduction to Accumulo
Introduction to Accumulo
Mario Pastorelli
 
Introduction to RDF
Introduction to RDFIntroduction to RDF
Introduction to RDF
Narni Rajesh
 
Sqrrl and Accumulo
Sqrrl and AccumuloSqrrl and Accumulo
Sqrrl and Accumulo
John Dougherty
 
RDF and OWL
RDF and OWLRDF and OWL
RDF and OWL
Rachel Lovinger
 

Viewers also liked (6)

Sqrrl June Webinar: An Accumulo Love Story
Sqrrl June Webinar: An Accumulo Love StorySqrrl June Webinar: An Accumulo Love Story
Sqrrl June Webinar: An Accumulo Love Story
 
Oct 2012 HUG: Apache Accumulo: Unlocking the Power of Big Data
Oct 2012 HUG: Apache Accumulo: Unlocking the Power of Big DataOct 2012 HUG: Apache Accumulo: Unlocking the Power of Big Data
Oct 2012 HUG: Apache Accumulo: Unlocking the Power of Big Data
 
Introduction to Accumulo
Introduction to AccumuloIntroduction to Accumulo
Introduction to Accumulo
 
Introduction to RDF
Introduction to RDFIntroduction to RDF
Introduction to RDF
 
Sqrrl and Accumulo
Sqrrl and AccumuloSqrrl and Accumulo
Sqrrl and Accumulo
 
RDF and OWL
RDF and OWLRDF and OWL
RDF and OWL
 

Similar to Accumulo14 15

Journey through high performance django application
Journey through high performance django applicationJourney through high performance django application
Journey through high performance django application
bangaloredjangousergroup
 
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
javier ramirez
 
Analyzing and Interpreting AWR
Analyzing and Interpreting AWRAnalyzing and Interpreting AWR
Analyzing and Interpreting AWR
pasalapudi
 
Tez Shuffle Handler: Shuffling at Scale with Apache Hadoop
Tez Shuffle Handler: Shuffling at Scale with Apache HadoopTez Shuffle Handler: Shuffling at Scale with Apache Hadoop
Tez Shuffle Handler: Shuffling at Scale with Apache Hadoop
DataWorks Summit
 
Index Reorganization and Rebuilding for Success
Index Reorganization and Rebuilding for SuccessIndex Reorganization and Rebuilding for Success
Index Reorganization and Rebuilding for Success
Dean Willson
 
Ramp-Tutorial for MYSQL Cluster - Scaling with Continuous Availability
Ramp-Tutorial for MYSQL Cluster - Scaling with Continuous AvailabilityRamp-Tutorial for MYSQL Cluster - Scaling with Continuous Availability
Ramp-Tutorial for MYSQL Cluster - Scaling with Continuous Availability
Pythian
 
Loadays MySQL
Loadays MySQLLoadays MySQL
Loadays MySQL
lefredbe
 
Oracle Golden Gate Interview Questions
Oracle Golden Gate Interview QuestionsOracle Golden Gate Interview Questions
Oracle Golden Gate Interview Questions
Arun Sharma
 
Building real time Data Pipeline using Spark Streaming
Building real time Data Pipeline using Spark StreamingBuilding real time Data Pipeline using Spark Streaming
Building real time Data Pipeline using Spark Streaming
datamantra
 
Where is my bottleneck? Performance troubleshooting in Flink
Where is my bottleneck? Performance troubleshooting in FlinkWhere is my bottleneck? Performance troubleshooting in Flink
Where is my bottleneck? Performance troubleshooting in Flink
Flink Forward
 
It's Time To Stop Using Lambda Architecture | Yaroslav Tkachenko, Shopify
It's Time To Stop Using Lambda Architecture | Yaroslav Tkachenko, ShopifyIt's Time To Stop Using Lambda Architecture | Yaroslav Tkachenko, Shopify
It's Time To Stop Using Lambda Architecture | Yaroslav Tkachenko, Shopify
HostedbyConfluent
 
Oracle 12 c new-features
Oracle 12 c new-featuresOracle 12 c new-features
Oracle 12 c new-featuresNavneet Upneja
 
Nagios Conference 2014 - Andy Brist - Nagios XI Failover and HA Solutions
Nagios Conference 2014 - Andy Brist - Nagios XI Failover and HA SolutionsNagios Conference 2014 - Andy Brist - Nagios XI Failover and HA Solutions
Nagios Conference 2014 - Andy Brist - Nagios XI Failover and HA Solutions
Nagios
 
Standing Up Your First Cluster
Standing Up Your First ClusterStanding Up Your First Cluster
Standing Up Your First Cluster
DataStax Academy
 
Archivematica Technical Training Diagnostics Guide (September 2018)
Archivematica Technical Training Diagnostics Guide (September 2018)Archivematica Technical Training Diagnostics Guide (September 2018)
Archivematica Technical Training Diagnostics Guide (September 2018)
Artefactual Systems - Archivematica
 
Raft Engine Meetup 220702.pdf
Raft Engine Meetup 220702.pdfRaft Engine Meetup 220702.pdf
Raft Engine Meetup 220702.pdf
fengxun
 
Cassandra Data Modeling
Cassandra Data ModelingCassandra Data Modeling
Cassandra Data ModelingMatthew Dennis
 
SUE 2018 - Migrating a 130TB Cluster from Elasticsearch 2 to 5 in 20 Hours Wi...
SUE 2018 - Migrating a 130TB Cluster from Elasticsearch 2 to 5 in 20 Hours Wi...SUE 2018 - Migrating a 130TB Cluster from Elasticsearch 2 to 5 in 20 Hours Wi...
SUE 2018 - Migrating a 130TB Cluster from Elasticsearch 2 to 5 in 20 Hours Wi...
Fred de Villamil
 
What is Database Backup? The 3 Important Recovery Techniques from transaction...
What is Database Backup? The 3 Important Recovery Techniques from transaction...What is Database Backup? The 3 Important Recovery Techniques from transaction...
What is Database Backup? The 3 Important Recovery Techniques from transaction...
Raj vardhan
 

Similar to Accumulo14 15 (20)

Journey through high performance django application
Journey through high performance django applicationJourney through high performance django application
Journey through high performance django application
 
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
 
Analyzing and Interpreting AWR
Analyzing and Interpreting AWRAnalyzing and Interpreting AWR
Analyzing and Interpreting AWR
 
Tez Shuffle Handler: Shuffling at Scale with Apache Hadoop
Tez Shuffle Handler: Shuffling at Scale with Apache HadoopTez Shuffle Handler: Shuffling at Scale with Apache Hadoop
Tez Shuffle Handler: Shuffling at Scale with Apache Hadoop
 
Lecture 5 process concept
Lecture 5   process conceptLecture 5   process concept
Lecture 5 process concept
 
Index Reorganization and Rebuilding for Success
Index Reorganization and Rebuilding for SuccessIndex Reorganization and Rebuilding for Success
Index Reorganization and Rebuilding for Success
 
Ramp-Tutorial for MYSQL Cluster - Scaling with Continuous Availability
Ramp-Tutorial for MYSQL Cluster - Scaling with Continuous AvailabilityRamp-Tutorial for MYSQL Cluster - Scaling with Continuous Availability
Ramp-Tutorial for MYSQL Cluster - Scaling with Continuous Availability
 
Loadays MySQL
Loadays MySQLLoadays MySQL
Loadays MySQL
 
Oracle Golden Gate Interview Questions
Oracle Golden Gate Interview QuestionsOracle Golden Gate Interview Questions
Oracle Golden Gate Interview Questions
 
Building real time Data Pipeline using Spark Streaming
Building real time Data Pipeline using Spark StreamingBuilding real time Data Pipeline using Spark Streaming
Building real time Data Pipeline using Spark Streaming
 
Where is my bottleneck? Performance troubleshooting in Flink
Where is my bottleneck? Performance troubleshooting in FlinkWhere is my bottleneck? Performance troubleshooting in Flink
Where is my bottleneck? Performance troubleshooting in Flink
 
It's Time To Stop Using Lambda Architecture | Yaroslav Tkachenko, Shopify
It's Time To Stop Using Lambda Architecture | Yaroslav Tkachenko, ShopifyIt's Time To Stop Using Lambda Architecture | Yaroslav Tkachenko, Shopify
It's Time To Stop Using Lambda Architecture | Yaroslav Tkachenko, Shopify
 
Oracle 12 c new-features
Oracle 12 c new-featuresOracle 12 c new-features
Oracle 12 c new-features
 
Nagios Conference 2014 - Andy Brist - Nagios XI Failover and HA Solutions
Nagios Conference 2014 - Andy Brist - Nagios XI Failover and HA SolutionsNagios Conference 2014 - Andy Brist - Nagios XI Failover and HA Solutions
Nagios Conference 2014 - Andy Brist - Nagios XI Failover and HA Solutions
 
Standing Up Your First Cluster
Standing Up Your First ClusterStanding Up Your First Cluster
Standing Up Your First Cluster
 
Archivematica Technical Training Diagnostics Guide (September 2018)
Archivematica Technical Training Diagnostics Guide (September 2018)Archivematica Technical Training Diagnostics Guide (September 2018)
Archivematica Technical Training Diagnostics Guide (September 2018)
 
Raft Engine Meetup 220702.pdf
Raft Engine Meetup 220702.pdfRaft Engine Meetup 220702.pdf
Raft Engine Meetup 220702.pdf
 
Cassandra Data Modeling
Cassandra Data ModelingCassandra Data Modeling
Cassandra Data Modeling
 
SUE 2018 - Migrating a 130TB Cluster from Elasticsearch 2 to 5 in 20 Hours Wi...
SUE 2018 - Migrating a 130TB Cluster from Elasticsearch 2 to 5 in 20 Hours Wi...SUE 2018 - Migrating a 130TB Cluster from Elasticsearch 2 to 5 in 20 Hours Wi...
SUE 2018 - Migrating a 130TB Cluster from Elasticsearch 2 to 5 in 20 Hours Wi...
 
What is Database Backup? The 3 Important Recovery Techniques from transaction...
What is Database Backup? The 3 Important Recovery Techniques from transaction...What is Database Backup? The 3 Important Recovery Techniques from transaction...
What is Database Backup? The 3 Important Recovery Techniques from transaction...
 

More from Sqrrl

Transitioning Government Technology
Transitioning Government TechnologyTransitioning Government Technology
Transitioning Government Technology
Sqrrl
 
Leveraging Threat Intelligence to Guide Your Hunts
Leveraging Threat Intelligence to Guide Your HuntsLeveraging Threat Intelligence to Guide Your Hunts
Leveraging Threat Intelligence to Guide Your Hunts
Sqrrl
 
How to Hunt for Lateral Movement on Your Network
How to Hunt for Lateral Movement on Your NetworkHow to Hunt for Lateral Movement on Your Network
How to Hunt for Lateral Movement on Your Network
Sqrrl
 
Machine Learning for Incident Detection: Getting Started
Machine Learning for Incident Detection: Getting StartedMachine Learning for Incident Detection: Getting Started
Machine Learning for Incident Detection: Getting Started
Sqrrl
 
Building a Next-Generation Security Operations Center (SOC)
Building a Next-Generation Security Operations Center (SOC)Building a Next-Generation Security Operations Center (SOC)
Building a Next-Generation Security Operations Center (SOC)
Sqrrl
 
User and Entity Behavior Analytics using the Sqrrl Behavior Graph
User and Entity Behavior Analytics using the Sqrrl Behavior GraphUser and Entity Behavior Analytics using the Sqrrl Behavior Graph
User and Entity Behavior Analytics using the Sqrrl Behavior Graph
Sqrrl
 
Threat Hunting Platforms (Collaboration with SANS Institute)
Threat Hunting Platforms (Collaboration with SANS Institute)Threat Hunting Platforms (Collaboration with SANS Institute)
Threat Hunting Platforms (Collaboration with SANS Institute)
Sqrrl
 
Sqrrl and IBM: Threat Hunting for QRadar Users
Sqrrl and IBM: Threat Hunting for QRadar UsersSqrrl and IBM: Threat Hunting for QRadar Users
Sqrrl and IBM: Threat Hunting for QRadar Users
Sqrrl
 
Threat Hunting for Command and Control Activity
Threat Hunting for Command and Control ActivityThreat Hunting for Command and Control Activity
Threat Hunting for Command and Control Activity
Sqrrl
 
Modernizing Your SOC: A CISO-led Training
Modernizing Your SOC: A CISO-led TrainingModernizing Your SOC: A CISO-led Training
Modernizing Your SOC: A CISO-led Training
Sqrrl
 
Threat Hunting vs. UEBA: Similarities, Differences, and How They Work Together
Threat Hunting vs. UEBA: Similarities, Differences, and How They Work Together Threat Hunting vs. UEBA: Similarities, Differences, and How They Work Together
Threat Hunting vs. UEBA: Similarities, Differences, and How They Work Together
Sqrrl
 
Leveraging DNS to Surface Attacker Activity
Leveraging DNS to Surface Attacker ActivityLeveraging DNS to Surface Attacker Activity
Leveraging DNS to Surface Attacker Activity
Sqrrl
 
The Art and Science of Alert Triage
The Art and Science of Alert TriageThe Art and Science of Alert Triage
The Art and Science of Alert Triage
Sqrrl
 
Reducing Mean Time to Know
Reducing Mean Time to KnowReducing Mean Time to Know
Reducing Mean Time to Know
Sqrrl
 
Sqrrl Enterprise: Big Data Security Analytics Use Case
Sqrrl Enterprise: Big Data Security Analytics Use CaseSqrrl Enterprise: Big Data Security Analytics Use Case
Sqrrl Enterprise: Big Data Security Analytics Use Case
Sqrrl
 
The Linked Data Advantage
The Linked Data AdvantageThe Linked Data Advantage
The Linked Data Advantage
Sqrrl
 
Sqrrl Enterprise: Integrate, Explore, Analyze
Sqrrl Enterprise: Integrate, Explore, AnalyzeSqrrl Enterprise: Integrate, Explore, Analyze
Sqrrl Enterprise: Integrate, Explore, Analyze
Sqrrl
 
Sqrrl Datasheet: Cyber Hunting
Sqrrl Datasheet: Cyber HuntingSqrrl Datasheet: Cyber Hunting
Sqrrl Datasheet: Cyber Hunting
Sqrrl
 
Benchmarking The Apache Accumulo Distributed Key–Value Store
Benchmarking The Apache Accumulo Distributed Key–Value StoreBenchmarking The Apache Accumulo Distributed Key–Value Store
Benchmarking The Apache Accumulo Distributed Key–Value Store
Sqrrl
 
Scalable Graph Clustering with Pregel
Scalable Graph Clustering with PregelScalable Graph Clustering with Pregel
Scalable Graph Clustering with Pregel
Sqrrl
 

More from Sqrrl (20)

Transitioning Government Technology
Transitioning Government TechnologyTransitioning Government Technology
Transitioning Government Technology
 
Leveraging Threat Intelligence to Guide Your Hunts
Leveraging Threat Intelligence to Guide Your HuntsLeveraging Threat Intelligence to Guide Your Hunts
Leveraging Threat Intelligence to Guide Your Hunts
 
How to Hunt for Lateral Movement on Your Network
How to Hunt for Lateral Movement on Your NetworkHow to Hunt for Lateral Movement on Your Network
How to Hunt for Lateral Movement on Your Network
 
Machine Learning for Incident Detection: Getting Started
Machine Learning for Incident Detection: Getting StartedMachine Learning for Incident Detection: Getting Started
Machine Learning for Incident Detection: Getting Started
 
Building a Next-Generation Security Operations Center (SOC)
Building a Next-Generation Security Operations Center (SOC)Building a Next-Generation Security Operations Center (SOC)
Building a Next-Generation Security Operations Center (SOC)
 
User and Entity Behavior Analytics using the Sqrrl Behavior Graph
User and Entity Behavior Analytics using the Sqrrl Behavior GraphUser and Entity Behavior Analytics using the Sqrrl Behavior Graph
User and Entity Behavior Analytics using the Sqrrl Behavior Graph
 
Threat Hunting Platforms (Collaboration with SANS Institute)
Threat Hunting Platforms (Collaboration with SANS Institute)Threat Hunting Platforms (Collaboration with SANS Institute)
Threat Hunting Platforms (Collaboration with SANS Institute)
 
Sqrrl and IBM: Threat Hunting for QRadar Users
Sqrrl and IBM: Threat Hunting for QRadar UsersSqrrl and IBM: Threat Hunting for QRadar Users
Sqrrl and IBM: Threat Hunting for QRadar Users
 
Threat Hunting for Command and Control Activity
Threat Hunting for Command and Control ActivityThreat Hunting for Command and Control Activity
Threat Hunting for Command and Control Activity
 
Modernizing Your SOC: A CISO-led Training
Modernizing Your SOC: A CISO-led TrainingModernizing Your SOC: A CISO-led Training
Modernizing Your SOC: A CISO-led Training
 
Threat Hunting vs. UEBA: Similarities, Differences, and How They Work Together
Threat Hunting vs. UEBA: Similarities, Differences, and How They Work Together Threat Hunting vs. UEBA: Similarities, Differences, and How They Work Together
Threat Hunting vs. UEBA: Similarities, Differences, and How They Work Together
 
Leveraging DNS to Surface Attacker Activity
Leveraging DNS to Surface Attacker ActivityLeveraging DNS to Surface Attacker Activity
Leveraging DNS to Surface Attacker Activity
 
The Art and Science of Alert Triage
The Art and Science of Alert TriageThe Art and Science of Alert Triage
The Art and Science of Alert Triage
 
Reducing Mean Time to Know
Reducing Mean Time to KnowReducing Mean Time to Know
Reducing Mean Time to Know
 
Sqrrl Enterprise: Big Data Security Analytics Use Case
Sqrrl Enterprise: Big Data Security Analytics Use CaseSqrrl Enterprise: Big Data Security Analytics Use Case
Sqrrl Enterprise: Big Data Security Analytics Use Case
 
The Linked Data Advantage
The Linked Data AdvantageThe Linked Data Advantage
The Linked Data Advantage
 
Sqrrl Enterprise: Integrate, Explore, Analyze
Sqrrl Enterprise: Integrate, Explore, AnalyzeSqrrl Enterprise: Integrate, Explore, Analyze
Sqrrl Enterprise: Integrate, Explore, Analyze
 
Sqrrl Datasheet: Cyber Hunting
Sqrrl Datasheet: Cyber HuntingSqrrl Datasheet: Cyber Hunting
Sqrrl Datasheet: Cyber Hunting
 
Benchmarking The Apache Accumulo Distributed Key–Value Store
Benchmarking The Apache Accumulo Distributed Key–Value StoreBenchmarking The Apache Accumulo Distributed Key–Value Store
Benchmarking The Apache Accumulo Distributed Key–Value Store
 
Scalable Graph Clustering with Pregel
Scalable Graph Clustering with PregelScalable Graph Clustering with Pregel
Scalable Graph Clustering with Pregel
 

Recently uploaded

UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 

Recently uploaded (20)

UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 

Accumulo14 15

  • 1. Apache Accumulo 1.4 & 1.5 Features Inaugural Accumulo DC Meetup Keith Turner
  • 2. What is Accumulo? A re-implementation of Big Table ● Distributed Database ● Does not support SQL ● Data is arranged by ● Row ● Column ● Time ● No need to declare columns, types
  • 4. Key Structure Key Value Row Column Family Column Qualifier Column Visibility Time Stamp Value Primary Partitioning Component Secondary Partitioning Component Uniqueness Control Access Control Versioning Control Value
  • 9. 1.3 Rfile Index ● Index is an array of keys ● One key per data block ● Complete index loaded into memory when file opened ● Complete index kept in memory when writing file ● Slow load times ● Memory exhaustion
  • 11. Non multi-level 9G file Locality group : <DEFAULT> Start block : 0 Num blocks : 182,691 Index level 0 size : 8,038,404 bytes First key : 00000008611ae5d6 0e94:74e1 [] 1310491465052 false Last key : 7ffffff7daec0b4e 43ee:1c1e [] 1310491475396 false Num entries : 172,014,468 Column families : <UNKNOWN> Meta block : BCFile.index Raw size : 2,148,491 bytes Compressed size : 1,485,697 bytes Compression type : lzo Meta block : RFile.index Raw size : 8,038,470 bytes Compressed size : 5,664,704 bytes Compression type : lzo
  • 12. Index Level 1 Index Level 0 1.4 RFile Data Block Data Block Data Block Data Block Data Block
  • 13. File layout Data Data Index L0 Data Data Index L0 Data Data Index L0 Index L1 ● Index blocks written as data is written ● complete index not kept in memory during write ● Index block for each level kept in memory
  • 14. Multi-level 9G file Locality group : <DEFAULT> Start block : 0 Num blocks : 187,070 Index level 1 : 4,573 bytes 1 blocks Index level 0 : 10,431,126 bytes 82 blocks First key : 00000008611ae5d6 0e94:74e1 [] 1310491465052 false Last key : 7ffffff7daec0b4e 43ee:1c1e [] 1310491475396 false Num entries : 172,014,468 Column families : <UNKNOWN> Meta block : BCFile.index Raw size : 5 bytes Compressed size : 17 bytes Compression type : lzo Meta block : RFile.index Raw size : 4,652 bytes Compressed size : 3,745 bytes Compression type : lzo
  • 15. Test Setup ● Files in FS cache for test (cat test.rf > /dev/null) ● Too much variability when some of file was in FS cache and some was not ● Easier to force all of file into cache than out
  • 16. Open, seek 9G file Multilevel Index Cache Avg Time N N 139.48 ms N Y 37.55 ms Y N 8.48 ms Y Y 3.90 ms
  • 17. Randomly seeking 9G file Multilevel Index Cache Avg Time N N 2.08 ms N Y 2.32 ms Y N 4.33 ms Y Y 2.14 ms
  • 18. Configuration ● Index block size configurable per table ● Make index block size large and it will behave like old rfile ● Enabled index cache by default in 1.4
  • 19. Cache hit rate on monitor page
  • 20. Fault tolerant concurrent table operations
  • 21. Problematic situations ● Master dies during create table ● Create and delete table run concurrently ● Client dies during bulk ingest ● Table deleted while writing or scanning
  • 22. Create table fault ● Master dies during ● Could leave accumulo metadata in bad state ● Master creates table, but then dies before notifying client ● If client retries, it gets table exist exception
  • 23. FATE Fault Tolerant Executor ● If process dies, previously submitted operations continue to execute on restart. ● Serializes operation in zookeeper before execution ● Master uses FATE to execute table operations
  • 24. Bulk import test ● Create table with summation aggregator ● Bulk import files of +1 or -1, graph ensures final sum is 0 ● Concurrently merge, split, compact, and consistency check table ● Exit point verifies 0
  • 25. Adampotent ● Idempotent f(f(x)) = f(x) ● Adampotent f(f'(x)) = f(x) ● f'(x) denotes partial execution of f(x)
  • 26. REPO Repeatable Persisted Operation public interface Repo<T> extends Serializable { long isReady(long tid, T environment) throws Exception; Repo<T> call(long tid, T environment) throws Exception; void undo(long tid, T environment) throws Exception; } ● call() returns next op, null if done ● call() and undo() must be adampotent ● undo() should clean up partial execution of isReady() or call()
  • 27. FATE interface long startTransaction(); void seedTransaction(long tid, Repo op); TStatus waitForCompletion(long tid); Exception getException(long tid); void delete(long tid);
  • 28. Client calling FATE on master Start Tx Seed Tx Wait Tx Delete Tx
  • 30. FATE Persistent store public interface TStore { long reserve(); Repo top(long tid); void push(long tid, Repo repo); void pop(long tid); Tstatus getStatus(long tid); void setStatus(long tid, Tstatus status); . . . }
  • 31. Seeding void seedTransaction(long tid, Repo repo){ if(store.getStatus(tid) == NEW){ if(store.top(tid) == null) store.push(tid, repo); store.setStatus(tid, IN_PROGRESS); } }
  • 32. FATE transaction execution Execute top op Reserve tx Push op Undo top op Pop op Mark success Mark fail Save Exception Mark failed in progress
  • 33. Concurrent table ops ● Per-table read/write lock in zookeeper ● Zookeeper recipe with slight modification : ● store fate tid as lock data ● Use persistent sequential instead of ephemeral sequential
  • 34. Concurrent delete table ● Table deleted during read or write 1.3 ● Most likely, scan hangs forever ● Rarely, permission exception thrown (seen in test) ● In 1.4 check if table exists when : ● Nothing in !METADATA ● See a permission exception
  • 35. Rogue threads ● Bulk import fate op pushes work to tservers ● Threads on tserver execute after fate op done ● Master deletes WID in ZK, waits until counts 0 Tablet server worker thread SynchronizedSynchronized Start WID Exist? cnt[WID]++ Do work cnt[WID]-- exit
  • 36. Create Table Ops 1. CreateTable ● Allocates table id 2. SetupPermissions 3. PopulateZookeeper ● Reentrantly lock table in isReady() ● Relate table name to table id 4. CreateDir 5. PopulateMetadata 6. FinishCreateTable
  • 37. Random walk concurrent test ● Perform all table operation on 5 well known tables ● Run multiple test clients concurrently ● Ensure accumulo or test client does not crash or hang ● Too chaotic to verify data correctness ● Found many bugs
  • 38. Future Work ● Allow multiple processes to run fate operations ● Stop polling ● Hulk Smash Tolerant
  • 40. Tablet Merging ● Splits exists forever; data is often aged off ● Admin requested, not automatic ● Merge by range or size
  • 41. Merging Minor Compaction ● 1.3: minor compactions always add new files: ● 1.4: limits the total of new files:
  • 42. Merging Minor Compactions ● Slows down minor compactions ● Memory fills up ● Creates back-pressure on ingest ● Prevents “unable to open enough files to scan”
  • 43. Table Cloning ● Create a new table using the same read-only files ● Fast ● Testing ● At scale, with representative data ● Compaction with a broken iterator: no more data ● Offline and Copy ● create an consistent snapshot in minutes
  • 44. Range Operations ● Compact Range ● Compact all tablets that fall within a row range down to a single file ● Useful for tail-insert indexes ● Data purge ● Delete Range ● Delete all the content within a row range ● Uses split and will delete whole tablets for efficiency ● Useful for data purge
  • 45. Logical Time for Bulk Import ● Bulk files created on different machines will get different actual times (hours) ● Bulk files always contain the timestamp created by the client ● A single bulk import request can set a consistent time across all files ● Implemented using iterators
  • 47. 1.4.1 Improvements ● Snappy, LZ4 ● HDFS Kerberos compatability ● Bloom filter improvements ● Map Reduce directly over Accumulo files ● Server side row select iterator ● Bulk ingest support for map only jobs ● BigTop support ● Wikisearch example improvements
  • 49. Performance ● Multiple namenode support ● WAL performance improvements ● In-memory map locality groups ● Timestamp visibility filter optimization ● Prefix encoding ● Distributed FATE ops
  • 50. API ● Stats API ● Automatic deployment of iterators ● Tuplestream support ● Coprocessor integration ● Support other client languages ● Client session migration
  • 51. Admin/Security ● Kerberos support/pluggable authentication ● Administration monitor page ● Data center replication ● Rollback/snapshot backup/recovery
  • 52. Reliability ● Decentralize master operations ● Tablet server state model
  • 53. Testing ● Mini-cluster test harness ● Continuous random walk testing