Serpent7776

joined 2 years ago
 

I encounter memory corruption issue at work coming from a signal handler and decided to write a blog post about it. Feedback welcome.

 

Example usage:

-- Register with default settings (41 timestamp bits, 10 type bits, 12 counter bits)
CALL snowflake.register('user_id');

-- Generate a user ID
SELECT snowflake.generate_user_id(now(), 1, 1);

-- Register with custom bit allocation
CALL snowflake.register('order_id', 42, 8, 13);

-- Generate an order ID with specific type and counter
SELECT snowflake.generate_order_id('2023-12-01 10:30:00 UTC', 5, 1000);
 

Crawlio is a simple C tool that slows down I/O operations by adding a specified amount of time to each I/O call. It uses LD_PRELOAD.

  • Test application behaviour under slow I/O conditions
  • Bring back the dial-up nostalgia
  • Learn how to use LD_PRELOAD
 

I'm doing an extension that creates a pool of named background workers. Happy to hear any feedback on this.

CREATE EXTENSION pg_worker_pool;
CALL worker_pool.submit('foo', 'create index myindex_1 on my_big_table (id)');
CALL worker_pool.submit('foo', 'create index myindex_1 on my_big_table (name)');
CALL worker_pool.submit('bar', 'create index otherindex_2 on other_big_table (author)');
CALL worker_pool.submit('bar', 'create index otherindex_2 on other_big_table (title)');

This will start two background workers, foo and bar. foo will create an indices on table my_big_table and bar on table other_big_table. foo and bar will run independently of each other, but all indices submitted to the same worker will be created in order.

 

A blog post shows an example usage of hyperfine CLI tool to measure and plot time of startup and shutdown of several code interpreters.