7 research outputs found
Joint Transcoding Task Assignment and Association Control for Fog-assisted Crowdsourced Live Streaming
The rapid development of content delivery networks
and cloud computing has facilitated crowdsourced live-streaming
platforms (CLSP) that enable people to broadcast live videos
which can be watched online by a growing number of viewers.
However, in order to ensure reliable viewer experience, it is
important that the viewers should be provided with multiple
standard video versions. To achieve this, we propose a joint
fog-assisted transcoding and viewer association technique which
can outsource the transcoding load to a fog device pool and
determine the fog device with which each viewer will be
associated, to watch desired videos. The resulting non-convex
integer programming has been solved using a computationally
attractive complementary geometric programming (CGP). The
performance of the proposed algorithm closely matches that of
the globally optimum solution obtained by an exhaustive search.
Furthermore, the trace-driven simulations demonstrate that our
proposed algorithm is able to provide adaptive bit rate (ABR)
services
A multi-agent architecture applying trust and reputation over unknown partners for live video distributed transcoding in open environments
Dissertação (Mestrado em Informática) — Universidade de Brasília, Instituto de Ciências Exatas, Departamento de Ciência da Computação, Brasília, 2021.Projetistas de sistemas tem sido confrontados com aplicações e sistemas do mundo
real que são inerentemente distribuídas e abertas. Um sistema inerentemente aberto é
um no qual é impossível estabelecer controle global ou, também dizendo, aquele no qual
uma única entidade não é capaz de possuir uma descrição completa do estado do sistema.
Sistemas que atendem a essa descrição são complexos, e projetá-los é desafiante. Uma
forma de lidar com esses desafios é abordar o problema como o projeto de um sistema
multiagente. Um agente é um sistema computadorizado dotado de autonomia para agir
em nome de seu proprietário. Um sistema multiagente é uma sociedade de agentes que
interagem sob determinadas regras para alcançar metas comuns ou individuais. Um exemplo de problema complexo que poderia se beneficiar de uma abordagem multiagente é a
distribuição de vídeo através da Internet.
Uma das razões para o crescimento rápido do consumo de dados na Internet é a
crescente demanda por conteúdo em vídeo. Entre os provedores de streaming de vídeo
ao vivo, a técnica Streaming de Vídeo Adaptativo (Adaptive Bitrate Streaming - ABR)
se tornou o padrão de fato da indústria. ABR é uma forma conveniente de distribuir
vídeo pela Internet para muitos usuários simultaneamente. Para descrever a técnica ABR
brevemente, um streaming de vídeo é divido em segmentos que são transcodificados em
diferentes taxas de bits, assim os usuários podem se adaptar, consumindo a representação
que melhor se conforma com a sua largura de banda. Os recursos computacionais que a
transcodificação demanda não são negligenciáveis. De fato, a transcodificação de vídeo
representa custos relevantes para os provedores de vídeo ao vivo.
A bufferização empregada pelos players de vídeo compatíveis com a ABR é uma característica chave para determinar a previsibilidade das requisições de segmento de vídeo.
Experimentos indicam que a audiência de vídeos pela Internet prefere representações com
altas taxas de bits, sendo que constantes interrupções prejudicam a qualidade da experiência. Uma função de utilidade básica de uma sessão de vídeo pode ser definida como
a razão entre a taxa de bits média, contrabalançada pela suavidade da reprodução. Suavidade da reprodução é a razão entre o tempo gasto esperando o buffer de vídeo ser preenchido e o tempo total de exibição.
Em uma arquitetura baseada em nuvem, a periferia onde ficam os dispositivos dos
usuários finais é chamada de Borda (Edge) ou Neblina (Fog). Desta forma, tirar vantagem
desses recursos que estão geograficamente distribuídos é referenciado como Computação
na Neblina (Fog-Edge Computing - FEC). O ambiente da FEC é definido como um complemento da núvem que emprega dispositivos na borda da rede para melhorar a qualidade
de serviço através de um contínuo. Como um complemento da infraestrutura da Internet,
o FEC herda algumas de suas características. O FEC tem muitos recursos computacionais ociosos, que estariam, teoricamente, disponíveis para serem utilizados entregando
uma baixa latência. Usar esses dispositivos do FEC pode ser útil para a transcodificação
distribuída de vídeo ao vivo. No entanto, a colaboração com dispositivos desconhecidos
pode ser arriscada, pois não estão sob controle dos provedores ou dos usuários. Já que
alguns dos nós do FEC tem autonomia deliberativa visando melhorar seu desempenho,
nós podemos descrevê-los como agentes.
Uma sociedade composta de entidades autônomas, como um sistema multiagente,
leva a possibilidade de uma parte destas entidades serem egoístas. Em outras palavras, é
necessário saber em quem confiar. A aplicação de modelos de confiança e reputação é uma
característica chave quando queremos lidar com o risco de delegar tarefas em ambientes
abertos e semi-competitivos, tal como o FEC.
Para enfrentar a incerteza de colaborar com dispositivos no FEC, um agente racional
A, antes de delegar uma tarefa da qual seu bem-estar depende para um agente B, precisa
de alguma forma calcular a probabilidade de B completar a tarefa satisfatoriamente. Esta
probabilidade representa o quanto o agente A avalia que B é digno de confiança quanto
a tarefa em questão. De qualquer forma, um agente talvez não seja capaz de avaliar
a confiabilidade de uma contraparte se eles nunca se encontraram antes. Uma solução
recorrente para a falta de informação advinda de interação direta é perguntar a outros
sobre a opinião que eles têm de um possível parceiro. A ponderação da confiança que
uma comunidade deposita em um agente é chamada de reputação. Na literatura, há
vários modelos de interação entre agentes baseados em confiança e reputação (Trust and
Reputation Models - T&RM). Um dos aspectos que diferencia esses modelos são as fontes
de informação que eles podem utilizar como insumo. No entanto, todos eles consideram
a interação direta e/ou a opinião de testemunhas em seus cálculos.
Os algoritmos chamados de Multi-Armed Bandits (MAB) são aplicados quando um
agente precisa escolher entre alternativas incertas. Agentes não sabem a priori qual é a
distribuição de recompensas das escolhas postas à sua frente, mas têm certa confiança que
existem escolhas melhores que outras. Os algoritmos MAB possuem duas fases, a fase
de exploração e a fase de aproveitamento. Na fase de exploração são feitas escolhas para tentar estimar a distribuição de recompensas de cada uma das opções testadas. Depois
disso, o agente pode utilizar o conhecimento que adquiriu para escolher a melhor opção
dentre as que passou a conhecer na fase de aproveitamento. Ao passar para a fase de
aproveitamento, não queremos dizer que o agente sabe de forma incontestável qual é a
melhor opção, já que a distribuição de recompensas verdadeira é ainda desconhecida e
pode haver uma opção melhor dentre as que não foram escolhidas. Muitos algoritmos
implementam diferentes estratégias para balancear exploração e aproveitamento. Para
exemplificar, citamos e-Greedy, e-First, e-Decreasing e a família de algoritmos chamada
Limites de Confiança Elevados (Upper Confidence Bounds - UCB).
Foram selecionados alguns trabalhos prévios que abordaram o problema de habilitar
a transcodificação de vídeo ao vivo para dispositivos heterogêneos em ambientes distribuídos. Cada trabalho empregou um método específico, onde os autores validaram as
abordagens em cenários distintos dificultando a comparação de desempenho dos mesmos. Assim, as soluções propostas foram analisadas procurando brechas onde modelos
de confiança e reputação pudessem ser aplicados para trazer vantagens, tanto para os
provedores quanto para os usuários finais. Destaca-se que os trabalhos pesquisados na
literatura falham ao abordar ambientes abertos. No entanto, o problema da colaboração
com agentes potencialmente maliciosos é proeminente quando se pretende empregar os
dispositivos do usuário final. Seria interessante que as tarefas de transcodificação fossem
designadas aos nós de forma dinâmica de acordo com o desempenho observado a cada
turno de execução. Neste caso, o uso de uma métrica de confiança e reputação que represente uma avaliação geral da contribuição para a utilidade dos visualizadores, não apenas
incluindo a estabilidade do nó, mas a competência em desempenhar a tarefa designada
seria útil. Assim, uma proposta mais adequada ao problema poderia abordar três frentes:
definir uma arquitetura baseada em agentes autônomos, capacitar a arquitetura a selecionar os nós apropriados para fazer a transcodificação em ambiente aberto e, ainda, avaliar
a credibilidade de testemunhas evitando a influência de agentes não-confiáveis.
Como solução para o problema descrito, foram analisados os requisitos do sistema
multiagente com a metodologia Tropos. Tropos é uma metodologia de desenvolvimento de
software para programação orientada a agentes. Essa metodologia permite a representação
de estados mentais como metas e qualidades. O aspecto que mais diferencia a metodologia
Tropos de outras metodologias de desenvolvimento de software é a natureza centrada
em agentes. A metodologia Tropos guia o desenvolvimento de soluções orientadas a
agentes através de um conjunto de fases, pelas quais o desenvolvedor gradativamente vai
refinando a representação do sistema. Da análise com a metodologia Tropos surgiu a
proposta de uma arquitetura para transcodificação distribuída composto de agentes que
desempenham três papéis: o Corretor (Broker), o Proxy do visualizador (Viewer’s proxy) e o Transcodificador (Transcoder). O Proxy do visualizador é o papel para os agentes que
representam a audiência do stream de vídeo ao vivo. Esse papel é destinado aos agentes
que requerem ao Corretor a adaptação do stream em ABR e interage com ele para avaliar
o desempenho dos transcodificadores. O Transcodificador é o papel a ser desempenhado
pelos agentes interessados em receber tarefas de transcodificação e serem recompensados
por elas. A responsabilidade dos corretores é gerenciar a associação entre os proxies dos
visualizadores e os transcodificadores para o benefício de ambos.
Pensando sobre o trabalho que os corretores desempenham no modelo proposto, em
certo ponto eles irão formar um conjunto de transcodificadores dentre os quais alguns
são bem conhecidos, enquanto outros não terão sido testados. Então, corretores devem
balancear suas estratégias entre aproveitar os mais bem conhecidos ou explorar os desconhecidos para aprender sobre o desempenho deles. Aprender sobre os transcodificadores
disponíveis, nós queremos dizer que os corretores devem formar uma crença sobre o quão
bom transcodificador é um nó específico, com a ajuda da avaliação de um determinado
grupo de visualizadores. Esta crença externa (relação não reflexiva) é uma medida da
reputação do transcodificador na comunicade de visualizadores. Para o corretor, a reputação de uma transcodificador é representado por um par de valores: a confiabilidade do
transcodificador e uma medida da confiança que se tem no primeiro valor, a credibilidade
da confiança.
Para que o corretor tenha a capacidade de selecionar os nós de acordo com as regras
estabelecidas foi introduzido o algoritmo ReNoS - Reputation Node Selection. O algoritmo foi projetado para balancear exploração e aproveitamento de forma que o nó mais
confiável não seja sobrecarregado. Quando um novo transcodificador é registrado, recebe
uma avaliação de confiança acima do limiar de cooperação e um pouco abaixo da maior
avaliação possível, assim aumentando as chances de ser selecionado na próxima iteração.
Um problema detectado com o uso do ReNoS é que ele requer que o valor de confiança
inicial seja alto. Isto significa que, para usar o algoritmo, o agente que usa a confiança
deve acreditar que um nó novo e desconhecido é tão bom quanto um muito conhecido e
bem avaliado. De outra forma, a exploração não irá funcionar adequadamente. Esta política é semelhante a utilizada no algoritmo UCB1, onde as opções menos selecionadas até
o momento são aquelas com as maiores chances de serem selecionadas no próximo turno.
Para contornar esse problema, foi elaborada uma nova versão do algoritmo denominado
ReNoS-II. O ReNoS-II é baseado na ideia do algoritmo conhecido como Thompson Sampling. Quando um novo transcodificador se registra recebe um valor de reputação com
baixa confiança e credibilidade. Desta forma, a expectativa para a curva de desempenho
é achatada e larga, semelhante a uma distribuição uniforme. Mas a medida que o transcodificador é testado e mais conhecimento se acumula sobre ele a credibilidade cresce e a curva se estreita em torno do valor da confiança.
Para validação da arquitetura proposta foi realizado um experimento com o objetivo
de verificar se a abordagem trata adequadamente o problema da transcodificação distribuída com nós do FEC. Foi utilizado um protótipo implementado seguindo estritamente
as diretrizes da arquitetura, capaz de desempenhar as tarefas necessárias para distribuir a
transcodificação em tempo real. Validar o modelo proposto que combina MAB e T&RM
para selecionar nós no FEC envolve identificar as condições nas quais as características do
ambiente FEC poderiam prejudicar as garantias dos algoritmos MAB. Uma dessas condições é quando os agentes não são verdadeiros em seus relatórios. Já que transcodificadores
estão interessados em receber o maior número de tarefas de transcodificação possível, os
nós não-confiáveis podem formar uma coalisão com visualizadores para tentar manipular
as escolhas do corretor. Desta forma, o experimento inclui dois cenários distintos. No Cenário 01, o objetivo é obter uma linha base de comparação onde os agentes envolvidos não
recusam interações sendo sempre verdadeiros nas trocas de informação. No cenário 02, o
objetivo é observar o que acontece quando um transcodificador tenta manipular a transcodificação distribuída com ataques de relatórios falsos. Nesse experimento, a métrica
utilizada para comparação foi o valor da recompensa acumulada pelo corretor ao longo
de uma sessão de transcodificação. O experimento revelou que quando o algoritmo UCB1
foi empregado houve um decréscimo significativo do Cenário 01 para o Cenário 02. No
entanto, não foi observado o mesmo decréscimo quando os algoritmos empregados foram
ReNoS e ReNoS-II associados ao modelo FIRE. UCB1 e ReNoS produziram resultados
semelhantes em termos de recompensa acumulada. Por outro lado, os resultados obtidos
com o algoritmo ReNoS-II foram significativamente maiores do que os obtidos com UCB1
e ReNoS nos dois cenários, apesar da variância ter sido maior.
Pelos resultados dos experimentos realizados, conclui-se que o modelo proposto combinando MAB e T&RM para selecionar nós no FEC é promissor para aplicação no mundo
real. Os resultados experimentais do algoritmo ReNoS se apresenta tão performativo
quanto UCB1. O algoritmo ReNoS-II apresenta um desempenho melhor que o ReNos e
UCB1 nos dois cenários testados. Enfim, os experimentos mostraram que ponderando e
filtrando informação dos relatórios baseando-se na credibilidade das testemunhas é possível proteger o sistema de transcodificação distribuída no FEC de agentes não-confiáveis,
evitando danos causados pela formação de coalisões.Adaptive Bitrate Streaming (ABR) is a popular technique for providing video media over the Internet. In ABR, the streaming provider splits the video stream into small segments then transcodes them in many different bitrates. So, players can adapt to unstable network parameters minimizing interruptions on playback. However, the computational cost of transcoding a video in many formats can limit its application on live video streaming. Besides, the network overhead of transmitting simultaneously many versionsof the same content is a problem. Offloading the transcoding burden to the edge of the network, near the end-users, should alleviate the data traffic burden on the backbone while diluting the computational cost. Users and providers of live video could benefit from a joint scheme that allowed end-user devices to do the transcoding with tolerable latency and delay. We applied Tropos, the agent-oriented software development methodology, to analyze the described scenario and design a multi-agent architecture to deal with the problem of distributed transcoding on Fog-Edge Computing (FEC). The presented architecture consists of three well-defined roles. The transcoder role is intended for those agents on FEC interested in receiving transcoding tasks. The viewer proxy role should be performed by those software agents who will act for the sake of the viewers. The broker role is performed by the agents who will coordinate the tasks for the benefit of the other two. Since FEC is an open environment, distributing transcoding tasks over unknown partners is risky. One of the threats is the risk of untrustworthy partners trying to manipulate the broker by sending it fake information. Literature refers to this kind of manipulation as fake feedback attacks. In this master thesis, we propose combing reward evaluation functions that account for Quality of Service (QoS) with Trust and Reputation Models (TRM) and Multi-armed bandits algorithms (MAB). We present two algorithms, Reputation-based Node Selection (ReNoS) and ReNoS-II, designed to online select the best edge nodes to perform the transcoding tasks. We experimented with ReNoS, ReNoS-II, and the other three selecting algorithms in two scenarios to compare them regarding accumulated reward, exploration of available partners, and vulnerability to fake feedback attacks. The outcomes indicate that our proposal can afford rewards gain keeping good QoS as perceived by viewers, besides offering protection against fake feedback attacks delivered by untrustworthy transcoders and viewers. Our main contribution is a multi-agent architecture that combines the robustness of TRM and stochastic MAB algorithms to mitigate the risk of fake feedback attacks, which enabled the employment of unknown partners in open environments. This achievement is in the interest of distributed transcoding applications since it mitigates the risk of employing end-user devices
Security and blockchain convergence with internet of multimedia things : current trends, research challenges and future directions
The Internet of Multimedia Things (IoMT) orchestration enables the integration of systems, software, cloud, and smart sensors into a single platform. The IoMT deals with scalar as well as multimedia data. In these networks, sensor-embedded devices and their data face numerous challenges when it comes to security. In this paper, a comprehensive review of the existing literature for IoMT is presented in the context of security and blockchain. The latest literature on all three aspects of security, i.e., authentication, privacy, and trust is provided to explore the challenges experienced by multimedia data. The convergence of blockchain and IoMT along with multimedia-enabled blockchain platforms are discussed for emerging applications. To highlight the significance of this survey, large-scale commercial projects focused on security and blockchain for multimedia applications are reviewed. The shortcomings of these projects are explored and suggestions for further improvement are provided. Based on the aforementioned discussion, we present our own case study for healthcare industry: a theoretical framework having security and blockchain as key enablers. The case study reflects the importance of security and blockchain in multimedia applications of healthcare sector. Finally, we discuss the convergence of emerging technologies with security, blockchain and IoMT to visualize the future of tomorrow's applications. © 2020 Elsevier Lt
A comprehensive survey on Fog Computing: State-of-the-art and research challenges
Cloud computing with its three key facets (i.e.,
Infrastructure-as-a-Service, Platform-as-a-Service, and Softwareas-
a-Service) and its inherent advantages (e.g., elasticity and
scalability) still faces several challenges. The distance between
the cloud and the end devices might be an issue for latencysensitive
applications such as disaster management and content
delivery applications. Service level agreements (SLAs) may also
impose processing at locations where the cloud provider does not
have data centers. Fog computing is a novel paradigm to address
such issues. It enables provisioning resources and services outside
the cloud, at the edge of the network, closer to end devices, or
eventually, at locations stipulated by SLAs. Fog computing is not
a substitute for cloud computing but a powerful complement. It
enables processing at the edge while still offering the possibility
to interact with the cloud. This paper presents a comprehensive
survey on fog computing. It critically reviews the state of
the art in the light of a concise set of evaluation criteria. We
cover both the architectures and the algorithms that make fog
systems. Challenges and research directions are also introduced.
In addition, the lessons learned are reviewed and the prospects
are discussed in terms of the key role fog is likely to play in
emerging technologies such as tactile Internet
Recommended from our members
Multi-criteria decision support for energy-efficient IoT edge computing offloading
Computation offloading is one of the primary technological enablers of the Internet of Things (IoT), as it helps address individual devices’ resource restrictions (e.g. process- ing and memory). In the past, offloading would always utilise remote cloud infrastruc- tures, but the increasing size of IoT data traffic and the real-time response requirements of modern and future IoT applications have led to the adoption of the edge computing paradigm, where the data is processed at the edge of the network, closer to the IoT devices. The decision as to whether cloud or edge resources will be utilised is typically taken at the design stage, based on the type of the IoT device.
Yet, the conditions that determine the optimality of this decision, such as the arrival rate, nature and sizes of the tasks, and crucially the real-time conditions of the networks involved, keep changing. At the same time, the energy consumption of IoT devices is usually a key requirement, which is affected primarily by the time it takes to complete tasks, whether for the actual computation or for offloading them through the network.
This thesis presents a dynamic computation offloading mechanism, which improves the performance (i.e. in terms of response time) and energy consumption of IoT de- vices in a decentralised and autonomous manner. We initially propose the Multi-critEria DecIsion support meChanism for IoT offloading(MEDICI), which runs independently on an IoT device, enabling it to make offloading decisions dynamically, based on multiple criteria, such as the state of the IoT, edge or cloud devices and the conditions of the net- work connecting them. It provides mathematical models of the expected time and energy costs for the different options of offloading a task (i.e. to the edge or the cloud or the IoT device itself). To evaluate its effectiveness, we provide simulation results, by extending the EdgeCloudSim simulator, comparing it against previous families of approaches used in the literature. Our simulations on four different types of IoT applications show that allowing customisation and dynamic offloading decision support can improve drastically the response time of time-critical and small-size applications, such as IoT cyber intrusion detection, and the energy consumption not only of the individual IoT devices but also of the system as a whole.
Furthermore, we present an enhancement of our MEDICI mechanism, the ProbeLess Multi-critEria DecIsion support meChanism for IoT offloading (PL-MEDICI), which en- ables MEDICI to operate in real IoT environments without the need for probing or having pre-defined parameters in order to estimate or model the network conditions or the com- putation capabilities of the different devices involved. This is the first probeless dynamic and decentralised offloading decision support mechanism for IoT environments. The probeless property is achieved by combining lightweight statistical techniques with the concept of age of knowledge (AoK) to allow us to have accurate enough information to use for our estimations.
We provide experimental results performed in a real IoT testbed with three real IoT applications, showcasing that PL-MEDICI outperforms existing techniques in terms of both response time and energy consumption.
Finally, in order to further evaluate our PL-MEDICI mechanism, we formulate a mixed- integer linear program optimisation problem that provides the theoretical optimal cen- tralised solution to our problem. This is used to compare our PL-MEDICI against the theoretical optimum, given the same estimated input. Our results showed that our of- floading mechanism is close to the obtained optimal solution in terms of both the re- sponse time and energy consumptio
Modelo baseado em agentes com uso de confiança e reputação para seleção de supernós em fog computacional
Dissertação (mestrado)—Universidade de Brasília, Instituto de Ciências Exatas, Departamento de Ciência da Computação, 2018.O modelo de fog computacional coloca recursos de processamento e armazenamento mais
próximos aos dispositivos usuários, na fronteira da rede. Algumas abordagens podem ser
aplicadas para a implantação dos nós servidores que fornecem esses recursos. Um caminho
é utilizar equipamentos pré-selecionados que já estão instalados na rede, como switches,
roteadores e pontos de acesso wi-fi. Outra opção é implantar dispositivos específicos que
exerceriam esse papel, e uma terceira via seria a utilização de dispositivos dos próprios
usuários como nós servidores. Qualquer que seja a opção o problema de como selecionar
esses nós servidores se coloca como um ponto importante para a manutenção da qualidade
do serviço provido na fog computacional. Nesse contexto, esta dissertação apresenta um
modelo baseado em agentes para a seleção dos nós servidores na fog computacional. Esse
cenário complexo de relações entre diversos atores é propício para a utilização de agentes
inteligentes. Um modelo de confiança e reputação é utilizado pelos agentes para realizar
a seleção dos nós visando a manutenção da qualidade de serviço. O modelo proposto foi
testado em ambiente simulado utilizando o Peersim e posteriormente implementado com
base no framework JADE de maneira a permitir a avaliação da proposta. Os resultados
coletados foram analisados de modo a verificar a validade do modelo proposto em relação
à manutenção da qualidade de serviço no âmbito do modelo de fog computacional.The fog computaing model puts processing and storage resources closer to the end-user
devices at the network edge. Some approaches can be applied to deploy server nodes
that will act as providers for these resources. One way is to use pre-selected devices that
are already installed on the network, such as switches, routers and wi-fi access points.
Another option is to deploy specific devices that would play this role, and a third way
would be to use the users’ own devices as server nodes. Whatever the option, the problem
of selecting these server nodes is a key point for maintaining the quality of the service
provided on the fog. In this context, this Msc dissertation presents an agent-based model
for the selection of these nodes in computational fog. This complex scenario, with multiple
relations among different participants, can benefit from the use of intelligent agents. The
agents use a trust and reputation model to perform the selection of the nodes in order
to maintain the quality of service. The proposed model was implemented on the JADE
framework to allow evaluation of the proposal. The results were analyzed in order to
verify the validity of the proposed model and its contribution to the maintenance of
service quality within the fog model
Building Efficient Software to Support Content Delivery Services
Many content delivery services use key components such as web servers, databases, and key-value stores to serve content over the Internet. These services, and their component systems, face unique modern challenges. Services now operate at massive scale, serving large files to wide user-bases. Additionally, resource contention is more prevalent than ever due to large file sizes, cloud-hosted and collocated services, and the use of resource-intensive features like content encryption. Existing systems have difficulty adapting to these challenges while still performing efficiently. For instance, streaming video web servers work well with small data, but struggle to service large, concurrent requests from disk. Our goal is to demonstrate how software can be augmented or replaced to help improve the performance and efficiency of select components of content delivery services.
We first introduce Libception, a system designed to help improve disk throughput for web servers that process numerous concurrent disk requests for large content. By using serialization and aggressive prefetching, Libception improves the throughput of the Apache and nginx web servers by a factor of 2 on FreeBSD and 2.5 on Linux when serving HTTP streaming video content. Notably, this improvement is achieved without changing the source code of either web server. We additionally show that Libception's benefits translate into performance gains for other workloads, reducing the runtime of a microbenchmark using the diff utility by 50% (again without modifying the application's source code).
We next implement Nessie, a distributed, RDMA-based, in-memory key-value store. Nessie decouples data from indexing metadata, and its protocol only consumes CPU on servers that initiate operations. This design makes Nessie resilient against CPU interference, allows it to perform well with large data values, and conserves energy during periods of non-peak load. We find that Nessie doubles throughput versus other approaches when CPU contention is introduced, and has 70% higher throughput when managing large data in write-oriented workloads. It also provides 41% power savings (over idle power consumption) versus other approaches when system load is at 20% of peak throughput.
Finally, we develop RocketStreams, a framework which facilitates the dissemination of live streaming video. RocketStreams exposes an easy-to-use API to applications, obviating the need for services to manually implement complicated data management and networking code. RocketStreams' TCP-based dissemination compares favourably to an alternative solution, reducing CPU utilization on delivery nodes by 54% and increasing viewer throughput by 27% versus the Redis data store. Additionally, when RDMA-enabled hardware is available, RocketStreams provides RDMA-based dissemination which further increases overall performance, decreasing CPU utilization by 95% and increasing concurrent viewer throughput by 55% versus Redis