原创 緩存服務器設計與實現(四)
這裏我們聚焦一個問題,就是緩存滿的情況。一般的cache都會配置容量,無論是內存緩存還是磁盤緩存,都不能無節制的去使用他們。這裏以磁盤緩存爲例,如果配置的限額已用完,該如何處理呢? 對於nginx,如
原创 INT13中斷詳解
直接磁盤服務(Direct Disk Service——INT 13H) 00H —磁盤系統復位 01H —讀取磁盤系統狀態 02H —讀扇區 03H —寫扇區 04H —檢驗扇區 05H —格式化磁道 06H —格式化
原创 緩存服務器設計與實現(三)
這裏我們討論一個比較重要功能,在之前的文章中提到過,取源合併。爲什麼要單獨把它拿出來討論呢?其實主要是出於個人工作的角度。之前公司裏的cache需要這樣一個功能,現有的squid該功能不完善,並且也不太適合我們的業務。然後
原创 關於nginx中upstream機制的思考
網上搜過upstream相關分析的同學可能都已經有了大概的瞭解了,而且很多大牛分析的也很棒,我這裏爲什麼還要多說幾句呢?一來是總結自己的一些理解,二來是對前輩分析的一些補充,希望能帶給大家更多啓發。先給出阿里技術牛們的總結和分析,供大家參
原创 緩存服務器設計與實現(五)
上次講到lru與緩存重建,這次主要講一下關於過期處理的一些主要問題。在討論這個問題之前,有個相關的問題需要大家有所瞭解。就是對於一個緩存如期只來說,什麼東西應該緩存,什麼不應該緩存。這是一個比較複雜的問題,涉及到http協議的諸多細
原创 在小公司裏混
最近這段時間公司在招人,我也面試了不少應聘者,以30歲上下,工作5年左右的人居多。這個年齡段其實是中小公司的主要選擇對象,這類公司一般招人都是爲了項目需要或者急需熟手來幹活,而很少像大公司那樣,招一些有潛力,底子好,有上進新的應屆學生。
原创 關於ngx_epoll_add_event的一些解釋
static ngx_int_t ngx_epoll_add_event(ngx_event_t *ev, ngx_int_t event, ngx_uint_t flags) { int op;
原创 關於ngx_trylock_accept_mutex的一些解釋
關於nginx裏面accept互斥鎖的處理,羣裏討論了很多次,很多人都提出了各種問題,比如問到:在ngx_process_events_and_timers中,爲什麼在釋放ngx_accept_mutex之後,不把ngx_accept_m
原创 騰訊協程庫libco的原理分析
我們以example_echosvr.cpp爲例子,這個例子的作用就是讀取客戶端的請求,然後按原樣返回給客戶端。在它的main函數裏創建了proccnt進程,每個進程裏有cnt個task。這裏的proccnt和cnt都是來自運行參數。
原创 TCP協議疑難問題集錦
原文出自:http://blog.csdn.net/dog250/article/details/6612496 1.網絡協議設計 ISO提出了OSI分層網絡模型,這種分層模型是理論上的,TCP/IP最終實現了一個分層的協議模型,每
原创 緩存服務器設計與實現(番外篇)
這個系列又更新了。 今天談一個問題,目前cache軟件在業界的使用現狀。cache系統其實最大的使用場景,還是主要集中在CDN廠商裏。 大概在2010年之前,各大CDN廠商基本清一色的使用squid。那時候的squid是絕對的主力。 sq
原创 緩存服務器設計與實現(七)
本文講緩存中的內容管理–目錄的刪除 基本原理 目錄刷新,在很多地方也叫目錄刪除,這個功能是要求CDN的cache系統,刪除特定目錄下的所有文件(有些變態的需求,是讓刪除目錄下符合特定規則的文件)。這裏只是提供一些思路和簡單的實現方案,
原创 關於MP4視頻拖動的原理與分析(一)
本來想說說關於mp4和一些常見視頻文件格式方面的歷史。現在想想沒啥必要,畢竟本文是在講關於mp4點播拖動方面的技術細節。緒論,前言神馬的顯得有點多餘。 說起MP4,不得不提“Digital container format”的概念。維基百
原创 詭異的_GNU_SOURCE宏
好久沒更新博客了,突然來一篇,這...難道是乾貨?......在看正文之前請允許我先說幾句話,。好了看下面的內容: 詭異代碼之test.c: #include <aio.h> int main() { stru
原创 緩存服務器設計與實現(六)
本文講緩存中的內容管理–文件的刪除。 基本原理 緩存系統中的文件,從無到有是被動產生的。初始狀態,緩存系統中是空的,請求過來之後,緩存會回源取,然後存在本地。而不像web服務器,文件是通過其他的手段(傳統的是通過ftp上傳)來創建的,