O que se pode dizer sobre a otimização do plano de consulta? MVCC Existe uma tabela CREATE TABLE orders ( id BIGSERIAL PRIMARY KEY, status TEXT, updated_at TIMESTAMP ); e uma consulta que é executada a cada segundo UPDATE orders SET status = 'processed', updated_at = now() WHERE id = 1; Após alguns dias, você percebe: • o tamanho da tabela cresceu bastante • a consulta SELECT * FROM orders WHERE id = 1 está mais lenta Perguntas para o candidato 1. Por que a tabela cresce, mesmo que a linha seja sempre a mesma? 2. Qual é o papel do MVCC nesta situação? 3. O que deveria resolver esse problema?
C#
O que é IAsyncDisposable?
Conhece vacuum e vacuum full?
O que irá imprimir o programa com async/await: main imprime A, chama saySomething (estático, retorna Task), espera 5 segundos, depois D?
Tipos de transações / níveis de isolamento?
O que o programa exibirá se throw for descomentado nos locais indicados?
Qual é outro problema com multithreading no método Init?
Com o Linq2DB não funcionava?
Como tornar uma classe iterável?
Qual foi o stack de tecnologias utilizado?
IMemoryCache — o que é e quando usar?
Revisão: código aplicado A classe contém a lógica para processar novos pedidos. Extrai os pedidos e as posições do banco de dados, depois faz uma chamada HTTP a um microserviço externo Stock, que reserva os produtos de acordo com as posições do pedido. Se todas as reservas forem bem-sucedidas, o microserviço confirma a reserva do pedido em Stock e marca o pedido como processado. O microserviço é executado em várias instâncias, portanto o método Process pode ser executado em paralelo. Para evitar processar as mesmas linhas, utiliza-se um mecanismo de bloqueio pesimista no PostgreSQL Select for update ... skip locked. A implementação de IBus envia mensagens ao RabbitMq. ```csharp public sealed class PendingOrdersProcessor { public async Task PendingOrdersProcessor(ILogger logger, IBus bus, HttpStockService st { var env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"); var cs = _cs[env]; _db = new OrdersRepository(cs); _bus = bus; logger = logger; ``` ```csharp _stockService = stockService; } private readonly ILogger _logger; private readonly IOrdersRepository _db; private readonly IStockService _stockService; private readonly IBus _bus; private static readonly Dictionary<string, string> _cs = new { { "Development", "User ID=root;Password=myPassword;Host=localhost;Port=5432;Database=myDataBase" }, { "Production", "User ID=root;Password=myPassword;Host=prod-db;Port=5432;Database=" "Pooling=true;Min Pool Size=0;Max Pool Size=1;" } }; ```
Quando ocorre o encerramento (closure)?
Fale sobre o seu último emprego — Severstal. O que fazia, quanto tempo trabalhou lá, qual era a tecnologia?
Por que uma struct não pode herdar?
Qual é o tamanho de memória de uma instância de Date em sistemas de 32 e 64 bits?
Como corrigir para exibir 0-9?
IMemoryCache Quais são as vantagens e desvantagens de usar IMemoryCache numa aplicação? O que é o top 10 da OWASP? Métricas de código 1. Que métricas de qualidade de código conhece? 2. Já as usou? 3. Como as calculou? 4. Fazem parte do CI ou são ad hoc? Carga O que faria se o seu serviço (página web) ficar preso num ambiente de teste ou de carga, mas localmente tudo funciona?
Como funcionam as transações com versões no MVCC?
Por que uma aplicação com base de dados funciona num ambiente e degrada-se noutro?