Skip to content

Commit d62a3a6

Browse files
committed
Extended docs4understanding to cover how the contents of storage.py
might be deployed across hardware
1 parent 2f3480d commit d62a3a6

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

docs4understanding/active.md

+16-10
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,23 @@ In this instance, we would expect the OSS to implement something with the semant
99

1010
```plantuml
1111
package "hardware view 1" {
12-
12+
left to right direction
1313
component storage {
1414
database ost1
1515
database ost2
1616
database ost3
17-
port OSS
17+
component OSS
18+
OSS -- ost1
19+
OSS -- ost2
20+
OSS -- ost3
1821
}
1922
2023
component node {
2124
component application
22-
port kernel
25+
component kernel
26+
application --> kernel
2327
}
28+
2429
kernel --> OSS: LAN traffic.
2530
2631
}
@@ -36,8 +41,8 @@ An example of application parallelism would be the use of asynchronous requests
3641
THe more interesting problem for now arises in where we have "storage parallelism".
3742

3843
```plantuml
39-
package "hardware view 1" {
40-
44+
package "hardware view 2" {
45+
left to right direction
4146
component storage {
4247
database ost1
4348
database ost2
@@ -46,17 +51,18 @@ package "hardware view 1" {
4651
4752
component node {
4853
component application
49-
port kernel
54+
component kernel
55+
application --> kernel
5056
}
5157
kernel --> ost1: LAN
5258
kernel --> ost2: LAN
5359
kernel --> ost3: LAN
5460
}
5561
```
5662

57-
Where would we implement what? There is no benefit to be gained from implementing `_decode_chunks` in the kernel, as the entire chunk has already been served to the compute node, and no data movement has been avoided. Depending on the layout of chunks across OSTs, there may be no benefit in attempting active storage. It depends on how contiguous the data is in storage. If however, it is possble to
58-
break down the logic of `_from_storage` so that individual "part_chunks" which are contiguous are processed on the storage side of the LAN (in the ost or nearby) then meaningful performance is possible.
59-
The Python client in the end would simply see a list of partial products of the computational method which have come direct from the osts. It will not care whether those parts came from a different breakdown of storage than it anticpated in the chunking (though of course the storage will need to do the necessary mapping to generate the partial sums).
63+
Where would we implement what? There is no benefit to be gained from implementing `_decode_chunks` in the kernel, as the entire chunk has already been served to the compute node, and no data movement has been avoided. Depending on the layout of chunks across OSTs, there may be no benefit in attempting active storage. It depends on how contiguous the data is in storage.
64+
65+
If however, it is possble to break down the logic of `_from_storage` so that individual "part_chunks" which are contiguous are processed on the storage side of the LAN (in the ost or nearby) then meaningful performance is possible. The Python client in the end would simply see a list of partial products of the computational method which have come direct from the osts. It will not care whether those parts came from a different breakdown of storage than it anticpated in the chunking (though of course the storage will need to do the necessary mapping to generate the partial sums).
6066

61-
In the longer term, where we expect that we will have to pass a decompression method down through the `_decode_chunk` interface, it _will_ be necessary for the computational storage to respect the `_decode_chunk` interface server-side. This is of course what is required with S3, where we effectively need an S3 proxy to do the work.
67+
In the longer term, where we expect that we will have to pass a decompression method down through the `_decode_chunk` interface, it _will_ be necessary for the computational storage to respect the `_decode_chunk` interface server-side. This is of course what is required with S3, where we effectively need an S3 proxy to do the work. It might be that this is also required in some implementations of POSIX storage systems if they wish to implement computational storage OR they will need to somehow respect block contiguous placement in some way.
6268

0 commit comments

Comments
 (0)