개발하면서/타인글보면서
-
Improving key expiration in Redis를 읽고개발하면서/타인글보면서 2019. 4. 21. 14:04
https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/improving-key-expiration-in-redis.html Improving Key Expiration in Redis After updating to a new Redis version the Cache team saw a regression. This goes over the investigation and our conclusions. blog.twitter.com 얼마 전 Twitter 블로그에 Redis expire 기능을 개선했다는 글이 올라와 주말 동안 읽고 정리하고자 합니다. 블로그 요약(?)만 하려고 했는데 3.2 activeExpireCycle 함수에 ..
-
Parquet 파일 잘 써보기개발하면서/타인글보면서 2018. 12. 2. 17:36
https://www.dremio.com/tuning-parquet Dremio is the Data-as-a-Service Platform. Get more value from your data, faster. Dremio makes your data engineers more productive, and your data consumers more self-sufficient. www.dremio.com Parquet 파일 하나는 1개 이상의 Row group이 있고 Row group은 Column 별로 저장되어있다. Row group 크기를 크게 하면 Column 데이터가 연속적으로 저장이 되는 부분이 커져 연산 속도나 압축 효율이 좋아진다. 하지만 Disk block 크기까지 고려한다면…. A: ..
-
Tapjoy에서 실시간으로 중복 제거하기개발하면서/타인글보면서 2017. 8. 2. 21:29
메시지 전송은 3가지 타입이 존재한다. at-most-once at-least-once at-exactly-once at-most-once은 유실이 있어도 괜찮을 때 사용하고 대부분 at-least-once(유실은 없지만 중복 존재)를 사용한다. 하지만 메시지 처리된 결과가 고객의 돈과 관련된 경우(금융, 광고 집행비 등) at-least-once로 메시지 전송이 이루어진다면 회사 운영에 큰 어려움이 생길 것이다. 개발자 유우머에도 있는 메시지 전송 타입 https://twitter.com/mathiasverraes/status/632260618599403520 Mathias Verraes on Twitter “There are only two hard problems in distributed syst..
-
[Redis] Hacking Strings개발하면서/타인글보면서 2012. 7. 31. 18:39
https://redis.io/topics/internals-sds Hacking Strings Redis에서 사용하는 strings는 sds.c에 구현되어 있습니다. (sds는 Simple Dynamic String의 약자다) sds.h에 sdshdr C 구조체로 정의되어있습니다. struct sdshdr { long len; long free; char buf[]; } character형 배열 buf는 실제 문자열이 저장되는 공간입니다. len은 buf에 실제로 저장된 문자열 길이를 저장하고 있고, 이 필드로 인해 문자열의 길이를 조회하는 건 O(1)로 할 수 있습니다. free는 buf에서 추가적으로 사용 가능한 공간을 저장합니다. len과 free 필드는 buf의 메타데이터를 저장하고 있다고 생각..
-
Kernel Coding style개발하면서/타인글보면서 2012. 3. 21. 06:04
이번 포스트는 직독직해를 한게 아니라 내용중에 제가 필요한 부분만 적어보았습니다. 요새 고민하는게 있습니다. 무언가 배울때 생각하면서 배워야한다는점. 무조건 배우려고 하는건 아닌것같아요 : ) 이게 내가 능력도 안되는데 마냥 하고싶은건가, 해야되는건가, 하면 좋은건가! 뭐 이런 생각들이요 ㅎㅎ 잘못 썼거나 추가하면 좋은 글이 있다면 알려주시면 감사하겠습니다. Kernel Coding style 1. indentation 탭은 8글자, identation도 8글자 누군가는 8글자가 너무 오른쪽으로 치우지게 하는것 아니냐고 불평할수도 있다. 깊이 {, }가 3 이상일때 그렇게 되는데 해주고 싶은 말은, 프로그램을 고쳐라. (depth가 3 이상인건 잘못됐다는뜻;; 난 여차하면 4이상인데.....후덜덜) 한줄..
-
[Redis] Persistence개발하면서/타인글보면서 2011. 4. 4. 23:32
Snapshotting Redis는 기본적으로 binary 파일, dump.rdb에 dataset의 snapshot을 저장한다.dataset에 최소 M번 변경된 경우에 매 N초마다 dataset을 저장할수 있게 Redis를 조절할 수 있다. 또는 당신이 SAVE, BGSAVE 명령어를 이용하여 수동으로 조절할수있다. key값들이 최소 1000번 변경된 경우에 60초마다 Redis가 자동으로 dataset을 disk에 백업하는 예는 다음과 같다. save 60 1000 이 전략은 아시다시피 snapshotting. 라고 한다. How it works 다음과 상황이 발생하면 Redis는 dataset을 디스크에 백업을 하게된다. Redis forks. 이젠 자식과 부모 프로세스 두개가 존재한다. 자식프로세스..
-
[Redis] Internals개발하면서/타인글보면서 2011. 4. 2. 00:35
Redis의 소스코드는 매우 크지 않다. (2.2 release에서는 2만라인밖에 안됩니다.) 그리고 우리는 최대한 단순하고 쉽게 이해하도록 하기 위해 엄청 노력했다.하지만 우리는 Redis의 내부 동작을 설명하는 몇개의 문서가 있다. Redis의 동적 문자열 문자열은 Redis의 기본적인 블럭 단위이다.Redis는 key-value 저장소이다. Redis의 모든 key는 문자열이며 value 또한 단순한 문자열 이다.List, Set, 정렬 Set, Hash이나 더 복잡한 value도 문자열로 구성 되어있다. Hacking Strings 페이지는 Redis의 문자열의 세부적인 구현을 어떻게 했는지 설명했다. Redis Virtual Memory 가상메모리 구현에 대해 자세히 설명한 문서가 있다. 경고 ..
-
월스트리트인스티튜트 샘 워깅턴 강사가 추천 초보영어회화 정복 10계명개발하면서/타인글보면서 2009. 12. 18. 23:00
1. 영어 공부중임을 잊지 말라_ 늘 본인이 영어 공부 중이라는 사실을 명심하자. 2. 연습만이 살 길이다_ 영어 공부에 왕도는 없다. 연습 하는 과정에서 자연스럽게 습득하는 것이다. 연습량과 실력은 비례한다. 3. 실수를 두려워하지 말라_ 실수로부터 배우는 것이 많다. 실수가 두려워 말을 안 하는 것보다 실수를 통해 부족한 부분을 보완해 가는 것이 좋다. 4. 영어로 생각하라_ 늘 머릿속에서 영어로 문장을 말하는 연습을 하라. 또한 영어 단어를 떠올리는것도 잊어선 안 된다. 5. 처음부터 욕심내지 말라_ 간단한 표현을 놔두고 어려운 영어 표현을 쓰면 부담만 커진다. 6. 독서하라_ 항상 영어 책을 곁에 두고 읽으면서 문장과 가까워져라. 7. 문맥을 잡아라_ 처음부터 끝까지 모든 것을 이해하려고 집착하기..