From 758457d25d6aaa56dfbb27bcca8d9972164c6e71 Mon Sep 17 00:00:00 2001 From: Elijah Melton Date: Wed, 1 Jan 2025 04:31:10 -0800 Subject: [PATCH] auto --- deploy.sh | 1 + ...-scalable-and-maintainable-applications.md | 7 + .../ch2-data-models-and-query-languages.md | 7 + .../ch3-storage-and-retrieval.md | 17 +- .../ch4-encoding-and-evolution.md | 24 ++- .../ch5-replication.md | 7 + .../ch10-batch-processing.md | 7 + site/categories/database design.html | 193 +++++++++++++++++ site/categories/database systems.html | 193 +++++++++++++++++ site/categories/distributed systems.html | 195 ++++++++++++++++++ site/categories/index.html | 4 + site/categories/software engineering.html | 193 +++++++++++++++++ site/deploy.sh | 1 + ...calable-and-maintainable-applications.html | 14 +- .../ch2-data-models-and-query-languages.html | 14 +- .../ch3-storage-and-retrieval.html | 30 +-- .../ch4-encoding-and-evolution.html | 22 +- .../ch5-replication.html | 14 +- .../ch10-batch-processing.html | 14 +- site/index.html | 58 ++++-- site/tags/batch processing.html | 193 +++++++++++++++++ site/tags/column-oriented storage.html | 193 +++++++++++++++++ site/tags/compatibility.html | 193 +++++++++++++++++ site/tags/data analysis.html | 193 +++++++++++++++++ site/tags/data modeling.html | 193 +++++++++++++++++ site/tags/data replication.html | 193 +++++++++++++++++ site/tags/data serialization.html | 193 +++++++++++++++++ site/tags/data structures.html | 3 +- site/tags/data systems.html | 193 +++++++++++++++++ site/tags/distributed filesystems.html | 193 +++++++++++++++++ site/tags/document databases.html | 193 +++++++++++++++++ site/tags/encoding formats.html | 193 +++++++++++++++++ site/tags/etl.html | 193 +++++++++++++++++ site/tags/failover.html | 193 +++++++++++++++++ site/tags/graph databases.html | 193 +++++++++++++++++ site/tags/index.html | 30 ++- site/tags/indexing.html | 193 +++++++++++++++++ site/tags/leader-follower model.html | 193 +++++++++++++++++ site/tags/maintainability.html | 193 +++++++++++++++++ site/tags/mapreduce.html | 193 +++++++++++++++++ site/tags/message passing.html | 193 +++++++++++++++++ site/tags/oltp vs olap.html | 193 +++++++++++++++++ site/tags/performance.html | 193 +++++++++++++++++ site/tags/query languages.html | 193 +++++++++++++++++ site/tags/relational databases.html | 193 +++++++++++++++++ site/tags/reliability.html | 193 +++++++++++++++++ site/tags/replication logs.html | 193 +++++++++++++++++ site/tags/scalability.html | 193 +++++++++++++++++ site/tags/schema evolution.html | 193 +++++++++++++++++ site/tags/synchronous vs asynchronous.html | 193 +++++++++++++++++ 50 files changed, 6361 insertions(+), 91 deletions(-) create mode 100755 deploy.sh create mode 100644 site/categories/database design.html create mode 100644 site/categories/database systems.html create mode 100644 site/categories/distributed systems.html create mode 100644 site/categories/software engineering.html create mode 100644 site/deploy.sh create mode 100644 site/tags/batch processing.html create mode 100644 site/tags/column-oriented storage.html create mode 100644 site/tags/compatibility.html create mode 100644 site/tags/data analysis.html create mode 100644 site/tags/data modeling.html create mode 100644 site/tags/data replication.html create mode 100644 site/tags/data serialization.html create mode 100644 site/tags/data systems.html create mode 100644 site/tags/distributed filesystems.html create mode 100644 site/tags/document databases.html create mode 100644 site/tags/encoding formats.html create mode 100644 site/tags/etl.html create mode 100644 site/tags/failover.html create mode 100644 site/tags/graph databases.html create mode 100644 site/tags/indexing.html create mode 100644 site/tags/leader-follower model.html create mode 100644 site/tags/maintainability.html create mode 100644 site/tags/mapreduce.html create mode 100644 site/tags/message passing.html create mode 100644 site/tags/oltp vs olap.html create mode 100644 site/tags/performance.html create mode 100644 site/tags/query languages.html create mode 100644 site/tags/relational databases.html create mode 100644 site/tags/reliability.html create mode 100644 site/tags/replication logs.html create mode 100644 site/tags/scalability.html create mode 100644 site/tags/schema evolution.html create mode 100644 site/tags/synchronous vs asynchronous.html diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..5c06db8 --- /dev/null +++ b/deploy.sh @@ -0,0 +1 @@ +python scripts/clean.py && python scripts/build.py . site && git add . && git commit -am 'auto' && git push diff --git a/designing-data-intensive-applications/part-1-foundations-of-data-systems/ch1-reliable-scalable-and-maintainable-applications.md b/designing-data-intensive-applications/part-1-foundations-of-data-systems/ch1-reliable-scalable-and-maintainable-applications.md index e0a949a..933c69a 100644 --- a/designing-data-intensive-applications/part-1-foundations-of-data-systems/ch1-reliable-scalable-and-maintainable-applications.md +++ b/designing-data-intensive-applications/part-1-foundations-of-data-systems/ch1-reliable-scalable-and-maintainable-applications.md @@ -1,3 +1,10 @@ +--- +title: Fundamentals of Data-Intensive Application Design and Scalability +category: Software Engineering +tags: reliability, scalability, maintainability, data systems, performance +description: This document explores the key principles of designing data-intensive applications, focusing on reliability, scalability, and maintainability. It discusses various aspects of system design, including handling different types of faults, measuring and managing load, and ensuring long-term system health through good operational practices and simplicity. +--- + # Chapter 1 ## Reliable, Scalable, and Maintainable Applications diff --git a/designing-data-intensive-applications/part-1-foundations-of-data-systems/ch2-data-models-and-query-languages.md b/designing-data-intensive-applications/part-1-foundations-of-data-systems/ch2-data-models-and-query-languages.md index 1786d6f..e914834 100644 --- a/designing-data-intensive-applications/part-1-foundations-of-data-systems/ch2-data-models-and-query-languages.md +++ b/designing-data-intensive-applications/part-1-foundations-of-data-systems/ch2-data-models-and-query-languages.md @@ -1,3 +1,10 @@ +--- +title: Data Models and Relationships in Database Systems +category: Database Design +tags: relational databases, document databases, graph databases, data modeling, query languages +description: This document explores various data models including relational, document, and graph databases. It discusses the strengths and weaknesses of each model, focusing on how they handle relationships between data. The chapter also covers query languages, data locality, and the concept of MapReduce for data processing. +--- + # Chapter 2 ## Data Models and Query Languages diff --git a/designing-data-intensive-applications/part-1-foundations-of-data-systems/ch3-storage-and-retrieval.md b/designing-data-intensive-applications/part-1-foundations-of-data-systems/ch3-storage-and-retrieval.md index 01b451e..3fd69bb 100644 --- a/designing-data-intensive-applications/part-1-foundations-of-data-systems/ch3-storage-and-retrieval.md +++ b/designing-data-intensive-applications/part-1-foundations-of-data-systems/ch3-storage-and-retrieval.md @@ -1,4 +1,12 @@ +--- +title: Storage and Retrieval Techniques for Database Systems +category: Database Systems +tags: data structures, indexing, oltp vs olap, column-oriented storage +description: Explores various storage and retrieval techniques for database systems, including log-structured storage, indexing methods, and optimizations. Compares OLTP and OLAP systems, discussing their respective storage strategies and performance considerations. +--- + # Chapter 3 + ## Storage and Retrieval ```bash @@ -22,6 +30,7 @@ To make reads faster, we can use an **index**. An index is an additional structu Map keys to offsets in the data file. This is fast for equality queries, but not for range queries. Store log-structured key-value data like above in binary format, and use a hash index to find the offset of the key in the data file. **Delete** by marking the key as deleted in the data file (sometimes with a "tombstone"), and periodically reindex the data file to remove the deleted keys. For **crash recovery**: + - reread log file from beginning to end, building hash table indicies in memory (slow, but no additional storage) - store snapshots of the hash table indicies to disk periodically (fast, but requires additional storage) - use checksums to detect partial corruption of the hash table indicies (fast, but requires additional storage) @@ -81,22 +90,22 @@ B-trees are good for one-dimensional indexes, but not for **multi-dimensional in As RAM gets cheaper, it makes more sense to keep data in memory. **In-memory databases** are good for applications that need low latency and high throughput, but make crash recovery more difficult. **Write-ahead logs** are a good way to make crash recovery easier, but can slow down writes. Some databases (e.g. Redis) let you choose between durability and performance, and have "weak durability" by asyncronously writing to disk. Some in-memory databases can even exceed the amount of RAM available by using an eviction policy similar to a cache. - ### Transaction Processing or Analytics? **OLTP** (online transaction processing) is good for real-time stateful workloads, where low latency and high throughput are important. **OLAP** (online analytics processing) is good for async batch processing, where high throughput is important, but latency is not. #### OTLP: + - transactional databases, relational databases, key-value stores, etc. - ACID transactions, concurrency control, indexes, etc. - enterprise typically made up of several OLTP systems that require high-availability and low-latency for reads and writes. #### OLAP: + - data warehouses, batch processing, batch analytics, Hadoop, Spark, etc. - read only copy of data, typically loaded and queried in batches - typically used for business intelligence, reporting, and data mining. Not as critical to keep up and running 24/7, and queries are able to hog system resources without consequence. - Most of the previous indexes are more OTLP focused, whereas "data warehouses" are more OLAP focused, and often use a different schema and index model. ### Stars and Snowflakes: Schemas for Analytics @@ -121,7 +130,7 @@ WHERE dim_product.category IN ('Fresh fruit', 'Candy') GROUP BY dim_date.weekday, dim_product.category; - ``` +``` In transactional databases, storage is "row-oriented", so an entire row needs to be loaded, including columns that aren't used. **column-oriented** storage is better for OLAP, since it only needs to load the columns that are used, which can amount to a lot of space over large datasets. It also allows for better compression, since columns are often similar. @@ -144,5 +153,3 @@ These optimizations are good for reads and make sense in a data-warehouse, but c **Data cubes** are a way to precompute aggregations over multiple dimensions. They are good for speeding up queries, but can be expensive to maintain. Essentially a multi-dimensional array, where each cell is an aggregation over a subset of the dimensions. Very expensive to maintain, and inflexible for queries that aren't covered by the precomputed aggregations. Oftentimes, it makes more sense to store raw data, and then benchmark queries to see which ones are slow, and then precompute aggregations for those queries if they need to be faster. - - diff --git a/designing-data-intensive-applications/part-1-foundations-of-data-systems/ch4-encoding-and-evolution.md b/designing-data-intensive-applications/part-1-foundations-of-data-systems/ch4-encoding-and-evolution.md index 4a9578b..d96de3a 100644 --- a/designing-data-intensive-applications/part-1-foundations-of-data-systems/ch4-encoding-and-evolution.md +++ b/designing-data-intensive-applications/part-1-foundations-of-data-systems/ch4-encoding-and-evolution.md @@ -1,4 +1,12 @@ +--- +title: Encoding, Evolution, and Data Flow in Distributed Systems +category: Distributed Systems +tags: data serialization, schema evolution, compatibility, message passing, encoding formats +description: This document explores various aspects of data encoding and evolution in distributed systems. It covers different serialization formats, schema evolution strategies, and modes of data flow including databases, services, and message passing systems, with a focus on maintaining compatibility as systems change over time. +--- + # Chapter 4 + ## Encoding and Evolution **evolvability**: the ability to evolve as requirements change. @@ -13,7 +21,8 @@ ### Formats for Encoding Data -Programs typically work with at least two different representations of data: +Programs typically work with at least two different representations of data: + - **in-memory data structures** (objects, arrays, hash maps, etc.) - **serialized** (encoded) **bytes** (often stored on disk or sent over the network). @@ -35,11 +44,10 @@ Many built in serialization formats that are included with languages are not per **Avro** Another binary encoding that was made as an alternative to protobuf and thrift for Hadoop. Uses a schema to specify encoding. Has two schema langs: IDL, for human editing, and one similar to JSON, for machine reading. Doesn't use tag numbers or any identifying field info; just lengths and data values. Uses variable length integers to encode lengths. Uses writer/reader schema setup. - ### What makes protobuf, thrift and avro good? -- **Compact structure**: data is encoded as a sequence of fields, each of which contains a key (field tag) and a value. The key indicates the field's name and data type. Field tags are used to identify fields from the schema, and variable length integers are used for the field tags. -- **Schema evolution**: new fields can be added to the schema, but must have a new tag number and either be optional or have a default value. Old code can read data with new fields (ignores new fields), and new code can read data with old fields. Fields can be removed, but only if the field tag is not reused. Fields can be renamed, but only if the field tag is not reused. Fields can be reordered without breaking compatibility. +- **Compact structure**: data is encoded as a sequence of fields, each of which contains a key (field tag) and a value. The key indicates the field's name and data type. Field tags are used to identify fields from the schema, and variable length integers are used for the field tags. +- **Schema evolution**: new fields can be added to the schema, but must have a new tag number and either be optional or have a default value. Old code can read data with new fields (ignores new fields), and new code can read data with old fields. Fields can be removed, but only if the field tag is not reused. Fields can be renamed, but only if the field tag is not reused. Fields can be reordered without breaking compatibility. ### Writer Reader Schema Setup @@ -56,7 +64,6 @@ However, in a database where data is written over a long period of time, you can In an inter-service communication context, schemas can be negotiated between client and server on connection setup. Using a database of schema versions might be a good idea here. - ### Dynamically Generated Schemas **Situation:** Want to dump database to file on disk using a binary encoding format. @@ -69,7 +76,6 @@ This kind of dynamic schema generation was a design goal of Avro, and is less so Keeping a database of schema versions is a good idea, and can be used to generate Avro schemas for each version of the schema. This can be used to generate a schema for each version of the database, and then used to encode/decode data from each version of the database. - ## Modes of Dataflow Generally, one process encodes, and another decodes. @@ -98,8 +104,7 @@ Encoder: client process that sends request to server. Decoder: server process th I'm not even going to get into **SOAP**. -**RPC** is a design philosophy that builds on the idea of calling a function on a remote server. Tries to provide *location transperency* by abstracting network communication when triggering remote method calls. Many are overly complex, and are not compatible with other languages. **gRPC** is a modern RPC framework that uses protobuf as the interface definition language, and HTTP/2 as the underlying protocol. It is a good choice for internal services, but not for public APIs. - +**RPC** is a design philosophy that builds on the idea of calling a function on a remote server. Tries to provide _location transperency_ by abstracting network communication when triggering remote method calls. Many are overly complex, and are not compatible with other languages. **gRPC** is a modern RPC framework that uses protobuf as the interface definition language, and HTTP/2 as the underlying protocol. It is a good choice for internal services, but not for public APIs. #### Problems with RPC @@ -107,7 +112,6 @@ Network requests are fundamentally different from local function calls. They can Furthermore, the platform lock-in of RPC is a problem. This ties you to a specific language, and makes it difficult to use other languages. This is especially true for public APIs, where you have no control over the client. - #### Current Direction of RPC Various RPC frameworks exist on top of all the previously mentioned encodings. New generations of RPC frameworks use futures/promises to represent asynchronous responses, and use streaming to represent long lived connections. Some frameworks also include service discovery, which allows clients to find servers without hardcoding their location. @@ -143,7 +147,6 @@ Several advantages: Usually one way communication, but can be used for request/response. This is useful for decoupling the sender from the receiver, and for handling high volumes of messages. - ### Distributed Actor Frameworks **Actor model**: a model of concurrent computation that treats actors as the universal primitives of concurrent computation. In response to a message that it receives, an actor can: make local decisions, create more actors, send more messages, and determine how to respond to the next message received. Actors are essentially state machines that communicate by sending messages to each other. @@ -155,4 +158,3 @@ The same message passing system is used for communication between actors on the - **Akka** uses Java's serialization by default, but can be configured to use protobuf for rolling upgrades. - **Orleans** uses custom encoding by default, and can be configured to use other encodings. Need to set up and shut down clusters when migrating schemas/versioning. - **Erlang OTP** experimental support for mapping Erlang data types to protobuf. Still need to be careful about schema evolution. - diff --git a/designing-data-intensive-applications/part-2-distributed-data/ch5-replication.md b/designing-data-intensive-applications/part-2-distributed-data/ch5-replication.md index 975a0d1..ea1a9b8 100644 --- a/designing-data-intensive-applications/part-2-distributed-data/ch5-replication.md +++ b/designing-data-intensive-applications/part-2-distributed-data/ch5-replication.md @@ -1,3 +1,10 @@ +--- +title: Replication Strategies in Distributed Data Systems +category: Distributed Systems +tags: data replication, leader-follower model, synchronous vs asynchronous, failover, replication logs +description: This document explores various replication strategies in distributed data systems, focusing on leader-follower models, synchronous and asynchronous replication, and handling node failures. It also discusses different implementations of replication logs and their implications for system consistency and durability. +--- + # Chapter 5 ## Replication diff --git a/designing-data-intensive-applications/part-3-derived-data/ch10-batch-processing.md b/designing-data-intensive-applications/part-3-derived-data/ch10-batch-processing.md index 3bf9b0d..1bda52f 100644 --- a/designing-data-intensive-applications/part-3-derived-data/ch10-batch-processing.md +++ b/designing-data-intensive-applications/part-3-derived-data/ch10-batch-processing.md @@ -1,3 +1,10 @@ +--- +title: Batch Processing Systems and MapReduce Fundamentals +category: Distributed Systems +tags: batch processing, mapreduce, distributed filesystems, data analysis, etl +description: This document explores batch processing systems, focusing on MapReduce and distributed filesystems. It covers Unix tools for log analysis, the MapReduce programming model, and various join techniques in distributed environments. The document also discusses applications of batch processing in search indexing and recommendation systems. +--- + # Chapter 10 ## Batch Processing diff --git a/site/categories/database design.html b/site/categories/database design.html new file mode 100644 index 0000000..e61aad1 --- /dev/null +++ b/site/categories/database design.html @@ -0,0 +1,193 @@ + + + + + + Category: Database Design + + + + + +
+ +

Category: Database Design

+
+ Last modified: 2025-01-01 + +
+
+

Category: Database Design

+ +
+ +
+ + \ No newline at end of file diff --git a/site/categories/database systems.html b/site/categories/database systems.html new file mode 100644 index 0000000..7fb997a --- /dev/null +++ b/site/categories/database systems.html @@ -0,0 +1,193 @@ + + + + + + Category: Database Systems + + + + + +
+ +

Category: Database Systems

+
+ Last modified: 2025-01-01 + +
+
+

Category: Database Systems

+ +
+ +
+ + \ No newline at end of file diff --git a/site/categories/distributed systems.html b/site/categories/distributed systems.html new file mode 100644 index 0000000..e64fdf9 --- /dev/null +++ b/site/categories/distributed systems.html @@ -0,0 +1,195 @@ + + + + + + Category: Distributed Systems + + + + + +
+ +

Category: Distributed Systems

+
+ Last modified: 2025-01-01 + +
+ + +
+ + \ No newline at end of file diff --git a/site/categories/index.html b/site/categories/index.html index 805db80..3fe7c1a 100644 --- a/site/categories/index.html +++ b/site/categories/index.html @@ -186,9 +186,13 @@

Categories

diff --git a/site/categories/software engineering.html b/site/categories/software engineering.html new file mode 100644 index 0000000..d8d39b9 --- /dev/null +++ b/site/categories/software engineering.html @@ -0,0 +1,193 @@ + + + + + + Category: Software Engineering + + + + + +
+ +

Category: Software Engineering

+
+ Last modified: 2025-01-01 + +
+ + +
+ + \ No newline at end of file diff --git a/site/deploy.sh b/site/deploy.sh new file mode 100644 index 0000000..5c06db8 --- /dev/null +++ b/site/deploy.sh @@ -0,0 +1 @@ +python scripts/clean.py && python scripts/build.py . site && git add . && git commit -am 'auto' && git push diff --git a/site/designing-data-intensive-applications/part-1-foundations-of-data-systems/ch1-reliable-scalable-and-maintainable-applications.html b/site/designing-data-intensive-applications/part-1-foundations-of-data-systems/ch1-reliable-scalable-and-maintainable-applications.html index f036e0d..aa184a5 100644 --- a/site/designing-data-intensive-applications/part-1-foundations-of-data-systems/ch1-reliable-scalable-and-maintainable-applications.html +++ b/site/designing-data-intensive-applications/part-1-foundations-of-data-systems/ch1-reliable-scalable-and-maintainable-applications.html @@ -3,8 +3,8 @@ - Ch1 Reliable Scalable And Maintainable Applications - + Fundamentals of Data-Intensive Application Design and Scalability + + + + +
+ +

Tag: batch processing

+
+ Last modified: 2025-01-01 + +
+ + +
+ + \ No newline at end of file diff --git a/site/tags/column-oriented storage.html b/site/tags/column-oriented storage.html new file mode 100644 index 0000000..a38c5bd --- /dev/null +++ b/site/tags/column-oriented storage.html @@ -0,0 +1,193 @@ + + + + + + Tag: column-oriented storage + + + + + +
+ +

Tag: column-oriented storage

+
+ Last modified: 2025-01-01 + +
+
+

Tag: column-oriented storage

+ +
+ +
+ + \ No newline at end of file diff --git a/site/tags/compatibility.html b/site/tags/compatibility.html new file mode 100644 index 0000000..e7d67a2 --- /dev/null +++ b/site/tags/compatibility.html @@ -0,0 +1,193 @@ + + + + + + Tag: compatibility + + + + + +
+ +

Tag: compatibility

+
+ Last modified: 2025-01-01 + +
+ + +
+ + \ No newline at end of file diff --git a/site/tags/data analysis.html b/site/tags/data analysis.html new file mode 100644 index 0000000..3d805a2 --- /dev/null +++ b/site/tags/data analysis.html @@ -0,0 +1,193 @@ + + + + + + Tag: data analysis + + + + + +
+ +

Tag: data analysis

+
+ Last modified: 2025-01-01 + +
+ + +
+ + \ No newline at end of file diff --git a/site/tags/data modeling.html b/site/tags/data modeling.html new file mode 100644 index 0000000..909ad8c --- /dev/null +++ b/site/tags/data modeling.html @@ -0,0 +1,193 @@ + + + + + + Tag: data modeling + + + + + +
+ +

Tag: data modeling

+
+ Last modified: 2025-01-01 + +
+ + +
+ + \ No newline at end of file diff --git a/site/tags/data replication.html b/site/tags/data replication.html new file mode 100644 index 0000000..1e082a9 --- /dev/null +++ b/site/tags/data replication.html @@ -0,0 +1,193 @@ + + + + + + Tag: data replication + + + + + +
+ +

Tag: data replication

+
+ Last modified: 2025-01-01 + +
+ + +
+ + \ No newline at end of file diff --git a/site/tags/data serialization.html b/site/tags/data serialization.html new file mode 100644 index 0000000..46bfad7 --- /dev/null +++ b/site/tags/data serialization.html @@ -0,0 +1,193 @@ + + + + + + Tag: data serialization + + + + + +
+ +

Tag: data serialization

+
+ Last modified: 2025-01-01 + +
+ + +
+ + \ No newline at end of file diff --git a/site/tags/data structures.html b/site/tags/data structures.html index dd2287e..1505a9e 100644 --- a/site/tags/data structures.html +++ b/site/tags/data structures.html @@ -185,7 +185,8 @@

Tag: data structures

Tag: data structures

+
  • Introduction to Undirected Graphs and Their Properties
  • +
  • Storage and Retrieval Techniques for Database Systems
  • diff --git a/site/tags/data systems.html b/site/tags/data systems.html new file mode 100644 index 0000000..9693aa1 --- /dev/null +++ b/site/tags/data systems.html @@ -0,0 +1,193 @@ + + + + + + Tag: data systems + + + + + +
    + +

    Tag: data systems

    +
    + Last modified: 2025-01-01 + +
    + + +
    + + \ No newline at end of file diff --git a/site/tags/distributed filesystems.html b/site/tags/distributed filesystems.html new file mode 100644 index 0000000..5011933 --- /dev/null +++ b/site/tags/distributed filesystems.html @@ -0,0 +1,193 @@ + + + + + + Tag: distributed filesystems + + + + + +
    + +

    Tag: distributed filesystems

    +
    + Last modified: 2025-01-01 + +
    +
    +

    Tag: distributed filesystems

    + +
    + +
    + + \ No newline at end of file diff --git a/site/tags/document databases.html b/site/tags/document databases.html new file mode 100644 index 0000000..65fd614 --- /dev/null +++ b/site/tags/document databases.html @@ -0,0 +1,193 @@ + + + + + + Tag: document databases + + + + + +
    + +

    Tag: document databases

    +
    + Last modified: 2025-01-01 + +
    +
    +

    Tag: document databases

    + +
    + +
    + + \ No newline at end of file diff --git a/site/tags/encoding formats.html b/site/tags/encoding formats.html new file mode 100644 index 0000000..e328145 --- /dev/null +++ b/site/tags/encoding formats.html @@ -0,0 +1,193 @@ + + + + + + Tag: encoding formats + + + + + +
    + +

    Tag: encoding formats

    +
    + Last modified: 2025-01-01 + +
    + + +
    + + \ No newline at end of file diff --git a/site/tags/etl.html b/site/tags/etl.html new file mode 100644 index 0000000..f1fb921 --- /dev/null +++ b/site/tags/etl.html @@ -0,0 +1,193 @@ + + + + + + Tag: etl + + + + + +
    + +

    Tag: etl

    +
    + Last modified: 2025-01-01 + +
    + + +
    + + \ No newline at end of file diff --git a/site/tags/failover.html b/site/tags/failover.html new file mode 100644 index 0000000..a0e827f --- /dev/null +++ b/site/tags/failover.html @@ -0,0 +1,193 @@ + + + + + + Tag: failover + + + + + +
    + +

    Tag: failover

    +
    + Last modified: 2025-01-01 + +
    + + +
    + + \ No newline at end of file diff --git a/site/tags/graph databases.html b/site/tags/graph databases.html new file mode 100644 index 0000000..757647d --- /dev/null +++ b/site/tags/graph databases.html @@ -0,0 +1,193 @@ + + + + + + Tag: graph databases + + + + + +
    + +

    Tag: graph databases

    +
    + Last modified: 2025-01-01 + +
    + + +
    + + \ No newline at end of file diff --git a/site/tags/index.html b/site/tags/index.html index fda8c83..f6157d0 100644 --- a/site/tags/index.html +++ b/site/tags/index.html @@ -190,22 +190,36 @@

    Tags

  • algorithms (2 pages)
  • approximation (1 pages)
  • asymptotic notation (1 pages)
  • +
  • batch processing (1 pages)
  • bipartite graphs (1 pages)
  • bipartite matching (1 pages)
  • breadth-first search (2 pages)
  • +
  • column-oriented storage (1 pages)
  • +
  • compatibility (1 pages)
  • complexity analysis (1 pages)
  • complexity-analysis (1 pages)
  • connected components (1 pages)
  • connected graphs (1 pages)
  • -
  • data structures (1 pages)
  • +
  • data analysis (1 pages)
  • +
  • data modeling (1 pages)
  • +
  • data replication (1 pages)
  • +
  • data serialization (1 pages)
  • +
  • data structures (2 pages)
  • +
  • data systems (1 pages)
  • depth first search (1 pages)
  • depth-first search (1 pages)
  • +
  • distributed filesystems (1 pages)
  • +
  • document databases (1 pages)
  • dynamic-programming (1 pages)
  • efficiency (1 pages)
  • +
  • encoding formats (1 pages)
  • +
  • etl (1 pages)
  • +
  • failover (1 pages)
  • ford-fulkerson algorithm (1 pages)
  • gale-shapley (1 pages)
  • graph (1 pages)
  • graph coloring (1 pages)
  • +
  • graph databases (1 pages)
  • graph fundamentals (1 pages)
  • graph properties (2 pages)
  • graph representation (1 pages)
  • @@ -215,24 +229,38 @@

    Tags

  • graph-traversal (1 pages)
  • greedy-algorithms (1 pages)
  • independent set (1 pages)
  • +
  • indexing (1 pages)
  • induction (1 pages)
  • induction proofs (1 pages)
  • interval (1 pages)
  • +
  • leader-follower model (1 pages)
  • linear programs (1 pages)
  • linear systems (1 pages)
  • +
  • maintainability (1 pages)
  • +
  • mapreduce (1 pages)
  • matching (1 pages)
  • max flow min cut (1 pages)
  • +
  • message passing (1 pages)
  • odd cycles (1 pages)
  • +
  • oltp vs olap (1 pages)
  • optimization (3 pages)
  • partitioning (1 pages)
  • +
  • performance (1 pages)
  • pigeonhole principle (1 pages)
  • problem-solving (1 pages)
  • proof techniques (2 pages)
  • +
  • query languages (1 pages)
  • +
  • relational databases (1 pages)
  • +
  • reliability (1 pages)
  • +
  • replication logs (1 pages)
  • +
  • scalability (1 pages)
  • scheduling (1 pages)
  • +
  • schema evolution (1 pages)
  • set cover (1 pages)
  • shortest-paths (1 pages)
  • spanning trees (1 pages)
  • stable matching (1 pages)
  • +
  • synchronous vs asynchronous (1 pages)
  • time complexity (1 pages)
  • trees (1 pages)
  • vertex cover (2 pages)
  • diff --git a/site/tags/indexing.html b/site/tags/indexing.html new file mode 100644 index 0000000..1e54bfa --- /dev/null +++ b/site/tags/indexing.html @@ -0,0 +1,193 @@ + + + + + + Tag: indexing + + + + + +
    + +

    Tag: indexing

    +
    + Last modified: 2025-01-01 + +
    + + +
    + + \ No newline at end of file diff --git a/site/tags/leader-follower model.html b/site/tags/leader-follower model.html new file mode 100644 index 0000000..24d3c7a --- /dev/null +++ b/site/tags/leader-follower model.html @@ -0,0 +1,193 @@ + + + + + + Tag: leader-follower model + + + + + +
    + +

    Tag: leader-follower model

    +
    + Last modified: 2025-01-01 + +
    +
    +

    Tag: leader-follower model

    + +
    + +
    + + \ No newline at end of file diff --git a/site/tags/maintainability.html b/site/tags/maintainability.html new file mode 100644 index 0000000..78a2ce8 --- /dev/null +++ b/site/tags/maintainability.html @@ -0,0 +1,193 @@ + + + + + + Tag: maintainability + + + + + +
    + +

    Tag: maintainability

    +
    + Last modified: 2025-01-01 + +
    + + +
    + + \ No newline at end of file diff --git a/site/tags/mapreduce.html b/site/tags/mapreduce.html new file mode 100644 index 0000000..c9b81bb --- /dev/null +++ b/site/tags/mapreduce.html @@ -0,0 +1,193 @@ + + + + + + Tag: mapreduce + + + + + +
    + +

    Tag: mapreduce

    +
    + Last modified: 2025-01-01 + +
    + + +
    + + \ No newline at end of file diff --git a/site/tags/message passing.html b/site/tags/message passing.html new file mode 100644 index 0000000..f0a177a --- /dev/null +++ b/site/tags/message passing.html @@ -0,0 +1,193 @@ + + + + + + Tag: message passing + + + + + +
    + +

    Tag: message passing

    +
    + Last modified: 2025-01-01 + +
    + + +
    + + \ No newline at end of file diff --git a/site/tags/oltp vs olap.html b/site/tags/oltp vs olap.html new file mode 100644 index 0000000..e716cfd --- /dev/null +++ b/site/tags/oltp vs olap.html @@ -0,0 +1,193 @@ + + + + + + Tag: oltp vs olap + + + + + +
    + +

    Tag: oltp vs olap

    +
    + Last modified: 2025-01-01 + +
    + + +
    + + \ No newline at end of file diff --git a/site/tags/performance.html b/site/tags/performance.html new file mode 100644 index 0000000..0c24de1 --- /dev/null +++ b/site/tags/performance.html @@ -0,0 +1,193 @@ + + + + + + Tag: performance + + + + + +
    + +

    Tag: performance

    +
    + Last modified: 2025-01-01 + +
    + + +
    + + \ No newline at end of file diff --git a/site/tags/query languages.html b/site/tags/query languages.html new file mode 100644 index 0000000..d4d3751 --- /dev/null +++ b/site/tags/query languages.html @@ -0,0 +1,193 @@ + + + + + + Tag: query languages + + + + + +
    + +

    Tag: query languages

    +
    + Last modified: 2025-01-01 + +
    + + +
    + + \ No newline at end of file diff --git a/site/tags/relational databases.html b/site/tags/relational databases.html new file mode 100644 index 0000000..6034551 --- /dev/null +++ b/site/tags/relational databases.html @@ -0,0 +1,193 @@ + + + + + + Tag: relational databases + + + + + +
    + +

    Tag: relational databases

    +
    + Last modified: 2025-01-01 + +
    +
    +

    Tag: relational databases

    + +
    + +
    + + \ No newline at end of file diff --git a/site/tags/reliability.html b/site/tags/reliability.html new file mode 100644 index 0000000..3e6bf92 --- /dev/null +++ b/site/tags/reliability.html @@ -0,0 +1,193 @@ + + + + + + Tag: reliability + + + + + +
    + +

    Tag: reliability

    +
    + Last modified: 2025-01-01 + +
    + + +
    + + \ No newline at end of file diff --git a/site/tags/replication logs.html b/site/tags/replication logs.html new file mode 100644 index 0000000..a93d73a --- /dev/null +++ b/site/tags/replication logs.html @@ -0,0 +1,193 @@ + + + + + + Tag: replication logs + + + + + +
    + +

    Tag: replication logs

    +
    + Last modified: 2025-01-01 + +
    + + +
    + + \ No newline at end of file diff --git a/site/tags/scalability.html b/site/tags/scalability.html new file mode 100644 index 0000000..cfc0dc6 --- /dev/null +++ b/site/tags/scalability.html @@ -0,0 +1,193 @@ + + + + + + Tag: scalability + + + + + +
    + +

    Tag: scalability

    +
    + Last modified: 2025-01-01 + +
    + + +
    + + \ No newline at end of file diff --git a/site/tags/schema evolution.html b/site/tags/schema evolution.html new file mode 100644 index 0000000..71c1a2f --- /dev/null +++ b/site/tags/schema evolution.html @@ -0,0 +1,193 @@ + + + + + + Tag: schema evolution + + + + + +
    + +

    Tag: schema evolution

    +
    + Last modified: 2025-01-01 + +
    + + +
    + + \ No newline at end of file diff --git a/site/tags/synchronous vs asynchronous.html b/site/tags/synchronous vs asynchronous.html new file mode 100644 index 0000000..5f96605 --- /dev/null +++ b/site/tags/synchronous vs asynchronous.html @@ -0,0 +1,193 @@ + + + + + + Tag: synchronous vs asynchronous + + + + + +
    + +

    Tag: synchronous vs asynchronous

    +
    + Last modified: 2025-01-01 + +
    +
    +

    Tag: synchronous vs asynchronous

    + +
    + +
    + + \ No newline at end of file