Lessons learned from building an asynchronous filesystem component
@WyriHaximus
Cees-Jan Kiewiet
- @WyriHaximus
- Phergie Team member
- ReactPHP Team member
- Sculpin Team member
- Lead Software Engineer at
@WyriHaximus
Files
@WyriHaximus
@WyriHaximus
file_get_contents('HelloWorld.java');
@WyriHaximus
$filename = 'HelloWorld.java';
$handle = fopen($filename, 'r');
$contents = fread($handle, filesize($filename));
fclose($handle);
@WyriHaximus
function file_get_contents($filename)
{
$handle = fopen($filename, 'r');
$contents = fread($handle, filesize($filename));
fclose($handle);
}
@WyriHaximus
$filename = 'HelloWorld.java';
$handle = fopen($filename, 'r');
$contents = '';
while (!feof($handle)) {
$contents .= fread($handle, 4096);
}
fclose($handle);
@WyriHaximus
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
@WyriHaximus
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
�������f�H�D1�H����k����8�N���H�D$�����H9�u
����J���D�(I��H������E�,$�Y�����������f��<$
�����H��H�DH��H=���HG�L�kL���t���H��I���E1�1
�1�1�L������L�d$H�\$�g賓���I�ǃ������(H�\$K�l
-L)�I9�H��L���k���H��H���H�I��I��H�D$H�E�H)�
H�D$L�D$H�L$H�TH��L��芓��H����x����ZfD�#���
�I�ǃ���H\$K�lL)�I9�H��L�������H��toH�I��I��H
�T$H�U�H)�H�T$L�D$H�L$1�1�L�����H���t�H�D$H�
PH�T$�L��H�t$L)�L9�s0L������H��ID��fDA�
@WyriHaximus
Directories
@WyriHaximus
- .
- ..
- HelloWorld.java
- PHP Antwerp.ug
- vendor
@WyriHaximus
- .
- ..
- HelloWorld.java
- PHP Antwerp.ug
- vendor
@WyriHaximus
- .
- ..
- HelloWorld.java
- PHP Antwerp.ug
- vendor
@WyriHaximus
- .
- ..
- HelloWorld.java
- PHP Antwerp.ug
- vendor
@WyriHaximus
- .
- ..
- HelloWorld.java
- PHP Antwerp.ug
- vendor
@WyriHaximus
- .
- ..
- HelloWorld.java
- PHP Antwerp.ug
- vendor
@WyriHaximus
@WyriHaximus
-
Directory
- File
- Symlink
@WyriHaximus
-
Directory: 0x4000
- File
- Symlink
@WyriHaximus
-
Directory: 0x4000
- File: 0x8000
- Symlink
@WyriHaximus
-
Directory: 0x4000
- File: 0x8000
- Symlink: 0xa000
@WyriHaximus
- .
- ..
- HelloWorld.java
- PHP Antwerp.ug
- PHP Antwerp.ug
@WyriHaximus
Inodes
@WyriHaximus
An inode:
- inode ID
- size
- device ID
- user ID
- group ID
- mode
- timestamps
- flags
- data blocks
@WyriHaximus
A file
@WyriHaximus
A directory
@WyriHaximus
A symlink
@WyriHaximus
Limits
@WyriHaximus
Software Limits
@WyriHaximus
ulimit
@WyriHaximus
Hardware limits
@WyriHaximus
Questions?
@WyriHaximus
https://slides.com/wyrihaximus/lessons-learned-from-building-an-asynchronous-filesystem-component
Slides:
Rate this talk:
https://legacy.joind.in/17602
Lessons learned from building an asynchronous filesystem component (PHP Antwerp)
By wyrihaximus
Lessons learned from building an asynchronous filesystem component (PHP Antwerp)
- 1,438