Search Results


21 matches found for 'availability'

CAP Patterns

... atomic reads and writes. AP - Availability/Partition Tolerance You enforce availability with this pattern. Your service won't time out, but you might give back outdated data.


Quick Numbers in Software Engineering Cheatsheet

... formula should get you started for easy conversions. Availability 99.9% availability - three 9s Duration Acceptable downtime Downtime per year 8h 45min 57s Downtime per month 43m 50s Downtime per week 10m 5s Downtime per day 1m 26s 99.


Distributed scaling with Relational Databases

... by default in traditional implementations (since synchronous replication will sacrifice availability by blocking subsequent writes until the replication first completes). This means some replications may be fast, others might be slow, but eventually the states of all the replicas will converge to the same state.


Random Permutation

Problem Given an array of integers, and an integer index \(k\), randomly permute the array up to index \(k\). Input \(A\) - Array of integers \(k\) - integer index representing the indices to permute up to Approach Key insights into random permutation with arrays: If only k elements are permuted in an array of size n, the algorithm for random permutation should only cost k in time complexity.


Design Concepts

In this article, I want to go over some fundamental design concepts that are useful for coming up with system design. Requirements Functional Requirements Describes specific behaviors i.e. If a URL is generated, it is composed of a Base64 encoded alias Non-functional Requirements Describes architectural requirements i.


Python Essentials

Scopes Python has closures, similar to Javascript, since functions are first class objects. But unlike Javascript, there are some subtle gotchas in regards to working with function scopes. nonlocal vs.


Data stores in Software Architectures

... databases can handle read/writes of large amounts of unstructured data with very good latency and availability, at the cost of consistency. These databases are suitable for real-time operations.


Kefir.js - Reactive Javascript

Background Kefir.js is a Reactive Programming library for JavaScript inspired by Bacon.js and RxJS, with focus on high performance and low memory usage. Kefir works with objects called observables. observables could be two things; a stream, or a property (not to be confused with a Javascript object property) Streams A stream is a sequence of events made available over time.


4 Line Depth-first Search

Context Depth-first search (DFS) is a common searching algorithm for graphs, alongside Breadth-first search (BFS). DFS is useful for finding ways to solve mazes. It is also a vital ingredient for topological sorting.


DNS

DNS (Domain name system) is essentially a phonebook for internet addresses on the Internet. Every URL with alphanumeric characters are mapped to IP addresses, either IPv4 or IPv6. That means https://google.


NoSQL - the Radical Databases

NoSQL NoSQL is a category of databases that aren't relational. For example, MySQL would be a relational database, where as MongoDB would be a NoSQL database. Back then, relational databases were the tried-and-true, prevalent and reliable data stores.


Javascript Concepts

Objects new Object() and {} is semantically the same, but the {} is called object literal syntax. To do a deep-copy of an object, use Object.assign(target, src) or in ES6, use the spread syntax. Variables let is a block-level declaration var is a global-level declaration Functions Javascript functions are first-class objects because they can have properties and methods just like any other object.


Mutual Funds vs. ETF

Open-ended Mutual Fund The fund manager registers their fund to the SEC The fund manager markets the funds to bring in more investors/shareholders Shareholders can buy and sell shares directly with the fund manager The fund manager takes 1% of total earnings as management fees * The fund manager has to keep some money on-hand if the shareholders want to sell their shares back (i.


Big Data Processing: Batching vs. Streaming

... data into what we want can also take a while, but that's fine. We care more about atomicity and availability here, versus length of time it might take to actually record all of our analytics to our database.


Paint adjacent boundaries with distinct colors

In my recent A.I. class, I had an assignment where I had to write some code that will paint the countries of Africa with distinct colors. For the colors, I was given a domain of set(['red','blue','white','yellow','green']).


RDBMS Optimization

... that are all consistent. They can act as a backup if one server goes down, to provide high availability. Or, you can have dedicated servers for read only (read replicas), reducing the load on the Master servers and increasing performance.


Sharding Techniques

Introduction Sharding can be summarized as a technique in which a database table can be split into multiple database servers to optimize read/write performance. Benefits include: Optimized query time Instead of having one huge database table, you have multiple smaller tables in more than one machine.


Seattle Conference on Scalability: YouTube Scalability

... video is hosted by a mini-cluster A cluster of machines that serve the exact same video Offers availability via backups Served with Apache at first. Lasted about 3 months. High load, high context switching (whenever the operating system stops a thread from running in the CPU and puts another thread to run in its place).


HATEOAS

HATEOAS stands for Hypertext as the Engine of Application Source. Basically what this means is that the REST APIs are augmented to give back more helpful information in the response (metadata, if you will), such as hyperlinks that help inform the client with things like navigation.


Stack Memory vs. Heap Memory

Stack Memory The stack memory is used within a context of a thread. It is called stack memory since memory blocks are allocated in LIFO order, based on the function call stack. Each stack memory block houses data for local variables, references, and other bookkeeping data.


Javascript Essentials

Hoisting Hoisting is JavaScript's default behavior of moving declarations to the top. Given the following Javascript code, what is the expected output, and why? fcn2(); fcn1(); function fcn2(){ alert("hi"); } var fcn1 = function(){ alert("hey") } The expected output is a pop up alert that says "hi", followed by an error that fcn1 isn't defined.