diff --git a/db/sql/postgres/docs/books.txt b/db/sql/postgres/docs/books.txt index 0bb0aa766..b838d131b 100644 --- a/db/sql/postgres/docs/books.txt +++ b/db/sql/postgres/docs/books.txt @@ -12,8 +12,11 @@ Rogov - PostgreSQL 16 Internals ru Lesovsky - Monitoring PostgreSQL ru 0918352909AF136EE97DFC29AD5B2994 https://nnmclub.to/forum/viewtopic.php?t=1710482 +Suzuki - The Internals of PostgreSQL + https://www.interdb.jp/pg/index.html DombrovskayaNovikovBailiekova - PostgreSQL Query Optimization 2nd ed 3521A8CEC5CB2336367A1947715FE801 + ! from p248 Komarov - DB Roadmap ru of p521 33DC59667E2408E5BF0129885E59C007 2023 @@ -48,10 +51,12 @@ NovikovGorshkova - DB Technology Fundamentals ru 2018 Morgunov - PostgreSQL Language Fundamentals ru 2017 -Morgunov - SQL Basic Course ru -Juba - Learning PostgreSQL 10 2nd ed +Vasiliev - PG Tuning and Scalability ru + https://postgresql.leopard.in.ua/html/#pf8 Luzanov https://postgrespro.ru/media/2017/06/06/introbook_v3finalrelease1-text.pdf +Morgunov - SQL Basic Course ru +Juba - Learning PostgreSQL 10 2nd ed Fontaine - Mastering PostgreSQL ???? diff --git a/db/sql/postgres/feature/internals/docs/blogs.txt b/db/sql/postgres/feature/internals/docs/blogs.txt index edec3abe9..077043f0d 100644 --- a/db/sql/postgres/feature/internals/docs/blogs.txt +++ b/db/sql/postgres/feature/internals/docs/blogs.txt @@ -1 +1,2 @@ +https://eax.me/tag/postgresql/ https://stormatics.tech/our-blogs diff --git a/db/sql/postgres/feature/internals/docs/books.txt b/db/sql/postgres/feature/internals/docs/books.txt index f696a3ae0..344ee2ece 100644 --- a/db/sql/postgres/feature/internals/docs/books.txt +++ b/db/sql/postgres/feature/internals/docs/books.txt @@ -1,3 +1,14 @@ 2024 -Lisovskiy - Statistics ru +Lesovsky - Monitoring PostgreSQL ru https://edu.postgrespro.ru/monitoring.pdf + 0918352909AF136EE97DFC29AD5B2994 + https://nnmclub.to/forum/viewtopic.php?t=1710482 +Rogov - PostgreSQL 16 Internals ru + https://postgrespro.ru/education/books/internals +Suzuki - The Internals of PostgreSQL + https://www.interdb.jp/pg/index.html +DombrovskayaNovikovBailiekova - PostgreSQL Query Optimization 2nd ed + 3521A8CEC5CB2336367A1947715FE801 +2017 +Vasiliev - PG Tuning and Scalability ru + https://postgresql.leopard.in.ua/html/#pf8 diff --git a/db/sql/postgres/feature/internals/docs/presentations.txt b/db/sql/postgres/feature/internals/docs/presentations.txt index 869edb3c5..6d9dcd441 100644 --- a/db/sql/postgres/feature/internals/docs/presentations.txt +++ b/db/sql/postgres/feature/internals/docs/presentations.txt @@ -3,3 +3,5 @@ Lviv JavaClub [Event 310] PostgreSQL store by Oleksandr Belinskyi 3:00 of 53:24 https://www.youtube.com/watch?v=YmRu7AGyoqw BetweenBraces - PG 16 Internals of p5 https://www.youtube.com/playlist?list=PLlghaO_0b1OepxMpMZAIoI3dHgozIEyLp +pgpro stuff + https://www.youtube.com/playlist?list=PLlghaO_0b1OepxMpMZAIoI3dHgozIEyLp diff --git a/db/sql/postgres/feature/internals/mvcc.txt b/db/sql/postgres/feature/internals/mvcc.txt new file mode 100644 index 000000000..1f28d8058 --- /dev/null +++ b/db/sql/postgres/feature/internals/mvcc.txt @@ -0,0 +1,8 @@ +Rogov - MVCC + https://habr.com/ru/companies/postgrespro/articles/452762/ + https://habr.com/ru/companies/postgrespro/articles/452320/ + https://habr.com/ru/companies/postgrespro/articles/446652/ + https://habr.com/ru/companies/postgrespro/articles/445820/ + https://habr.com/ru/companies/postgrespro/articles/444536/ + https://habr.com/ru/companies/postgrespro/articles/455590/ + https://habr.com/ru/companies/postgrespro/articles/442804/ diff --git a/db/sql/postgres/feature/vacuum/autovacuum.txt b/db/sql/postgres/feature/internals/vacuum/autovacuum.txt similarity index 100% rename from db/sql/postgres/feature/vacuum/autovacuum.txt rename to db/sql/postgres/feature/internals/vacuum/autovacuum.txt diff --git a/db/sql/postgres/feature/vacuum/tips.txt b/db/sql/postgres/feature/internals/vacuum/tips.txt similarity index 100% rename from db/sql/postgres/feature/vacuum/tips.txt rename to db/sql/postgres/feature/internals/vacuum/tips.txt diff --git a/db/sql/postgres/feature/vacuum/transaction-id-wraparound.txt b/db/sql/postgres/feature/internals/vacuum/transaction-id-wraparound.txt similarity index 100% rename from db/sql/postgres/feature/vacuum/transaction-id-wraparound.txt rename to db/sql/postgres/feature/internals/vacuum/transaction-id-wraparound.txt diff --git a/db/sql/postgres/feature/performance/docs/courses.txt b/db/sql/postgres/feature/performance/docs/courses.txt index c567d6e90..b5766edf7 100644 --- a/db/sql/postgres/feature/performance/docs/courses.txt +++ b/db/sql/postgres/feature/performance/docs/courses.txt @@ -2,3 +2,5 @@ PostgresProfessional - RogovLuzanovTolmachyov - QPT13 - Query Optimization of p12 https://postgrespro.ru/education/courses/QPT https://www.youtube.com/playlist?list=PLaFqU3KCWw6JW80WBHPOe-SMJD2NOjmge +2019 + https://www.youtube.com/playlist?list=PLaFqU3KCWw6K2sTAksX5AJq4SQDN5PA1t diff --git a/db/sql/postgres/feature/performance/index/articles.txt b/db/sql/postgres/feature/performance/index/articles.txt index d3f50ca3c..3ce8e8430 100644 --- a/db/sql/postgres/feature/performance/index/articles.txt +++ b/db/sql/postgres/feature/performance/index/articles.txt @@ -1,5 +1,17 @@ 2024 https://habr.com/ru/companies/ibs/articles/838492/ +2016 +Rogov - Indices + https://habr.com/ru/companies/postgrespro/articles/349224/ + https://habr.com/ru/companies/postgrespro/articles/346460/ + https://habr.com/ru/companies/postgrespro/articles/343488/ + https://habr.com/ru/companies/postgrespro/articles/340978/ + https://habr.com/ru/companies/postgrespro/articles/337502/ + https://habr.com/ru/companies/postgrespro/articles/333878/ + https://habr.com/ru/companies/postgrespro/articles/330544/ + https://habr.com/ru/companies/postgrespro/articles/328280/ + https://habr.com/ru/companies/postgrespro/articles/326106/ + https://habr.com/ru/companies/postgrespro/articles/326096/ ???? https://www.depesz.com/tag/unexplainable https://www.depesz.com/2021/10/22/why-is-it-hard-to-automatically-suggest-what-index-to-create diff --git a/db/sql/postgres/feature/performance/tools/pgtune-cala-params.txt b/db/sql/postgres/feature/performance/tools/pgtune-cala-params.txt new file mode 100644 index 000000000..f8566b443 --- /dev/null +++ b/db/sql/postgres/feature/performance/tools/pgtune-cala-params.txt @@ -0,0 +1,2 @@ +https://pgtune.leopard.in.ua/ +https://github.com/le0pard/pgtune diff --git a/db/sql/postgres/feature/transaction/locks.txt b/db/sql/postgres/feature/transaction/locks.txt index ebd2ad4cf..39df016ee 100644 --- a/db/sql/postgres/feature/transaction/locks.txt +++ b/db/sql/postgres/feature/transaction/locks.txt @@ -1,6 +1,15 @@ https://postgrespro.ru/docs/postgresql/16/explicit-locking https://pglocks.org/?pgcommand=VACUUM +2019 +HighLoad - Rogov - PG Locks of 48:42 + https://www.youtube.com/watch?v=_R2-IsKfsUU + https://highload.ru/moscow/2019/abstracts/6067 +Rogov - about locks + https://habr.com/ru/companies/postgrespro/articles/466199/ + https://habr.com/ru/companies/postgrespro/articles/465263/ + https://habr.com/ru/companies/postgrespro/articles/463819/ + https://habr.com/ru/companies/postgrespro/articles/462877/ 2018 https://www.citusdata.com/blog/2018/02/22/seven-tips-for-dealing-with-postgres-locks/ https://habr.com/ru/company/otus/blog/452986/ @@ -10,9 +19,22 @@ https://habrahabr.ru/company/postgrespro/blog/270827/ https://www.youtube.com/watch?v=s3ee0nuDDqs https://momjian.us/main/writings/pgsql/locking.pdf + samples select ... for update; +select ..., pg_blocking_pids(pid), ... +from pg_stat_activity +where + backend_type = 'client backend'; + +pg_locks + transactionid, granted + +pg_terminate_backend(pid) + function + + ***************************************************************************************************** В PostgreSQL есть мощный механизм блокировок, который как раз может помочь избежать таких ситуаций на уровне базы данных, упростив разработку приложения. diff --git a/pl/cross/methodologies/architecture/ddd.txt b/pl/cross/methodologies/architecture/ddd.txt index 8de1d2381..8fac7d361 100644 --- a/pl/cross/methodologies/architecture/ddd.txt +++ b/pl/cross/methodologies/architecture/ddd.txt @@ -20,6 +20,8 @@ SpringIO - Implementing Domain Driven Design with Spring by Maciej Walkowiak of aggregates refer to each other by id, not by a direct reference model VOs with records 2023 +ListenIT - DDD in 10 min of 10:02 + https://www.youtube.com/watch?v=6_BhdXLxiic JPont - Morev - DDD in Action 0:00 of 51:53 https://www.youtube.com/watch?v=c0f4HOfUGT0 !!! diff --git a/pl/cross/methodologies/event-storming.txt b/pl/cross/methodologies/event-storming.txt index 2ba2c31d1..90be7e560 100644 --- a/pl/cross/methodologies/event-storming.txt +++ b/pl/cross/methodologies/event-storming.txt @@ -10,3 +10,6 @@ ListenIT - ES in 15 min 5:30 of 15:22 - actions PodlodkaCrew - Event-Driven system projecting with DDD and ES 6:00 of 1:02:55 https://www.youtube.com/watch?v=EFokgQ7Qkt4 +2020 +Baranov - Event Storming on Practical Cases 1:00 of 1:09:08 + https://www.youtube.com/watch?v=kJjuTuviZ-E diff --git a/pl/java/features/lambda/lambda.txt b/pl/java/features/lambda/lambda.txt index dcaf12ca3..168121bb4 100644 --- a/pl/java/features/lambda/lambda.txt +++ b/pl/java/features/lambda/lambda.txt @@ -1,3 +1,5 @@ +2024 +From JDK 22 - anonymous lambda params 2020 https://blogs.oracle.com/javamagazine/behind-the-scenes-how-do-lambda-expressions-really-work-in-java https://www.programiz.com/java-programming/lambda-expression diff --git a/pl/java/features/types/sealed.txt b/pl/java/features/types/sealed.txt index 4640f7f1e..61beeea87 100644 --- a/pl/java/features/types/sealed.txt +++ b/pl/java/features/types/sealed.txt @@ -1,6 +1,21 @@ -2024 +baeldung https://www.baeldung.com/java-sealed-classes-interfaces +2024 +SpringDeveloper - Long - Spring Tips: Data Oriented Programming in Java 21+ 0:00 of 18:49 + https://www.youtube.com/watch?v=K8na2qdHDuI 2023 https://proandroiddev.com/sealed-class-an-alternative-approach-to-the-visitor-pattern-in-kotlin-and-java-21-b7a77ecc7ee2 https://foojay.io/today/java-sealed-classes-in-action-building-robust-and-secure-applications/ https://habr.com/ru/company/otus/blog/720044/ +2020 +https://www.infoq.com/articles/java-sealed-classes/ +https://habr.com/ru/post/505696/ +https://habr.com/ru/post/490298/ +2019 +https://blogs.oracle.com/javamagazine/inside-the-language-sealed-types + +http://openjdk.java.net/jeps/360 + https://habr.com/ru/company/jugru/blog/498494/ +https://bugs.openjdk.java.net/browse/JDK-8227043 +http://cr.openjdk.java.net/~gbierman/jep360/jep360-20200228/specs/sealed-types-jls.html + diff --git a/pl/java/jdk/21/virtual-threads.txt b/pl/java/jdk/21/virtual-threads.txt index 29fd9c3a6..5ab7570bf 100644 --- a/pl/java/jdk/21/virtual-threads.txt +++ b/pl/java/jdk/21/virtual-threads.txt @@ -3,6 +3,8 @@ https://docs.oracle.com/en/java/javase/21/core/virtual-threads.html#GUID-DC4306F spring.threads.virtual.enabled: true 2024 +SpringDeveloper - Long - Spring Tips: Virtual Threads of 50:30 + https://www.youtube.com/watch?v=9iH5h11YJak CodeWiz - REST API with Spring Boot 3.3, Java 21 and Virtual Threads | Benchmarking performance of 47:59 https://www.youtube.com/watch?v=iRiJqI3oAqA ! diff --git a/pl/java/jdk/22/presentations.txt b/pl/java/jdk/22/presentations.txt index ac8dfb43a..9065d7ed9 100644 --- a/pl/java/jdk/22/presentations.txt +++ b/pl/java/jdk/22/presentations.txt @@ -1,4 +1,6 @@ 2024 +SpringDeveloper - Long - Spring Tips: Hello, Java 22! of 38:48 + https://www.youtube.com/watch?v=X_kKfNko3hA JPoint - Kuleshov - Java 22 of 46:57 https://www.youtube.com/watch?v=w4iA6TCJnkk Java 22 Launch Stream of ... diff --git a/pl/java/libfws/spring/boot/features/cfg/ssl.txt b/pl/java/libfws/spring/boot/features/cfg/ssl.txt index 74b8b453e..ed73830c4 100644 --- a/pl/java/libfws/spring/boot/features/cfg/ssl.txt +++ b/pl/java/libfws/spring/boot/features/cfg/ssl.txt @@ -1,4 +1,18 @@ https://docs.spring.io/spring-boot/reference/features/ssl.html + keystore - for embedded web server + truststore - to secure client-side connection + https://docs.spring.io/spring-boot/api/java/org/springframework/boot/autoconfigure/ssl/JksSslBundleProperties.html + https://docs.spring.io/spring-boot/api/java/org/springframework/boot/autoconfigure/ssl/SslBundleProperties.html + https://docs.spring.io/spring-boot/api/java/org/springframework/boot/autoconfigure/ssl/SslBundleProperties.Key.html + https://docs.spring.io/spring-boot/api/java/org/springframework/boot/autoconfigure/ssl/SslBundleProperties.Options.html + full list of supported props + https://docs.spring.io/spring-boot/api/java/org/springframework/boot/autoconfigure/ssl/JksSslBundleProperties.Store.html + https://docs.spring.io/spring-boot/api/java/org/springframework/boot/autoconfigure/ssl/PemSslBundleProperties.html + https://docs.spring.io/spring-boot/api/java/org/springframework/boot/ssl/SslBundle.html + https://docs.spring.io/spring-boot/api/java/org/springframework/boot/ssl/SslStoreBundle.html + https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/security/KeyStore.html + https://docs.oracle.com/en/java/javase/21/docs/api/java.base/javax/net/ssl/SSLContext.html + https://docs.spring.io/spring-boot/reference/io/rest-client.html https://github.com/spring-projects/spring-boot/tree/main/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/ssl @@ -39,3 +53,6 @@ https://spring.io/blog/2023/11/07/ssl-hot-reload-in-spring-boot-3-2-0 https://spring.io/blog/2023/06/07/securing-spring-boot-applications-with-ssl 2021 https://habr.com/ru/post/593507/ +2017 +https://reflectoring.io/how%20to%20sign/ + certs diff --git a/pl/java/libfws/spring/boot/scheduling/jobrunr.txt b/pl/java/libfws/spring/boot/scheduling/jobrunr.txt index 748f0b953..b49ab4b1c 100644 --- a/pl/java/libfws/spring/boot/scheduling/jobrunr.txt +++ b/pl/java/libfws/spring/boot/scheduling/jobrunr.txt @@ -19,6 +19,8 @@ https://github.com/kestra-io/kestra baeldung https://www.baeldung.com/java-jobrunr-spring 2024 +SpringDeveloper - Long - Spring Tips: Distributed Job Scheduling with Jobrunr of 19:02 + https://www.youtube.com/watch?v=e9POHS0BjEg https://www.jobrunr.io/en/blog/2024-10-31-task-schedulers-java-modern-alternatives-to-quartz/ 2021 https://medium.com/@salmankhan_27014/jobrunr-practical-example-in-java-6d2db3d6da1 diff --git a/pl/java/libfws/spring/cloud/contract.txt b/pl/java/libfws/spring/cloud/contract.txt index f53b6d395..eeb0b4339 100644 --- a/pl/java/libfws/spring/cloud/contract.txt +++ b/pl/java/libfws/spring/cloud/contract.txt @@ -28,6 +28,8 @@ https://www.baeldung.com/spring-cloud-contract 2019 https://rieckpil.de/howto-consumer-driven-contracts-with-spring-cloud-contract/ 2018 +https://reflectoring.io/consumer-driven-contract-feign-pact/ + https://github.com/thombergs/code-examples/tree/master/pact/pact-feign-consumer https://reflectoring.io/consumer-driven-contract-consumer-spring-cloud-contract/ https://github.com/thombergs/code-examples/tree/master/spring-cloud/spring-cloud-contract-consumer Sharma - Consumer Driven Contract Testing with Spring Cloud Contract diff --git a/pl/java/libfws/spring/data/features/pagination.txt b/pl/java/libfws/spring/data/features/pagination.txt index b5ae035df..ef78752e9 100644 --- a/pl/java/libfws/spring/data/features/pagination.txt +++ b/pl/java/libfws/spring/data/features/pagination.txt @@ -21,3 +21,19 @@ Pageable sortedByPriceDescNameAsc = 2019 https://reflectoring.io/spring-boot-paging/ https://github.com/thombergs/code-examples/tree/master/spring-boot/paging + at Configuration add @EnableSpringDataWebSupport + SpringDataWebAutoConfiguration + SpringDataWebProperties + https://github.com/spring-projects/spring-data-commons/blob/main/src/main/java/org/springframework/data/web/PageableHandlerMethodArgumentResolver.java + https://github.com/spring-projects/spring-data-commons/blob/main/src/main/java/org/springframework/data/web/SortHandlerMethodArgumentResolver.java + props: + spring.data.web.pageable.size-parameter=size + spring.data.web.pageable.page-parameter=page + spring.data.web.pageable.default-page-size=20 + spring.data.web.pageable.one-indexed-parameters=false + spring.data.web.pageable.max-page-size=2000 + spring.data.web.pageable.prefix= + spring.data.web.pageable.qualifier-delimiter=_ + + @PagableDefault + @SortDefault