The document discusses HTTP caching and the use of Redis as a caching solution. It provides an overview of HTTP caching concepts like freshness, validation, and caching best practices from RFC 7234. It then demonstrates how Redis can be used as a local, remote, or distributed cache with data structures like key-value, lists, hashes, sets and pub-sub capabilities. Code examples are provided for storing, retrieving, and synchronizing cached data with Redis.
OpenNebula is a great cloud orchestration and management tool, characterised by its flexibility, durability and focused feature matrix. A feature matrix that is driven largely by real world problem scenarios and real world feedback : something that has been the focus of CentOS project as well. From large scale deployment automation to patch management and state control, the CentOS Project aims to solve real world problems faced by the people who run infrastructure : The Sysadmins administrators and operations teams.
During this talk, I will share why OpenNebula and CentOS Linux are a perfect match and go into some user stories that demonstrate this relationships success in real world scenarios.
Redis in a Multi Tenant Environment–High Availability, Monitoring & Much More! Redis Labs
Running any
application in a multi-tenant environment poses its challenges. This talk is focused around how we at Rackspace run Redis
in a multi-tenant environment, ensuring security, performance, fault tolerance and high availability. This talk will cover: an
architecture deep dive of multi tenant Redis on the cloud, management of sentinels, monitoring and operations of a large
scale Redis deployment,introducing new Redis versions,scaling, security, some lessons learnt. The target audience for this
talk is anyone who is interested in the deployment/operational aspect of running Redis. This is relevant not only for those
who want to run Redis themselves, but also interested in how a Redis provider might be doing it for them.
Robust Applications in Mesos using External StorageDavid vonThenen
Containers are starting to reach the masses and people are using them in ways other than what was originally intended. We now find persistent applications like SQL and NoSQL databases being run in container schedulers like Mesos, but how do we guarantee data availability for production applications in the wake of compute node failures? There are options for using direct attached or external storage, but the devil is in the details, as choices in storage types have significant repercussions.
We will discuss the benefits and challenges of using direct attached or external storage and how that impacts applications running in production environments. The trade-offs of each decision have interesting consequences starting from initial deployment to "day 2" operations and even how these applications tolerate system failures.
Sage Weil, Ceph Principal Architect at Red Hat discusses open source versus open standards and why open source software will be the key driver in the next revolution of storage.
OpenNebula is a great cloud orchestration and management tool, characterised by its flexibility, durability and focused feature matrix. A feature matrix that is driven largely by real world problem scenarios and real world feedback : something that has been the focus of CentOS project as well. From large scale deployment automation to patch management and state control, the CentOS Project aims to solve real world problems faced by the people who run infrastructure : The Sysadmins administrators and operations teams.
During this talk, I will share why OpenNebula and CentOS Linux are a perfect match and go into some user stories that demonstrate this relationships success in real world scenarios.
Redis in a Multi Tenant Environment–High Availability, Monitoring & Much More! Redis Labs
Running any
application in a multi-tenant environment poses its challenges. This talk is focused around how we at Rackspace run Redis
in a multi-tenant environment, ensuring security, performance, fault tolerance and high availability. This talk will cover: an
architecture deep dive of multi tenant Redis on the cloud, management of sentinels, monitoring and operations of a large
scale Redis deployment,introducing new Redis versions,scaling, security, some lessons learnt. The target audience for this
talk is anyone who is interested in the deployment/operational aspect of running Redis. This is relevant not only for those
who want to run Redis themselves, but also interested in how a Redis provider might be doing it for them.
Robust Applications in Mesos using External StorageDavid vonThenen
Containers are starting to reach the masses and people are using them in ways other than what was originally intended. We now find persistent applications like SQL and NoSQL databases being run in container schedulers like Mesos, but how do we guarantee data availability for production applications in the wake of compute node failures? There are options for using direct attached or external storage, but the devil is in the details, as choices in storage types have significant repercussions.
We will discuss the benefits and challenges of using direct attached or external storage and how that impacts applications running in production environments. The trade-offs of each decision have interesting consequences starting from initial deployment to "day 2" operations and even how these applications tolerate system failures.
Sage Weil, Ceph Principal Architect at Red Hat discusses open source versus open standards and why open source software will be the key driver in the next revolution of storage.
Configuration Management vs. Container Automationinovex GmbH
Config Management Camp, Gent, Feb. 2016
Speaker: Johannes M. Scheuermann, Arnold Bechtoldt
Since the hype around containers is still going on, many people are planning to move their applications into containers. You can earn lots of benefits when making this decision. But similar to other hypes you will notice that you will face many challenges that need to be handled. In this session we want to share some of our lessons learned in both of these worlds. We want to discuss when to choose cfg mgmt and when to choose containerized solutions. Also we will show some use cases were you can use a combination of both strategies.
About Arnold Bechtoldt and Johannes Scheuermann:
Arnold and Johannes are working for inovex in Germany. Arnold has a strong background in configuration management and Johannes is working with container technologies for years. Both like to try and discuss different (and new) approaches to solve today's infrastructure challenges. Due to this strong interaction they decided to make a talk about the up- and downsides of both worlds. Twitter: @johscheuer
https://www.inovex.de/de/content-pool/vortraege/
Redis is an advanced in memory key-value store designed for a world where "Memory is the new disk and disk is the new tape". Redis has some unique properties -- like blazing read and write speed, rich atomic operations and asynchronous persistence -- which make it ideally suited for a number of situations.
The tutorial includes an introduction to redis, data types used for redis, performance related to redis, sweet spots of redis, design consideration/best practices, adopters of redis. Begins with a section giving an introduction to redis which includes an introduction to redis and the features of redis. It also includes a brief history of redis, characteristics of redis, language support of redis. Following is a data types section. It includes the data types of redis like strings, lists, hashes, sets, sorted sets. It also includes not thinking of redis as an RDBMS, installation, atomicity of commands, key expiration.
Moreover, it also includes operations on lists, sets, sorted sets, hashes, keys, redis administration command. Alongside there is a section about performance of redis which includes the performance given by redis like hardware, payload size, batch size. It also includes benchmarks attained by redis, a demo version of redis, data durability and advantages of persistence. Then comes a section about sweet spots of redis. It includes sweet spots like cache server, tag cloud, auto completion, activity feeds and many more sweet spots. It also includes case studies as a video marketing platform, content publishing app etc.
A neighbouring section to this is about best practices which includes the design considerations and best practices of redis like avoid excessive long keys, have human readable keys, all data must fit in memory, polygot persistence is a smart choice and many more practices and design considerations. The last section of this tutorial includes some adopters of redis like stack overflow, craiglist, github, Instagram, blizzard entertainment.
Hadoop Meetup Jan 2019 - Mounting Remote Stores in HDFSErik Krogen
Virajith Jalaparti and Ashvin Agrawal of Microsoft present regarding their work to support mounting remote stores in HDFS. They show how HDFS can be used as a caching proxy to access remote stores such as ADLS and S3, enabling clients to be unaware of the location of their data, and increasing efficiency in the process.
This is taken from the Apache Hadoop Contributors Meetup on January 30, hosted by LinkedIn in Mountain View.
BBC Research & Development are in the process of deploying a department wide virtualization solution, catering for use cases including web development, machine learning, transcoding, media ingress and system testing. This talk discusses the implementation of a high performance Ceph storage backend and the challenges of virtualization in a broadcast research and development environment.
Hadoop Meetup Jan 2019 - Hadoop EncryptionErik Krogen
A presentation by Wei-Chiu Chuang of Cloudera regarding the state of Hadoop encryption, with a particular eye towards the Key Management Service (KMS).
This is taken from the Apache Hadoop Contributors Meetup on January 30, hosted by LinkedIn in Mountain View.
Brent Compton and Kyle Bader of Red Hat took the stage at Red Hat Storage Day New York on 1/19/16 to share with attendees best practices and lessons learned for architecting solutions with Red Hat Ceph Storage.
Ceph is a open source , software defined storage excellent and the only ( i would say ) storage backend as a cloud storage. Ceph is the Future of Storage. In this presentation i am explaining ceph and openstack briefly , you would definitely enjoy it.
In this talk, we'll cover all the great built-in rails caching options and best practices for getting the most out of these. Then we'll talk about dynamic content, why it's traditionally not cached, and how you can can cache it using this thing called "edge caching".
Welcome to the future, where you can cache the uncacheable.
Configuration Management vs. Container Automationinovex GmbH
Config Management Camp, Gent, Feb. 2016
Speaker: Johannes M. Scheuermann, Arnold Bechtoldt
Since the hype around containers is still going on, many people are planning to move their applications into containers. You can earn lots of benefits when making this decision. But similar to other hypes you will notice that you will face many challenges that need to be handled. In this session we want to share some of our lessons learned in both of these worlds. We want to discuss when to choose cfg mgmt and when to choose containerized solutions. Also we will show some use cases were you can use a combination of both strategies.
About Arnold Bechtoldt and Johannes Scheuermann:
Arnold and Johannes are working for inovex in Germany. Arnold has a strong background in configuration management and Johannes is working with container technologies for years. Both like to try and discuss different (and new) approaches to solve today's infrastructure challenges. Due to this strong interaction they decided to make a talk about the up- and downsides of both worlds. Twitter: @johscheuer
https://www.inovex.de/de/content-pool/vortraege/
Redis is an advanced in memory key-value store designed for a world where "Memory is the new disk and disk is the new tape". Redis has some unique properties -- like blazing read and write speed, rich atomic operations and asynchronous persistence -- which make it ideally suited for a number of situations.
The tutorial includes an introduction to redis, data types used for redis, performance related to redis, sweet spots of redis, design consideration/best practices, adopters of redis. Begins with a section giving an introduction to redis which includes an introduction to redis and the features of redis. It also includes a brief history of redis, characteristics of redis, language support of redis. Following is a data types section. It includes the data types of redis like strings, lists, hashes, sets, sorted sets. It also includes not thinking of redis as an RDBMS, installation, atomicity of commands, key expiration.
Moreover, it also includes operations on lists, sets, sorted sets, hashes, keys, redis administration command. Alongside there is a section about performance of redis which includes the performance given by redis like hardware, payload size, batch size. It also includes benchmarks attained by redis, a demo version of redis, data durability and advantages of persistence. Then comes a section about sweet spots of redis. It includes sweet spots like cache server, tag cloud, auto completion, activity feeds and many more sweet spots. It also includes case studies as a video marketing platform, content publishing app etc.
A neighbouring section to this is about best practices which includes the design considerations and best practices of redis like avoid excessive long keys, have human readable keys, all data must fit in memory, polygot persistence is a smart choice and many more practices and design considerations. The last section of this tutorial includes some adopters of redis like stack overflow, craiglist, github, Instagram, blizzard entertainment.
Hadoop Meetup Jan 2019 - Mounting Remote Stores in HDFSErik Krogen
Virajith Jalaparti and Ashvin Agrawal of Microsoft present regarding their work to support mounting remote stores in HDFS. They show how HDFS can be used as a caching proxy to access remote stores such as ADLS and S3, enabling clients to be unaware of the location of their data, and increasing efficiency in the process.
This is taken from the Apache Hadoop Contributors Meetup on January 30, hosted by LinkedIn in Mountain View.
BBC Research & Development are in the process of deploying a department wide virtualization solution, catering for use cases including web development, machine learning, transcoding, media ingress and system testing. This talk discusses the implementation of a high performance Ceph storage backend and the challenges of virtualization in a broadcast research and development environment.
Hadoop Meetup Jan 2019 - Hadoop EncryptionErik Krogen
A presentation by Wei-Chiu Chuang of Cloudera regarding the state of Hadoop encryption, with a particular eye towards the Key Management Service (KMS).
This is taken from the Apache Hadoop Contributors Meetup on January 30, hosted by LinkedIn in Mountain View.
Brent Compton and Kyle Bader of Red Hat took the stage at Red Hat Storage Day New York on 1/19/16 to share with attendees best practices and lessons learned for architecting solutions with Red Hat Ceph Storage.
Ceph is a open source , software defined storage excellent and the only ( i would say ) storage backend as a cloud storage. Ceph is the Future of Storage. In this presentation i am explaining ceph and openstack briefly , you would definitely enjoy it.
In this talk, we'll cover all the great built-in rails caching options and best practices for getting the most out of these. Then we'll talk about dynamic content, why it's traditionally not cached, and how you can can cache it using this thing called "edge caching".
Welcome to the future, where you can cache the uncacheable.
Phil Pursglove: Velocity, the Need for Speed - epicenter 2010IrishDev.com
The Irish Software Show, ( http://epicenter.ie ) Phil Pursglove: Velocity, the Need for Speed
Velocity is Microsoft's new distributed caching framework.
In this session we'll look at why you might want a distributed cache, how to configure your applications (and servers!) to use it, and how to manage it when it goes live.
We'll also explore some of the other features of Velocity, including concurrency and locking, tagging, building a highly-available cache, and how to integrate Velocity into ASP.NET's output caching mechanism.
http://epicenter.ie/2010.html?zone_id=20&mode=agenda&session=165#session
When it comes to caching, there are two types of web developers - those with phat stacks of cache money and those suffering from cache anxiety. Caching is particularly handy when scaling Rails apps, however we often avoid putting in effort because it can quickly get complicated without effective strategies. Rails provides a host of built-in caching interfaces that are easy to leverage and extend. I’ll talk about how to do this and combine rails with technologies like CDNs and HTTP accelerators like Varnish so that you can more effectively cache everything, everywhere without fear of serving stale content.
Michael May is an API Engineer at Fastly and a former Austinite, now hailing from San Francisco. While in Texas he studied at UT Austin and co-founded CDN Sumo, which was acquired by Fastly. He’s waiting for the day when FaaS (Franklin BBQ as a Service) becomes a thing and dreams about fast websites.
Solr 4.0 dramatically improves scalability, performance, and flexibility. An overhauled Lucene underneath sports near real-time (NRT) capabilities allowing indexed documents to be rapidly visible and searchable. Lucene’s improvements also include pluggable scoring, much faster fuzzy and wildcard querying, and vastly improved memory usage. These Lucene improvements automatically make Solr much better, and Solr magnifies these advances with “SolrCloud.” SolrCloud enables highly available and fault tolerant clusters for large scale distributed indexing and searching. There are many other changes that will be surveyed as well. This talk will cover these improvements in detail, comparing and contrasting to previous versions of Solr.
[Hanoi-August 13] Tech Talk on Caching SolutionsITviec
ITviec Tech Talk
Hanoi, 24 August 2013
Topic: Caching Solutions
Speaker: Mr. Hoang Tran from Niteco
For full report of the talk: http://blog.itviec.com/2013/08/caching-solutions-response-time-niteco/
Adjusting primitives for graph : SHORT REPORT / NOTESSubhajit Sahu
Graph algorithms, like PageRank Compressed Sparse Row (CSR) is an adjacency-list based graph representation that is
Multiply with different modes (map)
1. Performance of sequential execution based vs OpenMP based vector multiply.
2. Comparing various launch configs for CUDA based vector multiply.
Sum with different storage types (reduce)
1. Performance of vector element sum using float vs bfloat16 as the storage type.
Sum with different modes (reduce)
1. Performance of sequential execution based vs OpenMP based vector element sum.
2. Performance of memcpy vs in-place based CUDA based vector element sum.
3. Comparing various launch configs for CUDA based vector element sum (memcpy).
4. Comparing various launch configs for CUDA based vector element sum (in-place).
Sum with in-place strategies of CUDA mode (reduce)
1. Comparing various launch configs for CUDA based vector element sum (in-place).
Quantitative Data AnalysisReliability Analysis (Cronbach Alpha) Common Method...2023240532
Quantitative data Analysis
Overview
Reliability Analysis (Cronbach Alpha)
Common Method Bias (Harman Single Factor Test)
Frequency Analysis (Demographic)
Descriptive Analysis
Explore our comprehensive data analysis project presentation on predicting product ad campaign performance. Learn how data-driven insights can optimize your marketing strategies and enhance campaign effectiveness. Perfect for professionals and students looking to understand the power of data analysis in advertising. for more details visit: https://bostoninstituteofanalytics.org/data-science-and-artificial-intelligence/
5. RFC 7234 - HTTP/1.1 Caching
A stored response can be considered fresh
if the response can be reused without validation
6. RFC 7234 - HTTP/1.1 Caching
Although caching is an entirely OPTIONAL feature of HTTP, it can be
assumed that reusing a cached response is desirable and that such
reuse is the default behavior when no requirement or local
configuration prevents it. Therefore, HTTP cache requirements are
focused on preventing a cache from either storing a non-reusable
response or reusing a stored response inappropriately, rather than
mandating that caches always store and reuse particular responses.
7. RFC 7234 - HTTP/1.1 Caching
Freshness
• s-max-age
• max age
• expires
• heuristics
8. RFC 7234 - HTTP/1.1 Caching
Freshness
• s-max-age
• max age
• expires
• heuristics
Last modified Last requested Now
Tid
17. Redis
• http://redis.io
• Key value store + data structures
• By Salvatore Sanfilippo / @antirez
• Ansi C
• Single threaded
• Lua in server
• Microsoft research port to windows – nuget redis-64
• On Azure, AWS og Google cloud.
26. Other datastructures in Redis
Search for «An introduction to data types and abstractions»
• Key/Value
• Lists
• Hashsets
• Set
• Sorted set
• Hyperloglog
• Geospatial
Black Friday.
Skatteetaten.
Valg
Før vi fortsetter – det er mange patterns, og mye å tenke på for å skalere. Cache er bare ett av dem.
Når man snakker om cache så er det mange som tenker på CDN. Idag skal, vi la CDN være CDN, og gå utifra at vi hoster bilder og annet statisk innhold hos en CDN, så kan vi se på cache rundt de delene av tjenesten som leverer data.
Hvis vi ser på veien fra en klient til et api så er det overordnet 3 cache lag, http cache – gjerne client side, en eller annen output cache som står rett på tjenesten men etter at data er sendt, også har vi application cache. For de som synes CPU cache er spennende, så må jeg skuffe dere. Jeg har lyst til å snakke om HTTP cache pga. etags og last modified header. Har vi orden på dette og en god applikasjonscache kommer vi usedvanlig langt.
Målet med HTTP cache er å merkbart forbedre ytelsen ved å gjenbruke svar fra en tidligere forespørsel. Samtidig er det viktig at man opprettholder semantikken i protokollen, med GET/PUT/DELETE etc.
Caching er valgfritt, men man kan gå utifra at gjenbruk av et tidligere svar er vanlig oppførsel.
Dette betyr at det er to ting som er viktig for å kunne avgjøre om en lagret respons kan brukes, det er om den er kan betraktes som gyldig, eller om den må valideres.
Når vi vet at caching kan sees på som standard, og at gyldighet og validering er de viktige tingene, så er er det verdt å legge merke til at RFC 7234 ikke er skrevet som kriterier som skal til for at man skal kunne cache, men hva som skal til for å hindre lagring av responser som ikke kan gjenbrukes, eller gjenbruke en respons på feil grunnlag.
Bruk tid på å la de lese. Time selv. Drikk vann.
Så, specen sier ingen ting om at man alltid skal lagre xyz, det er hva vi ikke skal lagre og hva vi ikke kan gjenbruke.
Når vi vet at caching kan sees på som standard, og at gyldighet og validering er de viktige tingene, så er er det verdt å legge merke til at
Freshness
Når en respons er gyldig, så behøver vi ikke snakke med remote server. Den kan leveres direkte fra cache. Dette er selvfølgelig det mest effektive og det vi ønsker. For at at side skal kunne ansees som fresh vurderes s-max-age, max-age og expires før man evt. prøver å beregne om cache er fresh.
We use the time between last requested at and last modified at to estimate how frequently a document is edited. If a page was modified 5 minutes before the request, it’s assumed to be frequently modified. If it was last modified 5 years before the request, it’s assumed to be infrequently modified.
A page is fresh for 10% of that duration: 10% of 5 minutes is 30 seconds; 10% of 5 years is 6 months. A page is considered fresh until that 10% has elapsed since the document was last requested.
An example.
100 I mellom last modified og last requested. Ni dager etter ber vi om nytt. Fresh. Levert fra cache. 11 dager etter. Fører til validation request til server .
Validering skjer ved bruk av headere som gjør at man kan få en 304 respons fra server.
I tillegg kan validering gjøres ved put og delete, slik at operasjoner kun utføres hvis server state ikke har endret seg i mellomtiden.
To headers – last modified – sum av flere deler – og da den som er sist endret. Utfordringen med last modified er at den ikke har høyere oppløsning enn sekund, og derfor i utgangspunktet er å betrakte som en svak validator.
Når det gjelder etag er de å anse som sterke, men hvis den ikke er det så MÅ serveren markere den som weak. F.eks hvis man bruker en hashing algoritme som ikke garanterer uniqueness.
En server bør sende både etag og last modified.
En klient skal sende entity-tag med i validerings request. (med passende if-match eller if-none-match)
Bør sende med last modified og if-modified-since
If-none-match, må bruke svak godkjenning, brukes hovedsaklig med get requests. Hvis det er en som passer skal server svare med 304 for get eller head. 412 for alle andre metoder.
Kan også brukes ved put for å sikre at server ikke har en eksisterende representasjon. Race condition/lost update.
If-modified-since
Skal ignoreres hvis det er en If-None-Match header med requesten. Klienten bør gjenbruke last-modified fra cachet respons for å få riktig dato (husk å droppe millisekunder på server siden). Hvis server har en dato som er før eller lik last-modified så skal den svare med 304.
-------
If-match – etag – pre-condition. Hvis server ikke har denne, 412. Hvis det er state change og resultatet av operasjonen alt er gjort så kan den levere 2XX. Kan ignoreres av cache da den ikke gjelder lagret respons.
If-unmodified-since brukes også til å sikre state change på riktig grunnlag.
------
Enkelt og greit, i minne, i context. Kan være så enkelt som et static dictionary. Men kjekt med minnebegrensning, ttl og eviction.
Mutability
Cache aside pattern. – consistency, priming, eviction.
Demo – god tid. Vis interfaces, vis kode.
Bruk god tid. Gå igjennom interfaces, forklar hva vi egentlig ser.
Netling
Hvorfor remote cache? Skalering, lastbalansering. Synkronisering. Kalle instanser.
Hva skjer når man går over til en remote cache?
Vi får 2 problemer - IO og serialisering
Husk, minne er lynkjapt.
Er også i clustret versjon med master.
Finnes mange løsninger på dette utover redis cluster, twemproxy, monaco, master slave.
Sikkerhet, i utgangspunktet vid åpen. Støtter ssl + auth key.
En connection til server. Pipelining
Demo Redis – install, run, client, monitor, info
Demo prosjekt. Vis kode. Serialisering og implementasjon
Single instance
Husk å lukke monitor
Demo prosjekt many
Implementasjon
Demo
Krever kontroll på data. Nok en grunn til at database som integrasjonspunkt mellom applikasjoner er en sikkelig dårlig idé.
Etags – last modified!
Cache aside, hva skjer når det mangler i all cache og man får mange requests samtidig?
Implementasjon
Demo
Key/Value
String. Kan gjøre bit operasjoner og INRC DECR (api throtling)
Lists
Linked list. Kan brukes som kø/log
Hashset
Lagring av objekter. Kan lønne seg å bruke ett hashset med mange hashes (key) fremfor key/value pairs.
Sets
Kan gjøre union/intersect m.fl
SortedSet
Top Score, Sortering i tid,
Hyperloglogs
Telle forferdelig store ting med lite minne. Omtrentlig nøyakti
Geospatial
Key/Value
String. Kan gjøre bit operasjoner og INRC DECR (api throtling)
Lists
Linked list. Kan brukes som kø/log
Hashset
Lagring av objekter. Kan lønne seg å bruke ett hashset med mange hashes (key) fremfor key/value pairs.
Sets
Kan gjøre union/intersect m.fl
SortedSet
Top Score, Sortering i tid,
Hyperloglogs
Telle forferdelig store ting med lite minne. Omtrentlig nøyakti
Geospatial