mirror of
https://github.com/jackyzha0/quartz.git
synced 2025-12-24 21:34:06 -06:00
vault backup: 2022-06-12 13:27:30
This commit is contained in:
parent
176accfef5
commit
f83e68fdd3
@ -80,4 +80,47 @@ Things to consider
|
|||||||
# Platform
|
# Platform
|
||||||
- target for system deployment
|
- target for system deployment
|
||||||
- on prem
|
- on prem
|
||||||
- cl
|
- cloud
|
||||||
|
- do you have a choice
|
||||||
|
- will the platform be only just for this system or for other things (multi tenanting)
|
||||||
|
- what limits are imposed by the platform
|
||||||
|
- does it inlclude external systems or resources
|
||||||
|
|
||||||
|
|
||||||
|
# Caching
|
||||||
|
- temporarily store frequently used data
|
||||||
|
- same concept as [memoization](notes/memoization.md)
|
||||||
|
- mainly about improving read performance
|
||||||
|
- when retrieving data, look in the cache first
|
||||||
|
- if its there (=hit), done
|
||||||
|
- if not (or stale) (=miss), read from original source
|
||||||
|
- can be several orders of magnitude faster
|
||||||
|
- ideal for small, frequently accessed data
|
||||||
|
- cache contents needs to be managed
|
||||||
|
- e.g., least recently used (LRU) data drop out as cache fills up
|
||||||
|
- cahced data can become inconsistent with original source
|
||||||
|
- can go anywhere
|
||||||
|
- databse, client, dedicated caching server
|
||||||
|
- numberourus cahcing tools, e.g., memcache, redis
|
||||||
|
|
||||||
|
# Pooling
|
||||||
|
- pre allocate a set of shared resources that are kept ready for use (e.g., databse connetions, objects)
|
||||||
|
- useful when:
|
||||||
|
- allocating eacch resources has a significant cost (time space)
|
||||||
|
- there are frequent requests of short duration
|
||||||
|
- we need to limit the total number of resources
|
||||||
|
- mainly about resource management, so pools ar maintaineed by the resource allocator
|
||||||
|
- important to reset resources when returning to the pool.
|
||||||
|
- e.g., ensure atabase connection has no incomplete statements
|
||||||
|
- ensures state doesn't leak across different uses of same resource
|
||||||
|
|
||||||
|
# System reliability
|
||||||
|
- behaviour of system
|
||||||
|
- graceful degradation - should behave sensibly under all but the most extreme circumstances
|
||||||
|
- should't just crash
|
||||||
|
- thorough automated testing
|
||||||
|
- thorough user testing
|
||||||
|
- raw errors shouldn't bubble up to the user
|
||||||
|
- user wont understand -> pointless
|
||||||
|
- may expose sensitive information (e.g., file system paths)
|
||||||
|
- parti
|
||||||
Loading…
Reference in New Issue
Block a user