Τα solid state drives (SSDs) βασιζόμενα στην τεχνολογία flash παρουσιάζουν δυνατότητες
επίλυσης των σημείων συμφόρησης της Εισόδου / Έξοδου (Ε/Ε) , προσφέροντας ανώτερη απόδοση
σε σχέση με τους σκληρούς δίσκους για διάφορες εφαρμογές. Για το λόγο αυτό, τα τελευταία
χρόνια παρατηρείται σημαντική προσπάθεια για την ενσωμάτωση των SSD στην στοίβα Ε/Ε των
σύγχρονων συστημάτων αποθήκευσης, με την χρήση των SSD ως κρυφές μνήμες των HDD. Ωστόσο,
οι προτεινόμενες λύσεις στοχεύουν συνήθως συγκεκριμένες εφαρμογές.
Στην εργασία αυτή σχεδιάζουμε το σύστημα Azor, μια Ε/Ε κρυφή μνήμη βασιζόμενη σε SSD που
λειτουργεί στο μπλοκ επιπέδο του λειτουργικού και είναι διαφανής στις υπάρχουσες
εφαρμογές, όπως οι βάσεις δεδομένων. Η σχεδίαση μας παρέχει διάφορες επιλογές για τον
τρόπο συσχέτισης, τις πολιτικές εγγραφής και το πλάτος των γραμμών της κρυφής μνήμης,
ενώ παράλληλα στοχεύουμε στην διατήρηση ενός υψηλού βαθμού ταυτοχρονισμού της Ε/Ε. Η
κύρια συμβολή μας είναι ότι διευρευνούμε το πώς μπορούν να διαφοροποιηθούν τα μπλοκ του
σκληρού δίσκουσύμφωνα με την αναμενόμενη σημασία τους για την απόδοση του συστήματος.
Σχεδιάζουμε και αναλύουμε ένα σύστημα επιλογής μπλοκ σε δύο επίπεδα που διαφοροποιεί
δυναμικά HDDμπλοκ, και επιλεκτικά τα τοποθετεί
στον περιορισμένοχώρο της SSD cache.
Υλοποιούμε το σύστημα Azor στον πυρήνα του Linux και αξιολογούμε την αποτελεσματικότητά
του πειραματικά χρησιμοποιώντας ρεαλιστικές εφαρμογές και μεγάλα μεγέθη δεδομένων.
Χρησιμοποιούμε μια πλατφόρμα τύπου διακομιστή και τέσσερις εφαρμογές, έντονες σε Ε/Ε:
TPC-H, SPECsfs2008, PostMark, και Hammerora. Τα αποτελέσματά μας δείχνουν ότι καθώς
αυξάνεται το μέγεθος
της SSD cache, το σύστημα μας μπορεί να ενισχύσει την απόδοση της Ε/Ε μέχρι και κατά
14,02 Χ, 1,63 Χ, 1,72 Χ και 55%για κάθε εφαρμογή, αντίστοιχα. Επιπλέον, το σύστημα
επιλογής δύο επιπέδωνμπορεί να ενισχύσει περαιτέρω την απόδοση της Ε/Ε σε σύγκριση με μια
τυπική SSD cache έως και σε 95%, 16%, 28% και 34% για κάθε εφαρμογή, αντίστοιχα. Τα δύο
επιπέδα του συστήματος επιλογής μπλοκ δεν οφελούν όλες τις εφαρμογές. Όμως, ποτέ δεν
βλάπτουν την απόδοση όταν χρησιμοποιούνται από κοινού ή χωριστά.
(EL)
Flash-based solid state drives (SSDs) exhibit potential for solving I/O bottlenecks by
offering superior performance over hard disks for several workloads. For
this reason, there is recently significant work towards integrating SSD caching in the
I/O stack of modern storage systems. However, the proposed solutions
are usually application specific.
In this work we design Azor , an SSD-based I/O cache that operates at the block-level and
is transparent to existing applications, such as databases. Our
design provides various choices for associativity, write policies and cache line size,
while targeting on maintaining a high degree of I/O concurrency. Our
main contribution is that we explore how Azor can differentiate HDD blocks according to
their expected importance on system performance. We design and
analyze a two-level block selection scheme which dynamically differentiates HDD blocks,
and selectively places them in the limited space of the SSD cache.
We implement Azor in the Linux kernel and evaluate its effectiveness experimentally
using realistic workloads and large problem sizes. We use a server-type
platform and four I/O intensive workloads: TPC-H, SPECsfs2008, PostMark, and Hammerora.
Our results show that as the cache size increases, our SSD-cache
can enhance I/O performance by up to 14.02×, 1.63×, 1.72× and 55% for each workload
respectively. In addition, our two-level block selection scheme
can further enhance I/O performance compared to a typical SSD cache by up to 95%, 16%,
28%, and 34% for each workload, respectively. Not both levels of
our two-level block selection scheme benefit all workloads. However, they never degrade
performance, when used together or in isolation.
(EN)