Java Doc for HashedFileFactory.java in  » Workflow-Engines » pegasus-2.1.0 » org » griphyn » vdl » euryale » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Workflow Engines » pegasus 2.1.0 » org.griphyn.vdl.euryale 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


java.lang.Object
   org.griphyn.vdl.euryale.FlatFileFactory
      org.griphyn.vdl.euryale.HashedFileFactory

All known Subclasses:   org.griphyn.vdl.euryale.VirtualDecimalHashedFileFactory,
HashedFileFactory
public class HashedFileFactory extends FlatFileFactory (Code)
This file factory generates a stream of submit files in a dynamically determinable directory structure. By default, a 2-level subdirectory structure is assumed, which should be able to accomodate about 500k files.
 mult=16, offset=30, fpd=254: nr=15 => l=1
 mult=16, offset=30, fpd=254: nr=4047 => l=2
 mult=16, offset=30, fpd=254: nr=1028222 => l=3
 
With the given multiplicator, offset and files per directory, nr is smallest number of jobs at which a level change to l occurs.
author:
   Kavitha Ranganathan
author:
   Jens-S. Vöckler
author:
   Yong Zhao
version:
   $Revision: 289 $
See Also:   DAX2DAG


Field Summary
protected  intm_count
     Counts the number of times the structured virtual constructor was called.
protected  intm_filesPerDirectory
     Number of entries per level.
protected  intm_levels
     Contains the total number of directory levels.
protected  intm_multiplicator
     Multiplicative factor to estimate the number of result leaf filenames for each virtual constructor invocation.
protected  intm_offset
     Offset of files expected to reside at the top level directory.
protected  StringBuffermh_buffer
     Helping structure to avoid repeated memory requests.
protected  intmh_digits
     Helping structure to avoid repeated memory requests.
protected  intmh_level
     Helping structure to avoid repeated memory requests.

Constructor Summary
public  HashedFileFactory(File baseDirectory)
     Constructor: Creates the base directory and employs sanity checks.
public  HashedFileFactory(String baseDirectory)
     Constructor: Creates the directory and employs sanity checks.
public  HashedFileFactory(File baseDirectory, int totalFiles)
     Constructor: Creates the base directory and employs sanity checks.
public  HashedFileFactory(String baseDirectory, int totalFiles)
     Constructor: Creates the directory and employs sanity checks.

Method Summary
public static  intcalculateLevels(int totalFiles, int multiplicator, int filesPerDirectory, int offset)
     Determines dynamically the number of directory levels required to accomodate a certain number of files.
 levels = |log   ( tf * m + offset )|
 fpd
 

Parameters:
  totalFiles - is the total number of files estimated to generate
Parameters:
  multiplicator - is a corrective factor to account for filesthat are created by the run-time system on the fly.
protected  FilecreateDirectory()
     Creates a directory for the hashed file directory structure on the submit host.
public  FilecreateFile(String basename)
     Creates the next file with the given basename.
public  Stringformat(int number)
     Converts the given integer into hexadecimal notation, using the given number of digits, prefixing with zeros as necessary.
Parameters:
  number - is the number to format.
public  intgetCount()
     Returns the number of times the regular virtual constructor for structured entries was called.
public  intgetFilesPerDirectory()
     Accessor: Obtains the number of entries per directory.
public  intgetLevels()
     Accessor: Obtains the total number of directory levels.
public  intgetMultiplicator()
     Accessor: Obtains the multiplicative factor for an estimation of total files from calls to the virtual constructor.
public  intgetOffset()
     Accessor: Obtains the offset for an estimation of total files from calls to the virtual constructor.
public static  voidmain(String arg)
    
public  voidreset()
     Resets the helper structures after changing layout parameters.
public  voidsetFilesPerDirectory(int entries)
     Accessor: Sets the optimal maximum number of files per directory excluding dot and dotdot.
public  voidsetLevels(int levels)
     Accessor: Sets the number of directory levels.
public  voidsetLevelsFromTotals(int totalFiles)
     Accessor: Sets the number of directory levels.
public  voidsetMultiplicator(int multiplicator)
     Accessor: Sets the multiplicative factor to account for files which may be created without calling the virtual constructor.
public  voidsetOffset(int offset)
     Accessor: Sets the offset for files which may be created without calling the virtual constructor.

Field Detail
m_count
protected int m_count(Code)
Counts the number of times the structured virtual constructor was called.
See Also:   HashedFileFactory.getCount()



m_filesPerDirectory
protected int m_filesPerDirectory(Code)
Number of entries per level. The number 254 is optimized for the Linux VFS ext2, and consequently ext3, which works fastest, if the number of entries per directory, including dot and dotdot, don't exceed 256.



m_levels
protected int m_levels(Code)
Contains the total number of directory levels. Defaults to a reasonable level for hashing.



m_multiplicator
protected int m_multiplicator(Code)
Multiplicative factor to estimate the number of result leaf filenames for each virtual constructor invocation. We assume that Euryale produces ~12 files per submit file. It is better to err on the larger side than makeing the multiplicator too small.



m_offset
protected int m_offset(Code)
Offset of files expected to reside at the top level directory. This is counted in addition to the directories being created.



mh_buffer
protected StringBuffer mh_buffer(Code)
Helping structure to avoid repeated memory requests. Stores the digits necessary to create one level's directory name.
See Also:   HashedFileFactory.format(int)



mh_digits
protected int mh_digits(Code)
Helping structure to avoid repeated memory requests. Stores the number of digits for hexadecimal formatting.
See Also:   HashedFileFactory.createFile(String)



mh_level
protected int mh_level(Code)
Helping structure to avoid repeated memory requests. Stores the directory number for each level.
See Also:   HashedFileFactory.createFile(String)




Constructor Detail
HashedFileFactory
public HashedFileFactory(File baseDirectory) throws IOException(Code)
Constructor: Creates the base directory and employs sanity checks.
Parameters:
  baseDirectory - is the place where the other dirs are created,and where the DAG file resides.
throws:
  IOException - if the location is not a writable directory,or cannot be created as such.



HashedFileFactory
public HashedFileFactory(String baseDirectory) throws IOException(Code)
Constructor: Creates the directory and employs sanity checks.
Parameters:
  baseDirectory - is the place where the other dirs are created,and where the DAG file resides.
throws:
  IOException - if the location is not a writable directory,or cannot be created as such.



HashedFileFactory
public HashedFileFactory(File baseDirectory, int totalFiles) throws IOException(Code)
Constructor: Creates the base directory and employs sanity checks.
Parameters:
  baseDirectory - is the place where the other dirs are created,and where the DAG file resides.
Parameters:
  totalFiles - is the number of files to support, and the numberof times, the virtual constructor is expected to be called.
throws:
  IOException - if the location is not a writable directory,or cannot be created as such.



HashedFileFactory
public HashedFileFactory(String baseDirectory, int totalFiles) throws IOException(Code)
Constructor: Creates the directory and employs sanity checks.
Parameters:
  baseDirectory - is the place where the other dirs are created,and where the DAG file resides.
Parameters:
  totalFiles - is the number of files to support, and the numberof times, the virtual constructor is expected to be called.
throws:
  IOException - if the location is not a writable directory,or cannot be created as such.




Method Detail
calculateLevels
public static int calculateLevels(int totalFiles, int multiplicator, int filesPerDirectory, int offset)(Code)
Determines dynamically the number of directory levels required to accomodate a certain number of files.
 levels = |log   ( tf * m + offset )|
 fpd
 

Parameters:
  totalFiles - is the total number of files estimated to generate
Parameters:
  multiplicator - is a corrective factor to account for filesthat are created by the run-time system on the fly. For Euryale andPegasus it is safe to assume a multiplicator of at least 8.
Parameters:
  filesPerDirectory - is the optimal maximum number of directoryentries in any directory. The value of 254 for Linux ext2, and thusext3, is a safe bet.
Parameters:
  offset - is the number of (expected) files in the top level. the number of directory levels necessary to accomodate thegiven number of files.



createDirectory
protected File createDirectory() throws IOException(Code)
Creates a directory for the hashed file directory structure on the submit host. the File structure to the created directory
throws:
  IOException - the exception.



createFile
public File createFile(String basename) throws IOException(Code)
Creates the next file with the given basename. This is the factory standard virtual constructor. Once invoked, the directory structure can not be changed any more.
Parameters:
  basename - is the filename to create. Don't specify dirs here. a File structure which points to the new file. Nothing iscreated through this method, and creation may still fail.
See Also:   HashedFileFactory.getCount()



format
public String format(int number)(Code)
Converts the given integer into hexadecimal notation, using the given number of digits, prefixing with zeros as necessary.
Parameters:
  number - is the number to format. a string of appropriate length, filled with leading zeros,representing the number hexadecimally.



getCount
public int getCount()(Code)
Returns the number of times the regular virtual constructor for structured entries was called. the count for createFile invocations.
See Also:   HashedFileFactory.createFile(String)



getFilesPerDirectory
public int getFilesPerDirectory()(Code)
Accessor: Obtains the number of entries per directory. the chosen number of entries per directory excluding thedot and dotdot files.



getLevels
public int getLevels()(Code)
Accessor: Obtains the total number of directory levels. the total number of directory levels chosen.



getMultiplicator
public int getMultiplicator()(Code)
Accessor: Obtains the multiplicative factor for an estimation of total files from calls to the virtual constructor. the multiplicator.
See Also:   HashedFileFactory.setMultiplicator(int)



getOffset
public int getOffset()(Code)
Accessor: Obtains the offset for an estimation of total files from calls to the virtual constructor. the offset
See Also:   HashedFileFactory.setOffset(int)



main
public static void main(String arg) throws Exception(Code)
test function



reset
public void reset()(Code)
Resets the helper structures after changing layout parameters. You will also need to call this function after you invoked the virtual constructors, but want to change parameter pertaining to the directory structure. The structured file count will also be reset!



setFilesPerDirectory
public void setFilesPerDirectory(int entries)(Code)
Accessor: Sets the optimal maximum number of files per directory excluding dot and dotdot. For a Linux ext2 and thus ext3 system, the optimal maximum number is 254.
Parameters:
  entries - is the number of optimal maximum entries per dir.
throws:
  VTorInUseException - if the virtual constructor is already in use.
throws:
  IllegalArgumentException - if the argument is less than one.
See Also:   HashedFileFactory.getFilesPerDirectory()



setLevels
public void setLevels(int levels)(Code)
Accessor: Sets the number of directory levels. Note that this modificator can only be called before the virtual constructor is called the first time.
Parameters:
  levels - is the number of directory levels to use
throws:
  VTorInUseException - if the virtual constructor is already in use.
throws:
  IllegalArgumentException - if the argument is less than zero.
See Also:   HashedFileFactory.getLevels()



setLevelsFromTotals
public void setLevelsFromTotals(int totalFiles)(Code)
Accessor: Sets the number of directory levels. Note that this modificator can only be called before the virtual constructor is called the first time. It takes as argument the total number of expected files instead of the level.
Parameters:
  totalFiles - is the total number of files to accomodate.
throws:
  VTorInUseException - if the virtual constructor is already in use.
throws:
  IllegalArgumentException - if the argument is less than zero.
See Also:   HashedFileFactory.getLevels()



setMultiplicator
public void setMultiplicator(int multiplicator)(Code)
Accessor: Sets the multiplicative factor to account for files which may be created without calling the virtual constructor.
Parameters:
  multiplicator - is the new multiplicator.
throws:
  VTorInUseException - if the virtual constructor is already in use.
throws:
  IllegalArgumentException - if the argument is less than one.
See Also:   HashedFileFactory.getMultiplicator()



setOffset
public void setOffset(int offset)(Code)
Accessor: Sets the offset for files which may be created without calling the virtual constructor.
Parameters:
  offset - is the new offset
throws:
  VTorInUseException - if the virtual constructor is already in use.
throws:
  IllegalArgumentException - if the argument is less than zero.
See Also:   HashedFileFactory.getOffset()



Methods inherited from org.griphyn.vdl.euryale.FlatFileFactory
public File createFile(String basename) throws IOException(Code)(Java Doc)
public File createFlatFile(String basename) throws IOException(Code)(Java Doc)
public File getBaseDirectory()(Code)(Java Doc)
public int getCount()(Code)(Java Doc)
public int getFlatCount()(Code)(Java Doc)
public String getName(File file)(Code)(Java Doc)
public void reset()(Code)(Java Doc)
protected void sanityCheck(File dir) throws IOException(Code)(Java Doc)
public void setBaseDirectory(File base) throws IOException, VTorInUseException(Code)(Java Doc)

Methods inherited from java.lang.Object
native protected Object clone() throws CloneNotSupportedException(Code)(Java Doc)
public boolean equals(Object obj)(Code)(Java Doc)
protected void finalize() throws Throwable(Code)(Java Doc)
final native public Class getClass()(Code)(Java Doc)
native public int hashCode()(Code)(Java Doc)
final native public void notify()(Code)(Java Doc)
final native public void notifyAll()(Code)(Java Doc)
public String toString()(Code)(Java Doc)
final native public void wait(long timeout) throws InterruptedException(Code)(Java Doc)
final public void wait(long timeout, int nanos) throws InterruptedException(Code)(Java Doc)
final public void wait() throws InterruptedException(Code)(Java Doc)

www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.