38 / plumber

The General-Purpose Cross-Language Dataflow Programming
http://plumberserver.com
BSD 2-Clause "Simplified" License
27 stars 2 forks source link

RLS Stream Cache #64

Open 38 opened 6 years ago

38 commented 6 years ago

RLS Stream might be very computing intensive, for example, a RLS with pending operation for compression, encryption and transcoding. And this will make the framework unable to reuse the result of the computational intensive operations on some immutable objects.

For example, for the static content server, it actually loss 50% of the performance if we enable compression.

For the design details about this Cache, we actually need an RLS object that abstracts the cache.

Thus we also need a callback for the object hash code and if the function is not defined, indicates we just got a volatile object (For example an object that generates a random number)

Additionally, this hashing infrastructure can be used as ETag in the HTTP server.