In this section, we will describe the most important operations, policies and algorithm used in the final prototype. We will start describing the data structures used and then, the four main operations will be explained with some detail. We have to keep in mind that only the main ideas are described and that technical issues such as locking or very infrequent situations are not presented in the paper.
Regarding some implementation details, the prototype has been built in the Linux operating system (kernel version 2.0.34) . The compression algorithm chosen has been lzo  which is based on the Ziv-Lempel data compressor . This algorithm was chosen as it obtained a good ratio between speed and compression. On one hand, it achieved compression ratios better than 50% in most of the experiments (Table 1). On the other hand, the average time needed to compress a 4Kbyte page is about 300 microseconds while the one needed to decompress a buffer is only about 50 microseconds .