Tình cờ trong lúc lướt facebook xem review phim thì thấy 1 post của team Grokking Việt Nam về sự khác nhau giữa sharding và partitioning, tò mò nên search đọc thử và tranh thủ note vài dòng
Tháng: Tháng Ba 1
[ElasticSearch] Có gì ở bên trong một cluster (Life inside a cluster)
Lưu ý: bài viết hiện đang lấy kiến thức từ version ES 1.6. Có thể một số phần sẽ không như các version hiện tại. Mình đang tìm hiểu thêm và sẽ update vào bài viết. Thank Trọng Đức đã chia sẻ 😍
Cái tiêu đề “Life inside a cluster” quá hay. Mình xin phép giữ nguyên.
ES The Definitive guide
Làm việc với ES nhiều nhưng tớ vẫn bị mông lung giữa các khái niệm: cluster, node, shard. Nhân dịp làm con tính năng sort, tìm hiểu kĩ hơn về các khái niệm này.
Dưới đây là 1 số note của tớ về ba khái niệm này.
Recommend anh em tìm cuốn ES The Definitive guide của nhà sách O’Reilly để đọc. The best!
Tiếp tục đọc[ElasticSearch] Nghệ thuật xử lý conflict
Đợt này cần làm nhiều tới Elastic Search nên tớ quyết định đọc sách để hiểu sâu hơn về cách ES hoạt động, các best practice cho ứng dụng.
Cuốn sách tớ đọc là “Elastic Search – The definitive guide”.
Quyển này viết ở thời điểm version ES khá cũ (1.4) trong khi hiện tại đã là version 7 rồi. Nhưng tớ vẫn đọc, vì thích sách của O’Reilly và cũng muốn hiểu hơn về ES thời cổ đại trông nó thế nào =))
Hôm nay đọc đến đoạn xử lý conflict, thấy khá hay nên note nhanh vài dòng.
Tiếp tục đọc[2021] Tháng 2, 3
Hôm nay cũng có nhiều việc, nên đá qua nhanh thôi.
Nhân một vài cuộc trò chuyện trong ngày.
Đây cũng là 1 post đặc biệt: Post thứ 100.
Tiếp tục đọc[Thuật toán] Tìm phần tử bị lặp lại từ 1 đến n-1
Bài này mình đọc và dịch từ GeeksForGeeks
Đề bài
Cho 1 mảng kích thước n (n > 0), chứa các số từ 1 đến n-1. Trong mảng có duy nhất 1 phần tử bị lặp lại. Tìm phần tử đó
Hướng xử lý
Có 5 cách
- Cách 1: Dùng 2 vòng for lồng nhau, check nếu thấy phần tử bị lặp lại thì return
- Cách 2: Dùng hashmap để đếm số lần xuất hiện. Thằng nào xuất hiện 2 lần thì in ra.
- Cách 3: Dùng tính chất của tổng: tổng từ 1 đến n là n*(n+1)/2 => tổng từ 1 đến n-1 là (n-1)*n/2. Phần tử bị lặp lại sẽ làm cho tổng của dãy dư ra 1 lượng đúng bằng phần tử đấy => lấy tổng dãy – (tổng từ 1 đến n – 1) là ra
- Cách 4: Dùng tính chất phép XOR: Vì dãy số liên tục từ 1 đến n-1 => (1^2^…^n-1) ^ (arr[0]^arr[1]^…arr[n-1]) sẽ ra đúng phần tử bị dư này.
- Cách 5: Dùng giá trị âm để đánh dấu lại.
[TIL – PostgreSQL] Tăng tốc 50 lần cho PostgreSQL chỉ với 1 config nhỏ
TL; DR
Nếu server của bạn dùng SSD thì hãy thử thay đổi config của random_page_cost về 1. Vì SSD thì tốc độ truy xuất ngẫu nhiên và truy xuất tuần tự gần như tương đương => Postgre tính query plan sẽ chuẩn hơn.
Tiếp tục đọc[Thuật toán] Tìm phần tử chỉ xuất hiện 1 lần trong mảng (các phần tử khác xuất hiện 2 lần)
Bài này tớ bếch từ GeeksForGeeks về: https://www.geeksforgeeks.org/find-element-appears-array-every-element-appears-twice/
Đề bài
Cho 1 mảng các số nguyên dương. Các phần tử đều xuất hiện 2 lần, chỉ duy nhất 1 phần tử xuất hiện 1 lần. Hãy tìm thằng lạc loài đó
Tiếp tục đọc[LeetCode] #231 – Power of two (lũy thừa của 2)
Đề bài
Đề bài gốc: link
Cho 1 số n. Trả về true nếu n là lũy thừa của 2, false nếu không phải
Tiếp tục đọc[Thuật toán] Đổi giá trị (swap) 2 phần tử không cần dùng biến tạm bằng ba cách
Giả sử có 2 số a, b. Có 3 cách để thay đổi giá trị của hai phần tử mà không cần dùng thêm biến tạm
- Dùng tính chất phép cộng, trừ
- Dùng tính chất phép nhân, chia
- Dùng tính chất phép XOR -> cách hay nhất, ko sợ tràn số
[LeetCode] #338 – Counting bit (đếm bit)
Đề bài
Link gốc leet code: https://leetcode.com/problems/counting-bits/
Cho 1 số n.
In ra 1 mảng là số lượng bit 1 của các số từ 0 đến n.
VD: n = 4
0 = 0000 -> có 0 bit 1
1 = 0001 -> có 1 bit 1
2 = 0010 -> có 1 bit 1
3 = 0011 -> có 2 bit 1
4 = 0100 -> có 1 bit 1
=> Kết quả: [0, 1, 1, 2, 1]