file system tradeoffs

有關檔案系統諸多設計取捨的優缺點摘要:

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.

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
 .....

start versus restart for docker containers

Docker start vs restart :差異快速看懂 docker start 與 docker restart 都能讓容器跑起來, 但語意與清理範圍完全不同。 1.指令行為比較 指令 行為說明 適用狀態 ...

總網頁瀏覽量