A

Artem Krylysov

artem.krylysov.com · Personal blog · on HN since 2015

Artem Krylysov writes about databases, search engines and performance, including Go and Python, with posts on RocksDB internals.

What HN saysHN links his RocksDB and full-text search engine posts as explanations of database internals; one commenter quibbles with his use of the word 'process' for a thread.
17HN people shared it
6linked it in comments
21stories submitted
589story points
3 months agolast shared
2015people per year2026

Most-shared posts

  1. 1
    Let's build a full-text search engine
    8 people · 415 points · first shared 2020 · 72 comments on HN
  2. 2
    How RocksDB Works
    4 people · 4 points · first shared 2023 · discussion on HN
  3. 3
    Benchmark of Python JSON libraries
    4 people · 2 points · first shared 2015 · discussion on HN
  4. 4
    Timeseries Indexing at Scale
    2 people · 99 points · first shared 2024 · 14 comments on HN
  5. 5
    Profiling and optimizing Go web applications
    2 people · 4 points · first shared 2017 · discussion on HN
  6. 6
    How MVCC and Transactions Work in RocksDB
    2 people · 3 points · first shared 2026 · discussion on HN
  7. 7
    Porting Go Web Applications to AWS Lambda
    1 people · 55 points · first shared 2018 · 6 comments on HN
  8. 8
    String interning in Go
    1 people · 5 points · first shared 2018 · discussion on HN
  9. 9
    Handling C++ exceptions in Go
    1 people · 2 points · first shared 2017 · discussion on HN
  10. 10
    Blog
    1 people · first shared 2023

What HN people wrote when they linked it

ZephyrBlu · 2024-04-05
What a surprise that you are also a reader of books rather than other content: https://www.goodreads.com/user/show/7288759-vasco Reading a book is arguably easier than reading technical content or other articles, because they don't tend to be as information dense. I prefer reading things like this: https://commoncog.com/becoming-data-driven-in-business/ But someone might like reading documentation for e.g. databases, which is also extremely information dense. I have briefly done this (https://turbopuffer.com/docs) and read other database content (https://artem.krylysov.com/blog/2023/04/19/how-rocksdb-works/), but it's not my favourite content. Really weird to say "you read X, I read Y. We are not the same" and then follow-up with "oh but it's fine, you don't have to. But I'm X and you're Y". I could replace a few words in your comment and make it about thinking reading books is the same as reading extremely dense technical content. It's a silly argument.
KAdot · 2023-07-04
https://artem.krylysov.com/blog/ I'm writing mostly about databases and performance. My last two posts: - How RocksDB works https://artem.krylysov.com/blog/2023/04/19/how-rocksdb-works/ - Let's build a Full-Text Search engine https://artem.krylysov.com/blog/2020/07/28/lets-build-a-full-text-sear…
remram · 2023-04-20
It's a thread: https://artem.krylysov.com/blog/2023/04/19/how-rocksdb-works/#flush > RocksDB runs a dedicated background thread that persists immutable memtables to disk. They are using "process" to mean "mechanism", something that happens, not a literal OS process. I agree that it's a bit confusing to use the word both ways.
sirn · 2017-01-19
> However, once you're out of the unrealistic scenarios (single query benchmarks, etc.), it doesn't do that well[1]. I'm curious about the result since it didn't matched my experience. So I proceed to take a look at the source code for both Pyramid's[1] and Django's[2] benchmarks. From the look of it, I feel like there are too much difference in implementation to call this a realistic comparison. From a quick glance, Django's benchmark seems to contain a little bit of micro-optimization and is rendering JSON response directly with uJSON[3] (which looks to be a lot faster than native JSON module)[4], while Pyramid's benchmark did not seems to go through any optimizations and is returning a list of SQLAlchemy objects that get passed into a custom renderer[5]¹ and render using native JSON module. So I don't think it's entirely fair to say Pyramid is slow in a real world scenario based on this benchmark alone. [1]: https://github.com/TechEmpower/FrameworkBenchmarks/blob/c8a551c4aec625… [2]: https://github.com/TechEmpower/FrameworkBenchmarks/blob/c8a551c4aec625… [3]: https://pypi.python.org/pypi/ujson [4]: http://artem.krylysov.com/blog/2015/09/29/benchmark-python-json-librar… [5]:…
lima · 2016-11-11
Some research on most of the projects which don't: supervisor: Application supervisor, not a widely used library - it's probably in the top 360 since people install it using pip instead of the distro's package manager carbon, graphite-web and diamond: Components of the time series DB Graphite, see supervisor Thrift: Apparently there's a Python 3 pull request? [1] ansible: Difficult story since they have to support old systems which only support Python 2, so no point in migrating to Python 2 until those are no longer in use (that includes Python 2.4!). This is a really unique use case for Python so it's hard to compare it to the rest. The part of Ansible which runs on the controller has been ported already [2]. google-apputils: There are Debian packages for Python 3, so probably missing the PyPi metadata [3]. Appears to be unmaintained. aspen: Niche web framework. They seem to be working on Python 3 support [4]. newrelic_plugin_agent: see supervisord python-cjson: Unmaintained drop-in JSON library that can be replaced with something else with no effort [5]. python-openid: There's a Python 3 fork which looks nicer than the original [6]. m2crypto: Porting effort underway, but mostly an issue for existing cde - there's no reason to use it for new projects since python-cryptography is better in all regards python-ldap: Issue for many enterprise Django projects (this is the one library in the list that I personally use), but there's a Python 3 fork so it's fine…
jsmthrowaway · 2016-07-28
The counterpoint being Python simplejson vs json. Most working Python developers I know try simplejson first (when they are not controlling dependencies in the environment) and fall back to stdlib json because simplejson got much faster as it evolved outside of the standard library[0]. Most who don't know this go the other way[1]. There are a number of counterpoints in Python, in fact, which epitomizes the "standard library is where code goes to die" thing. Adding modules to the standard library in Python is, more often than not, overall a bad thing for the module. Python has not historically been awesome with standard library quality, either; see Java-style logging and unittest (I mean naming, not "Java idiomatic," which I think is fine for both). This comes down to release cycles for the language, mostly. So I think API stability is a bit of a red herring when discussing Python, at least. I tend to appreciate languages where I can remove the entire standard library and "start over," like C. (Yes, you can.) This can be good for a number of things: porting, embedding, frameworks, and so on. [0]: http://artem.krylysov.com/blog/2015/09/29/benchmark-python-json-librar… [1]: https://github.com/search?q=simplejson+ImportError&type=Code&u…

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close