原创 雲存儲的黑暗面:元數據保障(下)閱讀的一點記錄

文章中中提到了一種方法WRN方法,在寫入時,應該採用兩階段提交方案。 如果客戶端直接寫,假設只有一個元數據服務器寫成功,那麼我們無法得知這個元數據是否是寫成功了,如果讀到這個元數據,哪怕只有一個副本,也可能造成讀數據的混亂。 我認爲應該採

原创 TCP連接中的close和shutdown

今天在看網絡的書,自己想寫一個TCP連接半關閉的程序.在連接建立之後,客戶端調用了close函數,但是服務器端並沒有close.端口的狀態和書上講的一樣,客戶端進入過了FIN_WAIT2狀態,而服務器端進入了CLOSE_WAIT狀態.但是

原创 構造函數和析構函數爲何沒有返回值

C++中,構造函數和析構函數是沒有返回參數的。在Thiking in C++中的解釋是: 在程序中創建和消除一個對象的行爲非常的特殊。就像出生和死亡,而且總是由編譯器來調用這些函數以確保它們被正確的執行。如果它們有返回值,要麼編譯器必須知

原创 C++中父類和子類的指針互相指向

今天看C++的書,測試了一下父類和子類指針互相指向父類和子類的情況會發生的情況.(未使用虛函數) 父類指針指向父類本身,只能訪問父類有的成員變量和成員函數. 子類指針指向子類本身,如果子類覆蓋了父類有的成員變量和成員函數訪問子類的成員變量

原创 索引策略(1)

如何高效的使用索引 1.在查詢時必須使用獨立的列,否則不能使用索引。 例如select * from table where id + 1 =5; 這樣是不能使用索引的,索引列不能是表達式的一部分 2.前綴索引 有時候索引的字段十分長,會

原创 C++ =賦值運算符的重載

今天看劍指offer第一題賦值運算符的重載時,題目說要返回一個引用,這一點不太懂,在試圖弄懂這個問題的過程中,帶出了許多自己不太懂的知識,在這裏記錄一下。 首先沒有搞懂的是,=運算符是一個雙目運算符,爲什麼在重載時只有一個形參呢?最後在p

原创 範式和反範式

範式: 1.第一範式(確保每一列的原子性,都是不可再分的) 第一範式是最基本的範式。如果數據庫表中的所有字段值都是不可分解的原子值,就說明該數據庫表滿足了第一範式。 例如在存儲學生信息時,學生的姓名和學號需要分開存儲而不是存儲在同一列中。

原创 ARP地址解析協議

命令行裏面輸入ARP可以看到目的ip地址和MAC地址的對應,我們在發送報文給對方主機時,需要通過IP地址得知對方的MAC地址。這個過程需要ARP協議來完成。 例如:A主機(192.168.1.100)需要向主機B(192.168.1.10

原创 拷貝構造函數

拷貝構造函數是與類名相同,形參是本類的對象的引用的函數。 類的拷貝構造函數一般由用戶定義,如果用戶沒有定義構造函數,系統就會自動生成一個默認的函數,這個默認的拷貝構造函數的功能是把初始值對象的每個數據成員的值依次複製到新建立的對象中。 調

原创 C++中的全局變量 局部變量 常量 靜態變量的在內存中的分配

在看書時發現了這幾個概念有些混亂,和同學們討論也覺得這個地方沒搞懂,包括網上的一些對於這方面的介紹,讓自己更糊塗了。花了幾天時間,稍微弄懂了些。 之所以有些混亂,我覺得是基本概念沒有搞清楚,我查閱了英文版的C++primer,首先把一些定

原创 索引的類型

MySQL中的索引有很多類型 B-Tree索引 當沒有特殊的說明,意味着B-Tree索引。 B-Tree使用鍵生成B樹索引,當用戶查找一個鍵時,存儲引擎不需要進行全表搜索,而是查找B樹引擎。在B樹種存儲了該鍵在磁盤上的存儲位置,這樣就可以