Ruby on Redis. Pascal Weemaels Koen Handekyn Oct 2013

Size: px
Start display at page:

Download "Ruby on Redis. Pascal Weemaels Koen Handekyn Oct 2013"

Transcription

1 Ruby on Redis Pascal Weemaels Koen Handekyn Oct 2013

2 Target Create a Zip file of PDF s parse csv based on a CSV data file Linear version Making it scale with Redis... zip

3 Step 1: linear Parse CSV std lib : require csv docs = CSV.read("#{DATA}.csv")

4 Simple Templating with String Interpolation invoice.html <<Q <div class="title"> INVOICE #{invoice_nr} </div> <div class="address"> #{name}</br> #{street}</br> Merge data into HTML template = File.new('invoice.html'). read html = eval("<<qqq\n#{template} \nqqq ) #{zip} #{city}</br> </div> Q

5 Step 1: linear Create PDF prince xml using princely gem p = Princely.new p.add_style_sheets('invoice.css') p.pdf_from_string(html)

6 Step 1: linear Create ZIP Zip::ZipOutputstream. open(zipfile_name)do zos files.each do file, content zos.new_entry(file) zos.puts content end end

7 require 'csv' require 'princely' require 'zip/zip DATA_FILE = ARGV[0] DATA_FILE_BASE_NAME = File.basename(DATA_FILE, ".csv ) # create a pdf document from a csv line def create_pdf(invoice_nr, name, street, zip, city) template = File.new('../resources/invoice.html').read html = eval("<<wtfmf\n#{template}\nwtfmf") p = Princely.new p.add_style_sheets('../resources/invoice.css') p.pdf_from_string(html) end # zip files from hash def create_zip(files_h) zipfile_name = "../out/#{data_file_base_name}.#{time.now.to_s}.zip" Zip::ZipOutputStream.open(zipfile_name) do zos files_h.each do name, content zos.put_next_entry "#{name}.pdf" zos.puts content end end zipfile_name end # load data from csv docs = CSV.read(DATA_FILE) # array of arrays # create a pdf for each line in the csv # and put it in a hash files_h = docs.inject({}) do files_h, doc files_h[doc[0]] = create_pdf(*doc) files_h end # zip all pfd's from the hash create_zip files_h Full Code

8 DEMO

9 Step 2: from linear... parse csv... zip

10 Step 2:...to parallel parse csv Threads? zip

11 Multi Threaded Advantage Lightweight (minimal overhead) Challenges (or why is it hard) Hard to code: most data structures are not thread safe by default, they need synchronized access Hard to test: different execution paths, timings Hard to maintain Limitation single machine - not a solution for horizontal scalability beyond the multi core cpu

12 Step 2:...to parallel parse csv? zip

13 Multi Process scale across machines advanced support for debugging and monitoring at the OS level simpler (code, testing, debugging,...) slightly more overhead BUT

14 But MemCached all this assumes shared state across processes parse csv SQL? shared state shared state File System zip Terra Cotta OR

15 Hello Redis Shared Memory Key Value Store with High Level Data Structure support String (String, Int, Float) Hash (Map, Dictionary) List (Queue) Set ZSet (ordered by member or score)

16 About Redis Single threaded : 1 thread to serve them all (fit) Everything in memory Transactions (multi exec) Expiring keys LUA Scripting Publisher-Subscriber Auto Create and Destroy Pipelining But full clustering (master-master) is not available (yet)

17 Hello Redis redis-cli set name pascal => pascal incr counter => 1 incr counter => 2 hset pascal name pascal hset pascal address merelbeke sadd persons pascal smembers persons => [pascal] keys * type pascal => hash lpush todo read => 1 lpush todo eat => 2 lpop todo => eat rpoplpush todo done => read lrange done 0-1 => read

18 Let Redis Distribute parse csv process zip process process...

19 Spread the Work parse csv 1 Queue with data process zip counter process process...

20 Ruby on Redis Put PDF Create Input data on a Queue and do the counter bookkeeping docs.each do doc data = YAML::dump(doc) r.lpush 'pdf:queue, data end r.incr "ctr # bookkeeping

21 Create PDF s parse csv process zip counter Queue with data 1 Hash with pdfs 2 process process...

22 Ruby on Redis Read PDF input data from Queue and do the counter bookkeeping and put each created PDF in a Redis hash and signal if ready while (true) _, msg = r.brpop 'pdf:queue doc = YAML::load(msg) end #name of hash, key=docname, value=pdf r.hset( pdf:pdfs, doc[0], create_pdf(*doc)) ctr = r.decr ctr r.rpush "ready", "done" if ctr == 0

23 Zip When Done parse csv process zip ready 3 Hash with pdfs process process...

24 Ruby on Redis Wait for the ready signal Fetch all pdf s And zip them r.brpop "ready # wait for signal pdfs = r.hgetall pdf:pdfs # fetch hash create_zip pdfs # zip it

25 More Parallelism parse csv zip ready ready ready counter counter counter Queue with data hash Hash hash with Pdfs...

26 Ruby on Redis Put PDF Create Input data on a Queue and do the counter bookkeeping # unique id for this input file UUID = SecureRandom.uuid docs.each do doc data = YAML::dump([UUID, doc]) r.lpush 'pdf:queue, data end r.incr "ctr:#{uuid} # bookkeeping

27 Ruby on Redis Read PDF input data from Queue and do the counter bookkeeping and put each created PDF in a Redis hash while (true) end _, msg = r.brpop 'pdf:queue uuid, doc = YAML::load(msg) r.hset(uuid, doc[0], create_pdf(*doc)) ctr = r.decr "ctr:#{uuid}" r.rpush "ready:#{uuid}", "done" if ctr == 0

28 Ruby on Redis Wait for the ready signal Fetch all pdf s And zip them r.brpop "ready:#{uuid} # wait for signal pdfs = r.hgetall( pdf:pdfs ) # fetch hash create_zip(pdfs) # zip it

29 Full Code require 'csv' require 'princely' require 'zip/zip DATA_FILE = ARGV[0] DATA_FILE_BASE_NAME = File.basename(DATA_FILE, ".csv ) # create a pdf document from a csv line def create_pdf(invoice_nr, name, street, zip, city) template = File.new('../resources/invoice.html').read html = eval("<<wtfmf\n#{template}\nwtfmf") p = Princely.new p.add_style_sheets('../resources/invoice.css') p.pdf_from_string(html) end # zip files from hash def create_zip(files_h) zipfile_name = "../out/#{data_file_base_name}.#{time.now.to_s}.zip" Zip::ZipOutputStream.open(zipfile_name) do zos files_h.each do name, content zos.put_next_entry "#{name}.pdf" zos.puts content end end zipfile_name end # load data from csv docs = CSV.read(DATA_FILE) # array of arrays # create a pdf for each line in the csv # and put it in a hash files_h = docs.inject({}) do files_h, doc files_h[doc[0]] = create_pdf(*doc) files_h end # zip all pfd's from the hash create_zip files_h require 'csv require 'zip/zip' require 'redis' require 'yaml' require 'securerandom' # zip files from hash def create_zip(files_h) zipfile_name = "../out/#{data_file_base_name}.#{time.now.to_s}.zip" Zip::ZipOutputStream.open(zipfile_name) do zos files_h.each do name, content zos.put_next_entry "#{name}.pdf" zos.puts content end end zipfile_name end DATA_FILE = ARGV[0] DATA_FILE_BASE_NAME = File.basename(DATA_FILE, ".csv") UUID = SecureRandom.uuid r = Redis.new my_counter = "ctr:#{uuid}" # load data from csv docs = CSV.read(DATA_FILE) # array of arrays docs.each do doc # distribute r.lpush 'pdf:queue', YAML::dump([UUID, doc]) r.incr my_counter end r.brpop "ready:#{uuid}" #collect create_zip(r.hgetall(uuid)) # clean up r.del my_counter r.del UUID puts "All done require 'redis' require 'princely' require 'yaml # create a pdf document from a csv line def create_pdf(invoice_nr, name, street, zip, city) template = File.new('../resources/invoice.html').read html = eval("<<wtfmf\n#{template}\nwtfmf") p = Princely.new p.add_style_sheets('../resources/invoice.css') p.pdf_from_string(html) end r = Redis.new while (true) _, msg = r.brpop 'pdf:queue' uuid, doc = YAML::load(msg) r.hset(uuid, doc[0], create_pdf(*doc)) ctr = r.decr "ctr:#{uuid}" r.rpush "ready:#{uuid}", "done" if ctr == 0 end LINEAR MAIN WORKER Key functions ( and create zip) remain unchanged. Distribution code highlighted

30 DEMO 2

31 Multi Language Participants parse csv zip counter counter counter Queue with data hash Hash hash with pdfs...

32 Conclusions From Linear To Multi Process Distributed Is easy with Redis Shared Memory High Level Data Structures Atomic Counter for bookkeeping Queue for work distribution Queue as Signal Hash for result sets

LECTURE 27. Python and Redis

LECTURE 27. Python and Redis LECTURE 27 Python and Redis PYTHON AND REDIS Today, we ll be covering a useful but not entirely Python-centered topic: the inmemory datastore Redis. We ll start by introducing Redis itself and then discussing

More information

COSC Redis. Paul Moore, Stephen Smithbower, William Lee. March 11, 2013

COSC Redis. Paul Moore, Stephen Smithbower, William Lee. March 11, 2013 March 11, 2013 What is Redis? - Redis is an in-memory key-value data store. - Can be a middle-ware solution between your expensive persistent data-store (Oracle), and your application. - Provides PubSub,

More information

Dr. Chuck Cartledge. 19 Nov. 2015

Dr. Chuck Cartledge. 19 Nov. 2015 CS-695 NoSQL Database Redis (part 1 of 2) Dr. Chuck Cartledge 19 Nov. 2015 1/21 Table of contents I 1 Miscellanea 2 DB comparisons 3 Assgn. #7 4 Historical origins 5 Data model 6 CRUDy stuff 7 Other operations

More information

REDIS: NOSQL DATA STORAGE

REDIS: NOSQL DATA STORAGE REDIS: NOSQL DATA STORAGE 1 Presented By- Shalini Somani (13MCEC22) CATEGORIES OF NOSQL STORAGES Key-Value memcached Redis Column Family Cassandra HBase Document MongoDB Tabular BigTable Graph, XML, Object,

More information

Redis - a Flexible Key/Value Datastore An Introduction

Redis - a Flexible Key/Value Datastore An Introduction Redis - a Flexible Key/Value Datastore An Introduction Alexandre Dulaunoy AIMS 2011 MapReduce and Network Forensic MapReduce is an old concept in computer science The map stage to perform isolated computation

More information

Harnessing the Full power of Redis. Daniel Magliola

Harnessing the Full power of Redis. Daniel Magliola Harnessing the Full power of Redis Daniel Magliola daniel@danielmagliola.com http://danielmagliola.com What is Redis? Redis is essentially like Memcached, but better I mean, it s an in-memory key-value

More information

How you can benefit from using. javier

How you can benefit from using. javier How you can benefit from using I was Lois Lane redis has super powers myth: the bottleneck redis-benchmark -r 1000000 -n 2000000 -t get,set,lpush,lpop,mset -P 16 -q On my laptop: SET: 513610 requests

More information

Scalable Time Series in PCP. Lukas Berk

Scalable Time Series in PCP. Lukas Berk Scalable Time Series in PCP Lukas Berk Summary Problem Statement Proposed Solution Redis Basic Types Summary Current Work Future Work Items Problem Statement Scaling PCP s metrics querying to hundreds/thousands

More information

REdis: Implementing Redis in Erlang. A step-by-step walkthrough

REdis: Implementing Redis in Erlang. A step-by-step walkthrough R: Implementing Redis in Erlang A step-by-step walkthrough 1 2 : Implementing Redis in Erlang A step-by-step walkthrough 2 My Background Microsoft Visual Studio Visto Corporation Founded Inaka Moved to

More information

Agenda. About Me JDriven The case : Westy Tracking Background Architecture Implementation Demo

Agenda. About Me JDriven The case : Westy Tracking Background Architecture Implementation Demo y t s e W g n i k c a r T and l a v a j # 6 1 h c r 8 Ma Agenda About Me JDriven The case : Westy Tracking Background Architecture Implementation Demo About me Proud dad of two kids and a '82 VW Westy

More information

Database Solution in Cloud Computing

Database Solution in Cloud Computing Database Solution in Cloud Computing CERC liji@cnic.cn Outline Cloud Computing Database Solution Our Experiences in Database Cloud Computing SaaS Software as a Service PaaS Platform as a Service IaaS Infrastructure

More information

Redis Functions and Data Structures at Percona Live. Dave Nielsen, Developer Redis

Redis Functions and Data Structures at Percona Live. Dave Nielsen, Developer Redis Redis Functions and Data Structures at Percona Live Dave Nielsen, Developer Advocate dave@redislabs.com @davenielsen Redis Labs @redislabs Redis = A Unique Database Redis is an open source (BSD licensed),

More information

Caching Memcached vs. Redis

Caching Memcached vs. Redis Caching Memcached vs. Redis San Francisco MySQL Meetup Ryan Lowe Erin O Neill 1 Databases WE LOVE THEM... Except when we don t 2 When Databases Rule Many access patterns on the same set of data Transactions

More information

NoSQL: Redis and MongoDB A.A. 2016/17

NoSQL: Redis and MongoDB A.A. 2016/17 Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica NoSQL: Redis and MongoDB A.A. 2016/17 Matteo Nardelli Laurea Magistrale in Ingegneria Informatica -

More information

Redis as a Reliable Work Queue. Percona University

Redis as a Reliable Work Queue. Percona University Redis as a Reliable Work Queue Percona University 2015-02-12 Introduction Tom DeWire Principal Software Engineer Bronto Software Chris Thunes Senior Software Engineer Bronto Software Introduction Introduction

More information

erlocator Location, location, location.

erlocator Location, location, location. Location, location, location. Overview - Objective Make Erlang more accessible and less daunting. The demonstration application will: Leverage a NoSQL backend Use Natively Implemented Functions Exhibit

More information

Programming in Python

Programming in Python COURSE DESCRIPTION This course presents both the programming interface and the techniques that can be used to write procedures in Python on Unix / Linux systems. COURSE OBJECTIVES Each participant will

More information

Agenda. Introduction You Me JDriven The case : Westy Tracking Details Implementation Deployment

Agenda. Introduction You Me JDriven The case : Westy Tracking Details Implementation Deployment y t s e W g n i k c a r T e p o r u mmit E u S y r d un o F 6 d 1 u h t Clo 8 2 r e b m Septe Agenda Introduction You Me JDriven The case : Westy Tracking Details Implementation Deployment About you About

More information

NoSQL Databases. an overview

NoSQL Databases. an overview NoSQL Databases an overview Who? Why? During studies: Excited by simplicity Crawler Project: 100 Million records Single server 100+ QPS Initially: Limited query options Now: Query them all Experimented

More information

Jason Brelloch and William Gimson

Jason Brelloch and William Gimson Jason Brelloch and William Gimson Overview 1. Introduction 2. History 3. Specifications a. Structure b. Communication c. Datatypes 4. Command Overview 5. Advanced Capabilities 6. Advantages 7. Disadvantages

More information

Big Data Management and NoSQL Databases

Big Data Management and NoSQL Databases NDBI040 Big Data Management and NoSQL Databases Lecture 5. Key-value stores Doc. RNDr. Irena Holubova, Ph.D. holubova@ksi.mff.cuni.cz http://www.ksi.mff.cuni.cz/~holubova/ndbi040/ Key-value store Basic

More information

Martin Kruliš, v

Martin Kruliš, v Martin Kruliš 1 Optimizations in General Code And Compilation Memory Considerations Parallelism Profiling And Optimization Examples 2 Premature optimization is the root of all evil. -- D. Knuth Our goal

More information

Redis Tuesday, May 29, 12

Redis Tuesday, May 29, 12 Redis 2.6 @antirez Redis 2.6 Major new features. Based on unstable branch (minus the cluster code). Why a 2.6 release? Redis Cluster is a long term project (The hurried cat produced blind kittens). Intermediate

More information

Classifying malware using network traffic analysis. Or how to learn Redis, git, tshark and Python in 4 hours.

Classifying malware using network traffic analysis. Or how to learn Redis, git, tshark and Python in 4 hours. Classifying malware using network traffic analysis. Or how to learn Redis, git, tshark and Python in 4 hours. Alexandre Dulaunoy January 9, 2015 Problem Statement We have more 5000 pcap files generated

More information

DiskBoss DATA MANAGEMENT

DiskBoss DATA MANAGEMENT DiskBoss DATA MANAGEMENT Duplicate Files Search Version 9.1 Apr 2018 www.diskboss.com info@flexense.com 1 1 DiskBoss Overview DiskBoss is an automated, policy-based data management solution allowing one

More information

About Python. Python Duration. Training Objectives. Training Pre - Requisites & Who Should Learn Python

About Python. Python Duration. Training Objectives. Training Pre - Requisites & Who Should Learn Python About Python Python course is a great introduction to both fundamental programming concepts and the Python programming language. By the end, you'll be familiar with Python syntax and you'll be able to

More information

django-redis-cache Documentation

django-redis-cache Documentation django-redis-cache Documentation Release 1.5.2 Sean Bleier Nov 15, 2018 Contents 1 Intro and Quick Start 3 1.1 Intro................................................... 3 1.2 Quick Start................................................

More information

QTP MOCK TEST QTP MOCK TEST II

QTP MOCK TEST QTP MOCK TEST II http://www.tutorialspoint.com QTP MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to QTP Framework. You can download these sample mock tests at your local

More information

Distributed Systems. 29. Distributed Caching Paul Krzyzanowski. Rutgers University. Fall 2014

Distributed Systems. 29. Distributed Caching Paul Krzyzanowski. Rutgers University. Fall 2014 Distributed Systems 29. Distributed Caching Paul Krzyzanowski Rutgers University Fall 2014 December 5, 2014 2013 Paul Krzyzanowski 1 Caching Purpose of a cache Temporary storage to increase data access

More information

Harness the power of Python magic methods and lazy objects.

Harness the power of Python magic methods and lazy objects. Harness the power of Python magic methods and lazy objects. By Sep Dehpour Aug 2016 zepworks.com sep at zepworks.com https://github.com/seperman/redisworks Lazy Loading Defer initialization of an object

More information

My Other Car is a Redis. Etan Grundstein & Sasha Popov DYNAMIC YIELD

My Other Car is a Redis. Etan Grundstein & Sasha Popov DYNAMIC YIELD My Other Car is a Redis Etan Grundstein & Sasha Popov DYNAMIC YIELD About Dynamic Yield Dynamic Yield helps marketers increase revenue by personalizing customer interactions across web, mobile web, mobile

More information

Databases and Big Data Today. CS634 Class 22

Databases and Big Data Today. CS634 Class 22 Databases and Big Data Today CS634 Class 22 Current types of Databases SQL using relational tables: still very important! NoSQL, i.e., not using relational tables: term NoSQL popular since about 2007.

More information

PO CO DEVELOPER TRAINING C++ PORTABLE PO CO SMARTER DEVICE NETWORKING

PO CO DEVELOPER TRAINING C++ PORTABLE PO CO SMARTER DEVICE NETWORKING C++ RTABLE MNENTS DEVELOPER TRAINING Overview An Overview and a Guided Tour of the C++ Libraries "Without a good library, most interesting tasks are hard to do in C++; but given a good library, almost

More information

MapReduce on the Cell Broadband Engine Architecture. Marc de Kruijf

MapReduce on the Cell Broadband Engine Architecture. Marc de Kruijf MapReduce on the Cell Broadband Engine Architecture Marc de Kruijf Overview Motivation MapReduce Cell BE Architecture Design Performance Analysis Implementation Status Future Work What is MapReduce? A

More information

doit Documentation Release

doit Documentation Release doit Documentation Release 0.30.3 Jan Vlčinský Oct 26, 2017 Table of Contents 1 tasks => {doit + shell + python} => done 1 1.1 Use Cases................................................. 1 1.2 Quick Start................................................

More information

CS333 Intro to Operating Systems. Jonathan Walpole

CS333 Intro to Operating Systems. Jonathan Walpole CS333 Intro to Operating Systems Jonathan Walpole Threads & Concurrency 2 Threads Processes have the following components: - an address space - a collection of operating system state - a CPU context or

More information

GUI in C++ PV264 Advanced Programming in C++ Nikola Beneš Jan Mrázek Vladimír Štill. Faculty of Informatics, Masaryk University.

GUI in C++ PV264 Advanced Programming in C++ Nikola Beneš Jan Mrázek Vladimír Štill. Faculty of Informatics, Masaryk University. GUI in C++ PV264 Advanced Programming in C++ Nikola Beneš Jan Mrázek Vladimír Štill Faculty of Informatics, Masaryk University Spring 2017 PV264: GUI in C++ Spring 2017 1 / 23 Organisation Lectures this

More information

Scaling. Yashh Nelapati Gotham City. Marty Weiner Krypton. Friday, July 27, 12

Scaling. Yashh Nelapati Gotham City. Marty Weiner Krypton. Friday, July 27, 12 Scaling Marty Weiner Krypton Yashh Nelapati Gotham City Pinterest is... An online pinboard to organize and share what inspires you. Relationships Marty Weiner Grayskull, Eternia Relationships Marty

More information

THE FLEXIBLE DATA-STRUCTURE SERVER THAT COULD.

THE FLEXIBLE DATA-STRUCTURE SERVER THAT COULD. REDIS THE FLEXIBLE DATA-STRUCTURE SERVER THAT COULD. @_chriswhitten_ REDIS REDIS April 10, 2009; 6 years old Founding Author: Salvatore Sanfilippo Stable release: 3.0.3 / June 4, 2015; 3 months ago Fundamental

More information

IEMS 5780 / IERG 4080 Building and Deploying Scalable Machine Learning Services

IEMS 5780 / IERG 4080 Building and Deploying Scalable Machine Learning Services IEMS 5780 / IERG 4080 Building and Deploying Scalable Machine Learning Services Lecture 11 - Asynchronous Tasks and Message Queues Albert Au Yeung 22nd November, 2018 1 / 53 Asynchronous Tasks 2 / 53 Client

More information

Tungsten Replicator for Kafka, Elasticsearch, Cassandra

Tungsten Replicator for Kafka, Elasticsearch, Cassandra Tungsten Replicator for Kafka, Elasticsearch, Cassandra Topics In todays session Replicator Basics Filtering and Glue Kafka and Options Elasticsearch and Options Cassandra Future Direction 2 Asynchronous

More information

Redis as a Time Series DB. Josiah Carlson

Redis as a Time Series DB. Josiah Carlson Redis as a Time Series DB Josiah Carlson - @dr_josiah Agenda Who are you? What is Redis? (3 minutes, optional) What is a time series database? Combining structures for success Analyzing/segmenting events

More information

Antivirus and Content Shield Protect your SharePoint Farm Using the AvePoint Antivirus and Content Shield Solution

Antivirus and Content Shield Protect your SharePoint Farm Using the AvePoint Antivirus and Content Shield Solution Quick Start Guide Antivirus and Content Shield Protect your SharePoint Farm Using the AvePoint Antivirus and Content Shield Solution This document is intended for anyone wishing to familiarize themselves

More information

Redis Func+ons and Data Structures

Redis Func+ons and Data Structures Redis Func+ons and Data Structures About This Talk Topic : Redis Func/ons and Data Structures Presenter: Redis Labs, the open source home and provider of enterprise Redis About Redis Labs: 5300+ paying

More information

Deep Learning Inference as a Service

Deep Learning Inference as a Service Deep Learning Inference as a Service Mohammad Babaeizadeh Hadi Hashemi Chris Cai Advisor: Prof Roy H. Campbell Use case 1: Model Developer Use case 1: Model Developer Inference Service Use case

More information

CSci 4061 Introduction to Operating Systems. (Thread-Basics)

CSci 4061 Introduction to Operating Systems. (Thread-Basics) CSci 4061 Introduction to Operating Systems (Thread-Basics) Threads Abstraction: for an executing instruction stream Threads exist within a process and share its resources (i.e. memory) But, thread has

More information

Motivation. Threads. Multithreaded Server Architecture. Thread of execution. Chapter 4

Motivation. Threads. Multithreaded Server Architecture. Thread of execution. Chapter 4 Motivation Threads Chapter 4 Most modern applications are multithreaded Threads run within application Multiple tasks with the application can be implemented by separate Update display Fetch data Spell

More information

ReJSON = { "activity": "new trick" } Itamar

ReJSON = { activity: new trick } Itamar ReJSON = { "id": "old dog", "activity": "new trick" } Itamar Haber @itamarhaber What do Chuck Norris, JSON & Redis have in common? They're everywhere. "Any application that can be written in JavaScript,

More information

TCL Scripting for Cisco IOS

TCL Scripting for Cisco IOS TCL Scripting for Cisco IOS Petr Grygárek rek 1 Automation using TCL Scriptiong Network monitoring Troubleshooting tools Added intelligence 2 Tool Command Language (TCL) Invented by John K. Ousterhout,

More information

Developing Microsoft Azure Solutions (70-532) Syllabus

Developing Microsoft Azure Solutions (70-532) Syllabus Developing Microsoft Azure Solutions (70-532) Syllabus Cloud Computing Introduction What is Cloud Computing Cloud Characteristics Cloud Computing Service Models Deployment Models in Cloud Computing Advantages

More information

Tracing embedded heterogeneous systems

Tracing embedded heterogeneous systems Tracing embedded heterogeneous systems P R O G R E S S R E P O R T M E E T I N G, D E C E M B E R 2015 T H O M A S B E R T A U L D D I R E C T E D B Y M I C H E L D A G E N A I S December 10th 2015 TRACING

More information

Using Redis As a Time Series Database

Using Redis As a Time Series Database WHITE PAPER Using Redis As a Time Series Database Dr.Josiah Carlson, Author of Redis in Action CONTENTS Executive Summary 2 Use Cases 2 Advanced Analysis Using a Sorted Set with Hashes 2 Event Analysis

More information

CS 333 Introduction to Operating Systems. Class 3 Threads & Concurrency. Jonathan Walpole Computer Science Portland State University

CS 333 Introduction to Operating Systems. Class 3 Threads & Concurrency. Jonathan Walpole Computer Science Portland State University CS 333 Introduction to Operating Systems Class 3 Threads & Concurrency Jonathan Walpole Computer Science Portland State University 1 Process creation in UNIX All processes have a unique process id getpid(),

More information

Threads. What is a thread? Motivation. Single and Multithreaded Processes. Benefits

Threads. What is a thread? Motivation. Single and Multithreaded Processes. Benefits CS307 What is a thread? Threads A thread is a basic unit of CPU utilization contains a thread ID, a program counter, a register set, and a stack shares with other threads belonging to the same process

More information

The Kernel Abstraction

The Kernel Abstraction The Kernel Abstraction Debugging as Engineering Much of your time in this course will be spent debugging In industry, 50% of software dev is debugging Even more for kernel development How do you reduce

More information

Progress report of "Ruby 3 Concurrency"

Progress report of Ruby 3 Concurrency Progress report of "Ruby 3 Concurrency" Cookpad Inc. Koichi Sasada Ruby X Elixir Conf Taiwan 2018 (2018/04/28) Today s topic Difficulty of Thread programming New concurrent abstraction

More information

A short-term plan for Redis

A short-term plan for Redis A short-term plan for Redis @antirez - Pivotal Redis is made of pieces Transactions Replication Storage API Scripting Sentinel Pub/Sub CLI Cluster Persistence Networking Evolution Redis can be analyzed

More information

ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective

ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective Part II: Data Center Software Architecture: Topic 3: Programming Models Piccolo: Building Fast, Distributed Programs

More information

whitepaper Using Redis As a Time Series Database: Why and How

whitepaper Using Redis As a Time Series Database: Why and How whitepaper Using Redis As a Time Series Database: Why and How Author: Dr.Josiah Carlson, Author of Redis in Action Table of Contents Executive Summary 2 A Note on Race Conditions and Transactions 2 Use

More information

Give Your Site a Boost With memcached. Ben Ramsey

Give Your Site a Boost With memcached. Ben Ramsey Give Your Site a Boost With memcached Ben Ramsey About Me Proud father of 8-month-old Sean Organizer of Atlanta PHP user group Founder of PHP Groups Founding principal of PHP Security Consortium Original

More information

Alleviate the Apprehension of Coding in Ruby

Alleviate the Apprehension of Coding in Ruby Alleviate the Apprehension of Coding in Ruby Chris Lasell Apple Peeler Pixar Animation Studios Install session materials Includes some example code & libraries ruby-jss and ruby gem dependencies into /Library/Ruby/Gems

More information

Lecture Notes to Big Data Management and Analytics Winter Term 2017/2018 NoSQL Databases

Lecture Notes to Big Data Management and Analytics Winter Term 2017/2018 NoSQL Databases Lecture Notes to Big Data Management and Analytics Winter Term 2017/2018 NoSQL Databases Matthias Schubert, Matthias Renz, Felix Borutta, Evgeniy Faerman, Christian Frey, Klaus Arthur Schmid, Daniyal Kazempour,

More information

Under the Hood, Part 1: Implementing Message Passing

Under the Hood, Part 1: Implementing Message Passing Lecture 27: Under the Hood, Part 1: Implementing Message Passing Parallel Computer Architecture and Programming CMU 15-418/15-618, Today s Theme Message passing model (abstraction) Threads operate within

More information

PROCESSES AND THREADS

PROCESSES AND THREADS PROCESSES AND THREADS A process is a heavyweight flow that can execute concurrently with other processes. A thread is a lightweight flow that can execute concurrently with other threads within the same

More information

PayPal Delivers World Class Customer Service, Worldwide

PayPal Delivers World Class Customer Service, Worldwide PayPal Delivers World Class Customer Service, Worldwide Greg Gates, VP of Enterprise Ops Engineering Ramki Rosanuru, Sr. Engineering Manager-COE PayPal PEGA in PayPal Why we choose PEGA? Bridge the gap

More information

Your First Ruby Script

Your First Ruby Script Learn Ruby in 50 pages Your First Ruby Script Step-By-Step Martin Miliauskas @mmiliauskas 1 Your First Ruby Script, Step-By-Step By Martin Miliauskas Published in 2013 by Martin Miliauskas On the web:

More information

My First Command-Line Program

My First Command-Line Program 1. Tutorial Overview My First Command-Line Program In this tutorial, you re going to create a very simple command-line application that runs in a window. Unlike a graphical user interface application where

More information

CS 333 Introduction to Operating Systems. Class 3 Threads & Concurrency. Jonathan Walpole Computer Science Portland State University

CS 333 Introduction to Operating Systems. Class 3 Threads & Concurrency. Jonathan Walpole Computer Science Portland State University CS 333 Introduction to Operating Systems Class 3 Threads & Concurrency Jonathan Walpole Computer Science Portland State University 1 The Process Concept 2 The Process Concept Process a program in execution

More information

/INFOMOV/ Optimization & Vectorization. J. Bikker - Sep-Nov Lecture 12: Multithreading. Welcome!

/INFOMOV/ Optimization & Vectorization. J. Bikker - Sep-Nov Lecture 12: Multithreading. Welcome! /INFOMOV/ Optimization & Vectorization J. Bikker - Sep-Nov 2018 - Lecture 12: Multithreading Welcome! Today s Agenda: Introduction Hardware Trust No One / An fficient Pattern xperiments Final Assignment

More information

Performance Benchmark and Capacity Planning. Version: 7.3

Performance Benchmark and Capacity Planning. Version: 7.3 Performance Benchmark and Capacity Planning Version: 7.3 Copyright 215 Intellicus Technologies This document and its content is copyrighted material of Intellicus Technologies. The content may not be copied

More information

A Distributed Query Engine for XML-QL

A Distributed Query Engine for XML-QL A Distributed Query Engine for XML-QL Paramjit Oberoi and Vishal Kathuria University of Wisconsin-Madison {param,vishal}@cs.wisc.edu Abstract: This paper describes a distributed Query Engine for executing

More information

whitepaper RediSearch: A High Performance Search Engine as a Redis Module

whitepaper RediSearch: A High Performance Search Engine as a Redis Module whitepaper RediSearch: A High Performance Search Engine as a Redis Module Author: Dvir Volk, Senior Architect, Redis Labs Table of Contents RediSearch At-a-Glance 2 A Little Taste: RediSearch in Action

More information

Course Outline: Course 10267A: Introduction to Web Development with Microsoft Visual Studio 2010 Learning Method: Instructor-led Classroom Learning

Course Outline: Course 10267A: Introduction to Web Development with Microsoft Visual Studio 2010 Learning Method: Instructor-led Classroom Learning Course Outline: Course 10267A: Introduction to Web Development with Microsoft Visual Studio 2010 Learning Method: Instructor-led Classroom Learning Duration: 5.00 Day(s)/ 40 hrs Overview: This five-day

More information

Give Your Site a Boost With memcached. Ben Ramsey

Give Your Site a Boost With memcached. Ben Ramsey Give Your Site a Boost With memcached Ben Ramsey About Me Proud father of 3-month-old Sean Organizer of Atlanta PHP user group Founder of PHP Groups Founding principal of PHP Security Consortium Original

More information

GrinderBench. software benchmark data book.

GrinderBench. software benchmark data book. GrinderBench software benchmark data book Table of Contents Calculating the Grindermark...2 Chess...3 Crypto...5 kxml...6 Parallel...7 PNG...9 1 Name: Calculating the Grindermark The Grindermark and the

More information

Realtime visitor analysis with Couchbase and Elasticsearch

Realtime visitor analysis with Couchbase and Elasticsearch Realtime visitor analysis with Couchbase and Elasticsearch Jeroen Reijn @jreijn #nosql13 About me Jeroen Reijn Software engineer Hippo @jreijn http://blog.jeroenreijn.com About Hippo Visitor Analysis OneHippo

More information

IEMS 5722 Mobile Network Programming and Distributed Server Architecture

IEMS 5722 Mobile Network Programming and Distributed Server Architecture Department of Information Engineering, CUHK MScIE 2 nd Semester, 2016/17 IEMS 5722 Mobile Network Programming and Distributed Server Architecture Lecture 6 Databases and Caches Lecturer: Albert C. M. Au

More information

Manual Mysql Query Cache Hit Rate 0

Manual Mysql Query Cache Hit Rate 0 Manual Mysql Query Cache Hit Rate 0 B) why the Table cache hit rate is only 56% How can i achieve better cache hit rate? (OK) Currently running supported MySQL version 5.5.43-0+deb7u1-log or complex to

More information

Ball Aerospace s Open Source Command and Control System. Ryan Melton Ball Aerospace & Technologies Corp. Boulder, CO

Ball Aerospace s Open Source Command and Control System. Ryan Melton Ball Aerospace & Technologies Corp. Boulder, CO Ball Aerospace s Open Source Command and Control System Ryan Melton Ball Aerospace & Technologies Corp. Boulder, CO 8/5/2016 VISION To enable small satellite developers to easily and cost effectively command

More information

Logic Networks on the Grid: Handling 15 Million Jobs

Logic Networks on the Grid: Handling 15 Million Jobs Logic Networks on the Grid: Handling 15 Million Jobs Jan Bot, Delft Bioinformatics Lab 07-06-10 Delft University of Technology Challenge the future Overview Explanation of the application Challenges for

More information

INFO-H-415 Advanced Databases Key-value stores and Redis. Fatemeh Shafiee Raisa Uku

INFO-H-415 Advanced Databases Key-value stores and Redis. Fatemeh Shafiee Raisa Uku INFO-H-415 Advanced Databases Key-value stores and Redis Fatemeh Shafiee 000454718 Raisa Uku 000456485 December 2017 Contents 1 Introduction 5 2 NoSQL Databases 5 2.1 Introduction to NoSQL Databases...............................

More information

Features & Functionalities

Features & Functionalities Features & Functionalities Release 3.0 www.capture-experts.com Import FEATURES Processing TIF CSV EML Text Clean-up Email HTML ZIP TXT Merge Documents Convert to TIF PST RTF PPT XLS Text Recognition Barcode

More information

Storm. Distributed and fault-tolerant realtime computation. Nathan Marz Twitter

Storm. Distributed and fault-tolerant realtime computation. Nathan Marz Twitter Storm Distributed and fault-tolerant realtime computation Nathan Marz Twitter Storm at Twitter Twitter Web Analytics Before Storm Queues Workers Example (simplified) Example Workers schemify tweets and

More information

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Copyright 2012, Oracle and/or its affiliates. All rights reserved. 1 Oracle BI Publisher Best Practices: Be a Reporting Super Star Nikolas Psomas Principal Product Manager Klaus Fabian Sr. Manager, Product Development 2 CON9514 The following is intended to outline our

More information

Search Engines and Time Series Databases

Search Engines and Time Series Databases Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Search Engines and Time Series Databases Corso di Sistemi e Architetture per Big Data A.A. 2017/18

More information

Running MarkLogic in Containers (Both Docker and Kubernetes)

Running MarkLogic in Containers (Both Docker and Kubernetes) Running MarkLogic in Containers (Both Docker and Kubernetes) Emma Liu Product Manager, MarkLogic Vitaly Korolev Staff QA Engineer, MarkLogic @vitaly_korolev 4 June 2018 MARKLOGIC CORPORATION Source: http://turnoff.us/image/en/tech-adoption.png

More information

CSCI 136 Data Structures & Advanced Programming. Fall 2018 Instructors Bill Lenhart & Bill Jannen

CSCI 136 Data Structures & Advanced Programming. Fall 2018 Instructors Bill Lenhart & Bill Jannen CSCI 136 Data Structures & Advanced Programming Fall 2018 Instructors Bill Lenhart & Bill Jannen Administrative Details Class roster: Who s here? And who s trying to get in? Handout: Class syllabus Lecture

More information

Scrapy-Redis Documentation

Scrapy-Redis Documentation Scrapy-Redis Documentation Release 0.7.0-dev Rolando Espinoza Nov 13, 2017 Contents 1 Scrapy-Redis 3 1.1 Features.................................................. 3 1.2 Requirements...............................................

More information

O Reilly RailsConf,

O Reilly RailsConf, O Reilly RailsConf, 2011-05- 18 Who is that guy? Jesper Richter- Reichhelm / @jrirei Berlin, Germany Head of Engineering @ wooga Wooga does social games Wooga has dedicated game teams Cooming soon PHP

More information

TH IRD EDITION. Python Cookbook. David Beazley and Brian K. Jones. O'REILLY. Beijing Cambridge Farnham Köln Sebastopol Tokyo

TH IRD EDITION. Python Cookbook. David Beazley and Brian K. Jones. O'REILLY. Beijing Cambridge Farnham Köln Sebastopol Tokyo TH IRD EDITION Python Cookbook David Beazley and Brian K. Jones O'REILLY. Beijing Cambridge Farnham Köln Sebastopol Tokyo Table of Contents Preface xi 1. Data Structures and Algorithms 1 1.1. Unpacking

More information

Debugging CUDA Applications with Allinea DDT. Ian Lumb Sr. Systems Engineer, Allinea Software Inc.

Debugging CUDA Applications with Allinea DDT. Ian Lumb Sr. Systems Engineer, Allinea Software Inc. Debugging CUDA Applications with Allinea DDT Ian Lumb Sr. Systems Engineer, Allinea Software Inc. ilumb@allinea.com GTC 2013, San Jose, March 20, 2013 Embracing GPUs GPUs a rival to traditional processors

More information

Smashing Node.JS: JavaScript Everywhere

Smashing Node.JS: JavaScript Everywhere Smashing Node.JS: JavaScript Everywhere Rauch, Guillermo ISBN-13: 9781119962595 Table of Contents PART I: GETTING STARTED: SETUP AND CONCEPTS 5 Chapter 1: The Setup 7 Installing on Windows 8 Installing

More information

Managing IoT and Time Series Data with Amazon ElastiCache for Redis

Managing IoT and Time Series Data with Amazon ElastiCache for Redis Managing IoT and Time Series Data with ElastiCache for Redis Darin Briskman, ElastiCache Developer Outreach Michael Labib, Specialist Solutions Architect 2016, Web Services, Inc. or its Affiliates. All

More information

Intel Thread Building Blocks, Part II

Intel Thread Building Blocks, Part II Intel Thread Building Blocks, Part II SPD course 2013-14 Massimo Coppola 25/03, 16/05/2014 1 TBB Recap Portable environment Based on C++11 standard compilers Extensive use of templates No vectorization

More information

Configuring Embedded Event Manager

Configuring Embedded Event Manager CHAPTER 34 Unless otherwise noted, the term switch refers to a standalone switch or a switch stack. For complete syntax and usage information for the commands used in this chapter, see the Catalyst 3750

More information

Stateless Network Functions:

Stateless Network Functions: Stateless Network Functions: Breaking the Tight Coupling of State and Processing Murad Kablan, Azzam Alsudais, Eric Keller, Franck Le University of Colorado IBM Networks Need Network Functions Firewall

More information

Hybrid MPI/OpenMP parallelization. Recall: MPI uses processes for parallelism. Each process has its own, separate address space.

Hybrid MPI/OpenMP parallelization. Recall: MPI uses processes for parallelism. Each process has its own, separate address space. Hybrid MPI/OpenMP parallelization Recall: MPI uses processes for parallelism. Each process has its own, separate address space. Thread parallelism (such as OpenMP or Pthreads) can provide additional parallelism

More information

ADVANCED DATABASES CIS 6930 Dr. Markus Schneider. Group 5 Ajantha Ramineni, Sahil Tiwari, Rishabh Jain, Shivang Gupta

ADVANCED DATABASES CIS 6930 Dr. Markus Schneider. Group 5 Ajantha Ramineni, Sahil Tiwari, Rishabh Jain, Shivang Gupta ADVANCED DATABASES CIS 6930 Dr. Markus Schneider Group 5 Ajantha Ramineni, Sahil Tiwari, Rishabh Jain, Shivang Gupta WHAT IS ELASTIC SEARCH? Elastic Search Elasticsearch is a search engine based on Lucene.

More information

CS 326: Operating Systems. Process Execution. Lecture 5

CS 326: Operating Systems. Process Execution. Lecture 5 CS 326: Operating Systems Process Execution Lecture 5 Today s Schedule Process Creation Threads Limited Direct Execution Basic Scheduling 2/5/18 CS 326: Operating Systems 2 Today s Schedule Process Creation

More information

Chilkat: crawling. Marlon Dias Information Retrieval DCC/UFMG

Chilkat: crawling. Marlon Dias Information Retrieval DCC/UFMG Chilkat: crawling Marlon Dias msdias@dcc.ufmg.br Information Retrieval DCC/UFMG - 2017 Introduction Page collector (create collections) Navigate through links Unpleasant for some Caution: Bandwidth Scalability

More information