lateefj / shylock Goto Github PK
View Code? Open in Web Editor NEWBetter Distributed System Interfaces With Quality Of Service
License: BSD 2-Clause "Simplified" License
Better Distributed System Interfaces With Quality Of Service
License: BSD 2-Clause "Simplified" License
Mount etcd so it can read only
Just integrate the pathioc with the IOC system.
When reading from a redis MQ there is a read timeout at around 60 seconds.
Something that can provide a bridge between the generic interface and the docker volume interface. This exists to support #32.
There needs to be something that all the integration are registered with. The main goal it to keep track of all the integration that are registered so they can be used when needed. This should also manage all the instances that have been created and mounted.
Given a path find a matching key / IOC instance. This needs to be a fast search that can quickly find the matching X bytes.
How do we handle any paths that don't have a match? Should there be a default?
Remove file was probably not implemented so need to add that!
Based on a set of strategies:
Provide mechanism for being able to the stream form backing up based on message volumes.
Based on a csv file be able to specify a key, read, writes, unit.
Example
/foo/bar, 512, 512, second
/foo/monkey, 512, 512, minute
This should provide the code for fuse to support #32
The big picture is that with SAAS is the each customer is renting some portion of the service. Mostly the challenge is providing quality of service (QOS) per customer. With shared resources like databases each customer QOS will need a slice of query time. When the number of concurrent customers is low this is not so much of a problem. As the number of customers and size of data gets larger it becomes harder and harder to share resources. Harder usually means slower or more complex. In an ideal case we would create a way to isolated storage for each customer (or device, key ect). Practically speaking we take a single data store and try to figure out way to keep individual customers for consuming to much of the resources. As data sets (tables) become large it is increasingly difficult because every query has to traverse all the data to filter a specific isolation group (customer) data.
Based on the plugin Key interface get the IOC instance and apply the control to the stream of data.
Add a read and write OPS to the QOS API
Write why kafka is a good POC.
If QOS is enabled when an integration is mounted this should get used to set limits on read / write volumes. It should be provided for #31 on Put / Get calls.
Need to be able to configure operation per X in the configuration file. Parse the file into a data structure that is thread safe.
mkdir -p /mnt/point/foo/bar/bat/
Per second seems to be the standard.
Need to support both types of message types:
That return a key for IOC. This plugin would be configured by an environment variable.
The current POC uses fuse only. Docker has a volume plugin system. This boils down to implementing the Driver interface.
For a message queue this translates into something closer to:
type MQ interface {
Mount(config map[string]string) error
Unmount() error
List(path string) ([]string, error)
Open() error
Get() (header, body []byte, error)
Put(header, body []byte) error
}
type KV interface {
Mount(config map[string]string) error
Unmount() error
List(path string) ([]string, error)
Get(path string) ([]byte, error)
Put(path string, body []byte) error
}
As well there needs to be a Register function ex:
type FS interface {
RegisterMQ(mountPoint, type, description string, config map[string]string, imp MQ)
RegisterKV(mountPoint, type, description string, config map[string]string, imp KV)
}
Listen on a Port number and provide an API for basic configuration.
This has already been implemented but not with QOS support here: https://github.com/xetorthio/etcd-fs
Write up examples on how to mount etcd.
Be able to write etc files.
QOS needs to standardize on seconds as a unit of time.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.