有關檔案系統諸多設計取捨的優缺點摘要: A.硬碟目錄結構(directory structure)的發展歷史: 1.一代單層(不利同名及分群) 2.二代雙層(仍不利分群) 3.三代樹(不利分享) 4.四代無循環圖形(利於分享) 註:系統要如何避免無循環圖形(acyclic graph)變成一般圖形(general graph),而造成不利走訪? 解法為只允許一個實連結,其餘採虛連結(捷徑),走訪時忽略虛連結. B.網路檔案系統協定能作到斷線復原快的作法分類: 1.有狀態(stateful): 建立會談耗時,但之後的額外資料傳輸量少,且安全.其復原快的原因為雙方皆留存斷線前狀態 2.無狀態(stateless): 不建立會談省時,但之後為了自給自足,額外資料傳輸量多,且不安全.其復原也快的原因為雙方根本沒有什麼狀態要復原 C.網路檔案系統協定有關檔案修改一致性(consistency semantics)的作法分類: 1.unix一致性(unix semantics): 修改馬上他人可見,因只有一份,故取用慢 2.會談一致性(sesseion semantics): 修改要稍後開始的會談才可見,因有多份,故取用快 3.唯讀一致性(immutable-shared-files semantics): 唯讀不能修改,故具一致性 參考: silberschatz-13-wiley-operating system concepts, 9th ed.
file system tradeoffs
how to set up mahout 0.5 taste-web web service
mahout 0.5 taste_web網站服務建置法
----------------------------------
前言:
因為mahout新版不再提供taste_web網站服務建置範例,
ssaroha特將mahout 0.5版的taste_web範例置於如下github網站,方便參考:
https://github.com/ssaroha/mahout-recommender-webservice
其目錄結構如下:
./mahout-recommender-service/
.git/
README # 安裝說明
create_service.sh # 建立新推薦網站服務指令
mvn archetype:generate \
-DarchetypeGroupId=org.apache.maven.archetypes \
-DarchetypeArtifactId=maven-archetype-webapp \
-DgroupId=com.mykidscart.mahout_service \
-DartifactId=mahout_service \
-Dpackage=com.mykidscart.mahout_service \
-Dversion=1.0.0 \
-DjarName=mahout_service \
-Dsource=1.6 \
mahout_service/
pom.xml
src/main/webapp/WEB-INF/web.xml # web-app/servlet/init-parm/parm-value決定推薦器
src/main/java/com/mykidscart/mahout_service/RecommenderServlet.java
src/main/resources/movies.dat # 3952 movies
src/main/resources/ratings.dat # 1M movie ratings of 6K users
target/mahout_service.war
預設推薦器為org.apache.mahout.cf.taste.example.grouplens.GroupLensRecommender
以下為復原taste_web範例步驟:
# 建立git用戶身份,可作可不作
# git config --global user.name "yyy zzz"
# git config --global user.email "xxxx@gmail.com"
# git config --global credential.helper cache
# git config --global credential.helper "cache --timeout=3600"
# 在當前目錄復原 ./mahout-recommender-service/ 架構
git clone https://github.com/ssaroha/mahout-recommender-webservice.git
# 產生 target/mahout_service.war
cd ./mahout-recommender-service/
mvn package
### 添加資料檔供讀取
cp src/main/resources/movies.dat target/classes/org/apache/mahout/cf/taste/example/grouplens/
cp src/main/resources/ratings.dat target/classes/org/apache/mahout/cf/taste/example/grouplens/
mvn package
######## 測試法1: jetty ##############
# 導入jetty插件,提供.war執行功能
vi pom.xml
<project>
<build>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>7.1.2.v20100523</version>
<configuration>
<webApp>${project.build.directory}/${project.artifactId}.war</webApp>
</configuration>
</plugin>
</plugins>
</build>
</project>
# 用jetty啟動.war推薦服務
mvn -Djetty.port=7070 jetty:run-war
# 用瀏覽器測試推薦服務
lynx http://localhost:7070/RecommenderServlet?userID=111&howMany=400
######## 測試法2: tomcat ##############
# 部署 mahout_service.war 到 tomcat 網站
# cp ./target/mahout_service.war apache-tomcat-7.0.28/webapps/
# unzip -d mahout_service ./mahout_service.war
cp ./target/mahout_service.war /usr/share/tomcat6/webapps/
# unzip -d mahout_service ./mahout_service.war
# 用瀏覽器測試推薦服務
lynx http://localhost:8080/mahout_service/RecommenderServlet?userID=111&howMany=400
5.5 3233
5.3458047 557
5.0 134
5.0 1434
4.93471 3245
4.899492 2503
4.816771 2198
4.815301 3888
4.788968 53
4.77251 787
4.75434 3338
.....
訂閱:
意見 (Atom)
Linked Lists from C to Java
「 C Pointer Concepts in Java 」一文提到 Java 沒有指標型別 (pointer type) ,但有參照型別 (reference type) 的設計。在遇到須要處理鏈結清單 (linked list)、圖形 (graph) 等資料結構時,Java ...